Excel ứng dụng rộng rãi. Kết hợp VBA thì gần như làm được mọi thứ. Tất nhiên, có thể tính khoảng cách giữa hai địa điểm dùng bản đồ trong Excel. Bài viết hướng dẫn nhanh tính khoảng cách trong Excel với Google Maps, bước sắc bén, minh họa rõ ràng.
Tải file Excel miễn phí để thực hành.
Dùng hàm tự định nghĩa (User-Defined Function) tính khoảng cách với Google Maps
Tìm khoảng cách giữa Công viên MacArthur và Jersey City dùng Google Maps.

Điều kiện quan trọng: Cần API Key (Khóa giao diện lập trình ứng dụng). API = Application Programming Interface. Excel kết nối Google Maps qua API Key để lấy dữ liệu. Một số bản đồ cung cấp API miễn phí (như Bing Maps), nhưng Google Maps không cung cấp API miễn phí. Dù có API miễn phí cũng không hoạt động tốt. Phải mua API Key tại link chính thức.
Ví dụ dùng API Key miễn phí (không hoạt động hoàn hảo, chỉ để demo). Sử dụng VBA tạo hàm tự định nghĩa Calculate_Distance với 3 đối số: Điểm xuất phát, Điểm đến, API Key.
Các bước:
- Nhấn ALT + F11 mở cửa sổ VBA.

- Chọn Insert → Module tạo module mới.

- Dán mã sau vào module:
Public Function Calculate_Distance(start As String, dest As String)
Dim first_Value As String, second_Value As String, last_Value As String
first_Value = "https://maps.googleapis.com/maps/api/distancematrix/json?origins="
second_Value = "&destinations="
last_Value = "&mode=car&language=pl&sensor=false&key=YOUR_KEY"
Set mitHTTP = CreateObject("MSXML2.ServerXMLHTTP")
Url = first_Value & Replace(start, " ", "+") & second_Value & Replace(dest, " ", "+") & last_Value
mitHTTP.Open "GET", Url, False
mitHTTP.SetRequestHeader "User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
mitHTTP.Send ("")
If InStr(mitHTTP.ResponseText, """distance"" : {") = 0 Then GoTo ErrorHandl
Set mit_reg = CreateObject("VBScript.RegExp"): mit_reg.Pattern = """value"".*?([0-9]+)"
mit_reg.Global = False
Set mit_matches = mit_reg.Execute(mitHTTP.ResponseText)
tmp_Value = Replace(mit_matches(0).SubMatches(0), ".", Application.International(xlListSeparator))
Calculate_Distance = CDbl(tmp_Value)
Exit Function
ErrorHandl:
Calculate_Distance = -1
End Function
- Quay lại trang tính.

Giải thích mã:
- Tạo hàm Public Calculate_Distance.
- Khai báo biến first_Value, second_Value, last_Value cho tham số hàm.
- Gán giá trị cho biến (mỗi giá trị tự mô tả), thiết lập đối tượng mitHTTP trong ServerXMLHTTP dùng phương thức GET (cũng hỗ trợ POST).
- Url là chuỗi kết hợp các giá trị, thuộc tính open của mitHTTP sử dụng.
- Thư viện thực hiện phần tính toán còn lại.
Hàm đã sẵn sàng dùng.

- Ô C8, nhập công thức:
=Calculate_Distance(C4,C5,C6) - Nhấn ENTER → kết quả khoảng cách (đơn vị Mét).

Xem thêm: Cách tính khoảng cách lái xe giữa hai địa chỉ trong Excel
Ưu và nhược điểm khi tính khoảng cách với Google Maps
- Bắt buộc có API Key hợp lệ.
- Kết quả trả về đơn vị Mét.
- Hàm dùng tên địa điểm trực tiếp, không cần tọa độ.
- Đảm bảo tên địa điểm hợp lệ.
Lợi ích và hạn chế của tính khoảng cách bằng Google Maps
Lợi ích
- Với nhiều cặp địa điểm, rất tiện dùng Fill Handle kéo công thức – không làm được trên Google Maps trực tiếp.
- Cách làm khá nhanh.
- Không cần tọa độ.
Hạn chế
- Không hoạt động với tọa độ (coordinates).
- Chỉ ra khoảng cách, không có bản đồ/hành trình.
- Không khớp gần đúng (approximate match) tên địa điểm.
Kết luận
Hy vọng thủ tục trên đủ giúp bạn tính khoảng cách trong Excel với Google Maps. Hãy đặt câu hỏi ở phần bình luận và cho phản hồi. Ghé ExcelDemy khám phá thêm.
Bài viết liên quan
- Cách tính khoảng cách giữa hai tọa độ GPS trong Excel
- Tính tọa độ từ góc phương vị và khoảng cách trong Excel
- Cách tính khoảng cách Mahalanobis trong Excel (Từng bước)
- Tính dặm giữa hai địa chỉ trong Excel (2 phương pháp)
- Cách tính khoảng cách Manhattan trong Excel (2 cách phù hợp)
- Tính khoảng cách Levenshtein trong Excel (4 phương pháp dễ dàng)