포인트 간 거리 계산 (Microsoft Excel)
Mike는 Excel 워크 시트에서 위도 및 경도 값을 추적합니다. 이들은 본질적으로 그리드의 점이므로 Mike는 주어진 두 위도 / 경도 점 사이의 거리를 계산하려고합니다.
위도와 경도 쌍이 실제로 그리드의 점일 뿐이라면 둘 사이의 거리를 쉽게 계산할 수 있습니다. 문제는 그것들이 실제로 구의 점이라는 것입니다. 즉, 평면 그리드 계산을 사용하여 거리를 결정할 수 없습니다. 또한 최단 표면 거리, 최적의 비행 경로 ( “까마귀가 날아갈 때”), 지구를 통과하는 거리, 주행 거리 등 거리를 계산할 수있는 여러 가지 방법이 있습니다.
분명히 이것은 복잡한 질문 일 수 있습니다. 사용 가능한 공간에서 대권 거리 ( “까마귀가 날아갈 때”)를 결정하는 몇 가지 방법을 검토 한 다음 다른 유형의 계산에 대한 추가 정보에 대한 몇 가지 참고 자료를 제공 할 것입니다.
가장 먼저 알아야 할 것은 각 지점의 위도와 경도가 Excel에서 어떻게 표현되는지입니다. 이를 표현할 수있는 방법에는 여러 가지가 있습니다. 예를 들어, 개별 셀에도, 분, 초를 입력 할 수 있습니다. 또는 단일 셀에 DD : MM : SS로 포함 할 수 있습니다. 어느 쪽이든 허용되지만 수식에서 다르게 처리해야합니다. 왜? 위도와 경도를 DD : MM : SS로 입력하면 Excel에서 내부적으로 시간 값으로 변환하므로 해당 변환을 고려하기 만하면됩니다.
무엇을하든 상관없이해야 할 일은 위도와 경도를 라디안 단위의 10 진수 값으로 변환하는 것입니다. 세 개의 개별 셀 (도, 분 및 초)에 좌표가있는 경우 다음 공식을 사용하여 라디안 단위의 10 진수 값으로 변환 할 수 있습니다.
=RADIANS((Degrees3600+Minutes60+Seconds)/3600)
이 수식은도, 분 및 초에 대해 명명 된 범위를 사용합니다. 이 세 값을 전체 각도를 나타내는 단일 값으로 변환 한 다음 RADIANS 함수를 사용하여이를 라디안으로 변환합니다.
32도, 48 분, 0 초의 값으로 시작하면 공식은 다음과 같이 표시됩니다.
=RADIANS((323600+4860+0)/3600) =RADIANS((115200+2880+0)/3600) =RADIANS(118080/3600) =RADIANS(32.8) =0.572467995
좌표를 단일 셀 (이 예에서는 셀 E12)에 DD : MM : SS 형식으로 저장하는 경우 다음 수식을 사용하여 라디안 단위의 10 진수 값으로 변환 할 수 있습니다.
=RADIANS((DAY(E12)86400+HOUR(E12)3600+MINUTE(E12)*60+SECOND(E12))/3600)
E12 셀에 32:48:00가 포함되어 있다고 가정하면 수식은 다음과 같이 표시됩니다.
=RADIANS((186400+83600+48*60+0)/3600) =RADIANS((86400+28800+2880+0)/3600) =RADIANS(118080/3600) =RADIANS(32.8) =0.572467995
라디안의 좌표를 사용하면 삼각 공식을 사용하여 구 표면을 따라 거리를 계산할 수 있습니다. 사용할 수있는 이러한 공식이 많이 있습니다. 다음 공식은 우리의 목적에 충분합니다.
=ACOS(SIN(Lat1)SIN(Lat2)+COS(Lat1)COS(Lat2)COS(Lon2-Lon1))180/PI()*60
이 공식에서 각 위도 (Lat1 및 Lat2) 및 경도 (Lon1 및 Lon2) 좌표는 이미 논의한 바와 같이 라디안 단위의 10 진수 값이어야합니다. 이 공식은 해리 단위의 값을 반환하며, 원하는대로 다른 측정 단위로 변환하기 위해 다양한 공식을 적용 할 수 있습니다.
구 표면의 거리를 계산하는 공식을 사용하여 얻은 값은 약간 잘못된 결과를 제공한다는 것을 알아야합니다. 왜? 지구는 완벽한 구체가 아니기 때문입니다. 따라서 거리는 대략적인 것으로 간주되어야합니다. 좀 더 정확한 정보를 얻으려면 다음 공식을 사용하여 해상 마일을 결정할 수 있습니다.
=ACOS(SIN(Lat1)SIN(Lat2)+COS(Lat1)COS(Lat2)COS(Lon2-Lon1))3443.89849
이 공식은 구의 반경 (180 / PI () * 60 또는 3437.746771)을 지구의 반경 (3443.89849 해리)으로 대체합니다. 어느 쪽이든 대답은 여전히 대략적인 것으로 간주되어야합니다.
아시다시피 거리를 계산하는 공식은 상당히 깁니다. 계산을 수행 할 사용자 정의 함수를 개발하는 것이 더 쉬울 수 있습니다. 다음 함수는 4 개의 값 (두 쌍의 위도와 경도, 각도)을 취한 다음 해리 단위로 결과를 반환합니다.
Function CrowFlies(dlat1, dlon1, dlat2, dlon2) Pi = Application.Pi() earthradius = 3443.89849 'nautical miles lat1 = dlat1 Pi / 180 lat2 = dlat2 Pi / 180 lon1 = dlon1 Pi / 180 lon2 = dlon2 Pi / 180 cosX = Sin(lat1) Sin(lat2) + Cos(lat1) _ Cos(lat2) * Cos(lon1 - lon2) CrowFlies = earthradius * Application.Acos(cosX) End Function
위도와 경도, 관련된 수학에 대한 더 심층적 인 토론을보고 싶다면이 사이트에서 좋은 기사를 찾을 수 있습니다.
http://mathforum.org/library/drmath/sets/select/dm_lat_long.html
수학을 사용하면 사용할 수있는 다양한 공식에 대해 살펴볼 수 있습니다. 이 웹 페이지의 VBA에는 흥미로운 것이 있습니다.
http://www.freevbcode.com/ShowCode.asp?ID=5532
좋은 범용 토론은 Chip Pearson의 사이트에서도 찾을 수 있습니다.
http://www.cpearson.com/excel/LatLong.aspx
_ 참고 : _
이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.
이 팁 (9512)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다. 여기에서 Excel의 이전 메뉴 인터페이스에 대한이 팁 버전을 찾을 수 있습니다.
link : / excel-Calculating_the_Distance_between_Points [점 사이의 거리 계산]
.