Çözüldü Excel Koordinatlar Arası Mesafe Hesaplama

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

menfis

Normal Üye
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba ,

Forum içinde bir çok hesaplama var fakat kendi istediğime bir türlü uyarlayamadım .
Bende Türkiyenin çeşitli yerlerinde bulunan 200 adet koordinatım var . (sabit)
Sürekli yerleri değişen 10 ile 20 bin arasında da müşteri .
Bu 200 adet sabit koordinata en yakın müşterilerin atamasını yapmak istiyorum fakat bulamadım yardımcı olabilecek var mı ?
 
Çözüm
Sayın @menfis .

Sayın @leguminosea 'nin müsadeleriyle, kendisinin eklediği son örnek belgedeki
veri/sayfa yapısına göre kullanılmak ve işlem süresini kısaltmak üzere alternatif bir öneride bulunayım.

HESAP sayfası kullanılmaz, 20.000 müşteri ve 2.000 sabit konum için işlem süresi 18-20 saniye.

CSS:
You must log in to view content
(8 satır)
Olabilir tabi Sayın @tahsinanarat .

-- Formül ile çözümde BUL (virgülün konumu), SOLDAN ve PARÇAAL ile,
-- Makro çözümde de benzer şekilde veya metni VİRGÜL karakterine göre sütunlara ayırarak
aynı işlem yapılabilir. Neden olmasın?

.
 
Sn. @leguminosea dosyayı indirdim inceleyip kendime uyarlamaya çalışacağım, ilk gözüme çarpan SABUTLER sayfasında E sutununda Servis isimlerini yazacağım bu isimleri MÜŞTERİ Sayfasının E sutununa getirmek, ayrıca HESAP sayfasının F sutununa da rakamlar değil MÜŞTERİ isimlerini getirmek isterim. Bu hususta kodlarda düzeltme yapabilirmisiniz. Ayrıca MÜŞTERİ sayfasında AD SOYAD kısmının tek sutunda olmasını istiyorum. Teşekkürler.
 
Mesafeler kuş bakışı,
Servis isimlerini SABİTLER sayfasında E sutununa değil, B sütununa yazacaksınız
Bu servis isimleri MÜŞTERİ Sayfasının E sutununa değil, H sütununa gelecek
HESAP sayfasının F sutununa da rakamlar yerine isimler getirmek konusuna bakayım ama bunu ne için istiyorsunuz.
MÜŞTERİ sayfasında AD SOYAD kısmının tek sutunda olması işini siz de yapabilirsiniz.
-- B3 ve B4 hücrelerini seçin, birleştir ve ortalayı tıklayın, sola hizalayı tıklayın ve oluşan birleşik hücreyi sağ alt köşesinden tutup aşağı doğru çekin.
 
Herkese merhaba.

200 sabit noktaya ve 20.000 müşteriye ait koordinat bilgilerine göre,
bu 20.000 müşteri koordinatının hangilerinin hangi sabit noktaya EN YAKIN KOORDİNAT olduğunun tespiti için
yapılması gereken mesafe hesabı sayısı 20.000 x 200 = 4.000.000 adet oluyor.

16 numaralı cevapta, 2 dakika civarındaki işlem süresini 18-20 saniyeye düşüren bir kod önerim olmuştu.

Bu kez de süreyi yarıya (8-9 saniye) düşürecek yeni bir kod oluşturdum.
Koddaki bu hızlanmayla ilgili olarak, değerli trigonometri bilgilerini paylaşan forumumuz Yönetim Ekibi mensubu
Sayın @52779 'a teşekkür ederek yeni bir örnek belge ekleyeyim dedim.

İşe yarayacaktır diye düşünüyorum.

.
 

Ekli dosyalar

Forum yönetim Ekibimizden Sayın @52779 'un verdiği ilave bilgiyle;
20.000 noktanın, 200 ana noktadan hangisine en yakın olduğunun hesaplanması
için işlem süresi belgeye eklediğim yeni (üçüncü) kod bu kez, 3-4 saniyeye (benim miadı dolmuş bilgisayarımda) düşmüş oldu.
Değerli katkıları dolayısıyla kendisine bir kez daha teşekkürler.

Ekteki örnek belgede, bundan önceki cevabıma eklediğim belgede olduğu gibi;
kod seçeneklerinin tümü mevcut olup denemeler yapılabilir, kullanılabilir.

Forumdaşlara katkısı, faydası olması dileğiyle.

.
 

Ekli dosyalar

Merhaba Tüm Yorumları Okudum Örnek Dosyalarıda İndirdim .
muhtemel olarak Ofis Programım Türkçe olmasın ( , virgül / veya .) ayrımından kaynaklı Dosyayı Kendi istediğim sekilde kullanamıyorum.

Benim Yapmak istediğim şu ; 6 İlde sabit arkadaşlarımız var ve 6 ilde 1000 adet Sabit Şantiye var bu şantiyelere Arkadaslarımızın Tahmini Kuş uçumu mesafelerini hesaplamak istiyorum .

Konu hakkında nasıl bir hesaplama yapabilirim .
 
Merhaba, foruumuza hoşgeldiniz Sayın @Melih DENİZ .

Koordinat bilgilerini örnek belgelerdeki formatta vererek deneyin,
Ya da kendi örnek belgenizi ekleyin onun üzerinden gidilsin,
Olması gereken sonuçları, olması gereken hücrelerde elle yazarak örneklendirirseniz iyi olur.
 
Moderatörün son düzenlenenleri:
Merhaba, foruumuza hoşgeldiniz Sayın @Melih DENİZ .

Koordinat bilgilerini örnek belgelerdeki formatta vererek deneyin,
Ya da kendi örnek belgenizi ekleyin onun üzerinden gidilsin,
Olması gereken sonuçları, olması gereken hücrelerde elle yazarak örneklendirirseniz iyi olur.
Merhaba Ömer Bey ;
yapmaya çalışırken sizin dönmüş olduğunuzu kaçırdım . Öncelikle Çok Tesekkur ederim .
Saha Kordinat Dosyası üzerinde ;
Şantiye Yazan Sayfa üzerinde ;
Sabit Şantiye Kordinatları = L hücresinde .
Depo Kordinat Bilgileri = M hücresinde .
Aradki Mesafeyi Tahmini Kuş ucumu da yeterli = N hücresine yazılacak .

Şimdiden Çok tesekkur ederız .
Iyı Geceler .
 

Ekli dosyalar

Sayın @Melih DENİZ .

Bundan önceki mesajımda sorduğum sorunun cevabı EVET ise; bunun için açıkçası makroya ihtiyaç olduğunu sanmıyorum.
İsterseniz makro kod ile de çözüm verebilirim ama şimdilik formül cevabı vereyim. Formül Haversine formülü olarak bilinir.

Aşağıdaki formülü N2 hücresine uygulayın ve aşağı doğru kopyalayın.
KM olarak ve virgülden sonra 3 basamak yuvarlama uyguladım.
Formüldeki yuvarlama kısmını iptal ederseniz daha hassas bir mesafe ölçüsü mevcut.
Örneğin ilk satırdaki koordinatlar için 1.461,88444 metre olan mesafe, 1,462 KM olarak bulunur.

VBA:
You must log in to view content
(1 satır)
 
Moderatörün son düzenlenenleri:
Merhaba Ömer Bey ;
yapmaya çalışırken sizin dönmüş olduğunuzu kaçırdım . Öncelikle Çok Tesekkur ederim .
Saha Kordinat Dosyası üzerinde ;
Şantiye Yazan Sayfa üzerinde ;
Sabit Şantiye Kordinatları = L hücresinde .
Depo Kordinat Bilgileri = M hücresinde .
Aradki Mesafeyi Tahmini Kuş ucumu da yeterli = N hücresine yazılacak .

Şimdiden Çok tesekkur ederız .
Iyı Geceler .
Tekrardan Merhaba Ömer Bey ;
Size yazdıktan sonra bir kaç araştırma daha yaptım işime yarar bir formul buldum :)

=ACOS(COS(RADYAN(90-J2)) *COS(RADYAN(90-N2)) +SİN(RADYAN(90-J2)) *SİN(RADYAN(90-N2)) *COS(RADYAN(K2-O2))) *6371

Alıntı : Calculate distance and bearing between two Latitude/Longitude points using haversine formula in JavaScript

Ekli Link Üzerinden Buldum .
 
Sayın @Melih DENİZ .

Bundan önceki mesajımda sorduğum sorunun cevabı EVET ise; bunun için açıkçası makroya ihtiyaç olduğunu sanmıyorum.
İsterseniz makro kod ile de çözüm verebilirim ama şimdilik formül cevabı vereyim. Formül Haversine formülü olarak bilinir.

Aşağıdaki formülü N2 hücresine uygulayın ve aşağı doğru kopyalayın.
KM olarak ve virgülden sonra 3 basamak yuvarlama uyguladım.
Formüldeki yuvarlama kısmını iptal ederseniz daha hassas bir mesafe ölçüsü mevcut.
Örneğin ilk satırdaki koordinatlar için 1.461,88444 metre olan mesafe, 1,462 KM olarak bulunur.

VBA:
You must log in to view content
(1 satır)
Gerçekten kusura Bakmayın , Sayfa Önümde Açık olmasına Rağmen Yazışmaları Gormek için Sürekli Ekran da Yeniledim fakat sonradan gördüm .
Süper Emeğinize ve Elinize Sağlık . Evet Aynen Bu şekilde istediğim buydu .
Bende farklı Alternatıfler ararken buldum ve Sonuç Aynı Öok Teşekkür ederim Tekrardan .
 
Önemli olan ihtiyacın görülmesi.

Aşağıdaki konu sayfasında 8 numaralı cevapta verdiğim formül de bu işlemin başka bir versiyonu.
Elbette sonuç aynıdır. Sadece, ilgili cevaptaki formülde *24 kısımlarını silmek ve DEPO KOORDİNAT bilgilerini iki parça (enlem/boylam) halinde alarak yerine yazmak gerekiyor ve sonuçta formül şu hale geliyor.

NOT: Önceki verdiğim formülde SOLDAN ve PARÇAAL ibarelerinin önündeki ÇİFT TİRE işaretlerine de gerek yoktu esasında.

VBA:
You must log in to view content
(1 satır)
 
Sayın @Melih DENİZ .

Bundan önceki mesajımda sorduğum sorunun cevabı EVET ise; bunun için açıkçası makroya ihtiyaç olduğunu sanmıyorum.
İsterseniz makro kod ile de çözüm verebilirim ama şimdilik formül cevabı vereyim. Formül Haversine formülü olarak bilinir.

Aşağıdaki formülü N2 hücresine uygulayın ve aşağı doğru kopyalayın.
KM olarak ve virgülden sonra 3 basamak yuvarlama uyguladım.
Formüldeki yuvarlama kısmını iptal ederseniz daha hassas bir mesafe ölçüsü mevcut.
Örneğin ilk satırdaki koordinatlar için 1.461,88444 metre olan mesafe, 1,462 KM olarak bulunur.

VBA:
You must log in to view content
(1 satır)
Gerçekten Teşekkür ederim . Sürekli Takipteyim bundan sonra .
Başarılı .
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Konuyu başlatan
Normal Üye
Katılım
Konu Bilgi
Durum
Çözüldü 
Forum
Genel Excel Soruları
Başlangıç tarihi
Son yanıt tarihi
Cevaplar
39
Üst