Nhờ mấy a giúp lọc tọa độ trong excel và tính khoảng cách 2 tọa độ. em cảm ơn nhiều ạ

Liên hệ QC

caonguyenpro2015

Thành viên mới
Tham gia
8/7/20
Bài viết
13
Được thích
0
Mục đích nhờ mấy a giúp e.. em có 1 bảng tọa độ dò ở cột A, B. giờ đi dò 1 hàng tòa độ (kinh độ, vị độ) ở cột A,B cho dò với 1 dãy tọa độ ở cột E,F. làm sao mình tìm ra tọa độ ở cột A,B gần với vị trí nào ở tọa độ cột E,F nhất và khoảng cách điểm đó tới vị trí đó là nhiêu Km..
Xin chân thành cảm ơn mấy a nhiều ạ.
 
Đây là bài tập Excel, lập trình VBA hay là bàì toán căn bản của trắc địa?

Nếu A:B có n điểm; và E:F có m điểm thì số khoảng cách là n*m.
Khoảng cách giữa (xA, yB) và (xE, yF) là ((xA-xE)^2 + (yB-yF)^2)^-2
Lấy MIN của chúng.
Hết.
Muốn làm công thức cũng được mà muốn VBA cũng không khó.

Ủa mà quên, tính kinh tuyến và vỹ tuyến nó khác:

Haversine
formula:
a = sin²(Δφ/2) + cos φ1 ⋅ cos φ2 ⋅ sin²(Δλ/2)
c = 2 ⋅ atan2( √a, √(1−a) )
d = R ⋅ c
trong đóφ là vỹ tuyến, λ là kinh tuyến, R là bán kính địa cầu ( trung bình = 6,371km);
lưu ý là đây là bài taons lượng giuacs, góc tính bằng Radian, không phải là độ!
 
Lần chỉnh sửa cuối:
Đây là bài tập Excel, lập trình VBA hay là bàì toán căn bản của trắc địa?

Nếu A:B có n điểm; và E:F có m điểm thì số khoảng cách là n*m.
Khoảng cách giữa (xA, yB) và (xE, yF) là ((xA-xE)^2 + (yB-yF)^2)^-2
Lấy MIN của chúng.
Hết.
Muốn làm công thức cũng được mà muốn VBA cũng không khó.
Ở file excel đính kèm có kết quả mình đo được bằng thủ công.. anh có thể làm giúp e trên file sao dò ra được kết quả tương đối vậy không a nhỉ. Do em làm thủ công vất vả quá. a làm bằng công thức or vba đều đc, miễn ra được kết quả nhanh nhất. em cảm ơn ạ
 
Ở file excel đính kèm có kết quả mình đo được bằng thủ công.. anh có thể làm giúp e trên file sao dò ra được kết quả tương đối vậy không a nhỉ. Do em làm thủ công vất vả quá. a làm bằng công thức or vba đều đc, miễn ra được kết quả nhanh nhất. em cảm ơn ạ
Đây là vấn đề của Trắc đạc rồi, bạn đã có công thức của bác VetMini trên thì thử xem sao
Và xem lại phần chuyên môn trắc đạc, sổ tay chuyên ngành là có công thức tính đầy đủ, áp vào excel thì chỉ còn là chuyện nhỏ /vừa.

Kết quả thì quan trọng, nhưng quan trọng hơn đó là ....
 
Chuyển cái này sang Excel là được..

View attachment 240743
chuyển kiểu gì a nhỉ.. a làm trên file excel giúp em với. hic... với cách dò để tìm đc điểm gần nhất làm sao a
Bài đã được tự động gộp:

Đây là vấn đề của Trắc đạc rồi, bạn đã có công thức của bác VetMini trên thì thử xem sao
Và xem lại phần chuyên môn trắc đạc, sổ tay chuyên ngành là có công thức tính đầy đủ, áp vào excel thì chỉ còn là chuyện nhỏ /vừa.

Kết quả thì quan trọng, nhưng quan trọng hơn đó là ....
dạ cảm ơn anh.. do em không học chuyên bên ngành trắc địa. đây là 1 vấn đề liên quan tới công việc nên em nhờ mấy anh giúp để tìm ra cách làm nhanh, tiện lợi nhất ạ. khoảng cách thì áp công thức bác VetMini em tính ra rồi.. nhưng vấn đề đây là bên cột A,B có 1 dãy tọa độ, bên cột E,F có 1 dãy làm sao để lọc ra được cái tọa độ nào khớp với tỏa độ cột E,F có khoảng cách gần nhất.
 
Lần chỉnh sửa cuối:
chuyển kiểu gì a nhỉ.. a làm trên file excel giúp em với. hic... với cách dò để tìm đc điểm gần nhất làm sao a
Bài đã được tự động gộp:


dạ cảm ơn anh.. do em không học chuyên bên ngành trắc địa. đây là 1 vấn đề liên quan tới công việc nên em nhờ mấy anh giúp để tìm ra cách làm nhanh, tiện lợi nhất ạ. khoảng cách thì áp công thức bác VetMini em tính ra rồi.. nhưng vấn đề đây là bên cột A,B có 1 dãy tọa độ, bên cột E,F có 1 dãy làm sao để lọc ra được cái tọa độ nào khớp với tỏa độ cột E,F có khoảng cách gần nhất.
Vậy nên nhờ người chuyên môn trước, không có kết quả khó tin tưởng
Vì liên quan đến tọa độ : kinh độ vĩ độ là liên quản đển chuẩn : tiêu chuẩn theo vn... nào - dữ liệu của bạn thuộc hệ tọa độ nào.. thì kết quả sẽ khác nhau
 
Khoảng cách nhỏ nhất:
Mã:
C4=AGGREGATE(15,6,6371*2*ATAN2(SQRT(1-(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),SQRT(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),1)
'Fill down
 
Lần chỉnh sửa cuối:
Khoảng cách nhỏ nhất:
Mã:
C4=AGGREGATE(15,6,6.371*2*ATAN2(SQRT((SIN(($F$2:$F$303-$B4)*PI()/180/2))^2+COS($F$2:$F$303*PI()/180)*COS($B4*PI()/180)*(SIN(($E$2:$E$303-$A4)*PI()/180/2))^2),SQRT(1-(SIN(($F$2:$F$303-$B4)*PI()/180/2))^2+COS($F$2:$F$303*PI()/180)*COS($B4*PI()/180)*(SIN(($E$2:$E$303-$A4)*PI()/180/2))^2)),1)
'Fill down
dạ sao không được a nhi.. lỗi #name? ấy anh.. hic. nhờ a kiểm tra lại giúp em với ạ.. em cảm ơn. hoặc cho em xin file excel a làm được không
 
Lần chỉnh sửa cuối:
Ở trên tôi có nói rồi:
VBA
Dựa vào công thức trên, lập một hàm tính khoảng cách:
Function KhoangCach(lat1 as Double, lat2 as Double, lng1 as Double, lng2 As Double) As Double
Nếu toạ độ là độ thì thêm hàm:
Function DoQuRadian(d As Double) As Double

Code thực hiện:
nganNhat = 0
toaDoAB = 0
toaDoEF = 0
For i1 = 1 To UBound(AB)
For i2 = 1 To UBound(EF)
kcMoi = KhoangCach(AB(i1,1), EF(i2,1), AB(i1,2), EF(i2,2))
If kvMoi < nganNhat Then
nganNhat = kcMoi
toaDoAB = i1
toaDoEF = i2
End If
Next i2
Next i1
MsgBox "ngan nhat la: " & nganNhat & "; tai AB dong: " & toaDoAB & "; va EF dong: " & toaDoEF
 
Ở trên tôi có nói rồi:
VBA
Dựa vào công thức trên, lập một hàm tính khoảng cách:
Function KhoangCach(lat1 as Double, lat2 as Double, lng1 as Double, lng2 As Double) As Double
Nếu toạ độ là độ thì thêm hàm:
Function DoQuRadian(d As Double) As Double

Code thực hiện:
nganNhat = 0
toaDoAB = 0
toaDoEF = 0
For i1 = 1 To UBound(AB)
For i2 = 1 To UBound(EF)
kcMoi = KhoangCach(AB(i1,1), EF(i2,1), AB(i1,2), EF(i2,2))
If kvMoi < nganNhat Then
nganNhat = kcMoi
toaDoAB = i1
toaDoEF = i2
End If
Next i2
Next i1
MsgBox "ngan nhat la: " & nganNhat & "; tai AB dong: " & toaDoAB & "; va EF dong: " & toaDoEF
em cảm ơn ạ.. mảng code vba này em chịu thua.. hi
 
Khoảng cách nhỏ nhất:
Mã:
C4=AGGREGATE(15,6,6.371*2*ATAN2(SQRT((SIN(($F$2:$F$303-$B4)*PI()/180/2))^2+COS($F$2:$F$303*PI()/180)*COS($B4*PI()/180)*(SIN(($E$2:$E$303-$A4)*PI()/180/2))^2),SQRT(1-(SIN(($F$2:$F$303-$B4)*PI()/180/2))^2+COS($F$2:$F$303*PI()/180)*COS($B4*PI()/180)*(SIN(($E$2:$E$303-$A4)*PI()/180/2))^2)),1)
'Fill down

em muốn dò tọa độ dò có kinh độ vị độ tương ứng với vị trí nào có tọa độ kinh độ vinh độ ấy mà có khoảng cách nhỏ nhất.. mình theo hàm tính ra vậy rồi sao anh
 
Lần chỉnh sửa cuối:
Bạn ráng kiểm tra đi, mình viết xong thấy hoa mắt rồi ấy. :(
Hic. A giúp e với ạ.. e có cái bảng 1 bên là kết quả e đò được nhưng thủ công qua google maps.. không biết sao làm đc nhanh nhất lọc ra kết quả vậy.. a giúp e với có j em hậu tạ sau đc khôg a
 
khoang_cach: Sửa trên rồi nhá.


Mã:
vi_tri=LOOKUP(68+1,1/(AGGREGATE(15,6,6371*2*ATAN2(SQRT(1-(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),SQRT(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),1)=6371*2*ATAN2(SQRT(1-(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),SQRT(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2))),$D$2:$D$305)
'Fill down
 
khoang_cach: Sửa trên rồi nhá.


Mã:
vi_tri=LOOKUP(68+1,1/(AGGREGATE(15,6,6371*2*ATAN2(SQRT(1-(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),SQRT(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),1)=6371*2*ATAN2(SQRT(1-(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2)),SQRT(SIN(($F$2:$F$303*PI()/180-B4*PI()/180)/2)^2+COS(B4*PI()/180)*COS($F$2:$F$303*PI()/180)*SIN(($E$2:$E$305*PI()/180-A4*PI()/180)/2)^2))),$D$2:$D$305)
'Fill down
File excel ở máy a làm. A gửi cho em luôn cái file đó được không ạ.
 
Web KT
Back
Top Bottom