Tính cự ly giữa hai niềm Nam - Bắc (1 người xem)

Người dùng đang xem chủ đề này

Mọi người vào xem rồi giúp em nghĩ đáp án với nhé
Do bạn lấy trung tâm là Hà Nội nên để dễ thì bạn tạo thêm cột phụ: những địa danh nào từ Hà nội trở ra thì gán cho số 1, còn lại gán số 0. Như vậy có các trường hợp xảy ra sau đây:
- Ga đi 0; ga đến 0: tính bình thường như bạn đã tính;
- Gia đi 1; ga đến 0: HN -> ga đi + HN -> ga đến;
vân vân... Bạn dùng lồng hàm if nhé
 
Mình không thạo các tuyến đường sắt Việt Nam nhưng nhìn vào bài của bạn thì mình có 1 ý tưởng như thế này:
1/Sử dụng VBA chứ Công thức chắc oải không sử lý được.
2/Lập danh sách tất cả các tuyến đường sắt Việt Nam đi từ Hà Nội cũng như các tuyến nhánh và đặt mã ví dụ:
Hà Nội-Hạ Long: DS01
Hà Nội - Lao Cai: DS02

Đối với 1 ga có 2 thông tin để xác định:
a/Mã ga
b/Mã tuyến
c/Có phải ga trung chuyển không.

3/Viết hàm để tính toán các trường hợp sau:
-Nếu cùng mã tuyến thì khoảng cách bằng giá trị lớn- giá trị nhỏ
-Trường hợp khác tuyến:
Ta tìm tất cả các ga chung cả 2 tuyến và là ga trung chuyển , sau đó tính khoảng cách qua ga trung chuyển này (Đương nhiên Hà Nội cũng là 1 ga trung chuyển) sau đó lấy giá trị khoảng cách nhỏ nhất là khoảng cách 2 ga.

Không biết có cách nào gọn hơn không nhưng bằng cách của mình chắc rằng sử lý được việc tính khoảng cách giữa 2 ga bất kỳ trong hệ thống đường sắt VN.
Tiếc rằng, với hiểu biết của mình và số liệu trên File của bạn chưa thể làm ví dụ được
 
Lần chỉnh sửa cuối:
Theo mình làm như thế này là hợp lý:
* Tại 1 ga bất kỳ: Tính khoảng cách đến các ga gần nhất. Đặt mã cho mỗi tuyến.
VD: Ga Phủ Lý: (T01)Văn Điển-Phủ Lý: 100km (Dùng VLOOKUP từ HN đi 2 ga này sau đó trừ đi nhau, lấy ABS như bạn đã làm); (T02)Phủ Lý-Thịnh Châu:20km, (T03) Phủ Lý-Bỉm Sơn: 50km
Ga Văn Điển: (T04) Hà nội-Văn Điển: 30km; (T01)Văn Điển-Phủ Lý: 100km
* Lập sơ đồ cho tuyến Hà nội-ga bất kỳ: VD: ga Bỉm Sơn:T04-T01-T03 (Mỗi tuyến để 1 ô theo hàng ngang, VD:A1 mã ga, B1 T04, C1 T01,...Mỗi ga 1 dòng
Sau khi đã lập cơ sở dữ liệu rồi, thiết lập công thức tính toán đại để như sau: VD: tính khoảng cách từ Văn điển đi Bỉm sơn:dùng Hà nội làm trung gian, gồm KC tuyến Văn điển đi Hà nội + KC tuyến Hà nội đi Bỉm Sơn
=(T04)+(T04+T01+T03)
sau đó xử lý bỏ các tuyến trùng đi
=T01+T03
Như vậy bạn chỉ tốn công nhập liệu 1 lần, sau đó chỉ cần điền mã ga đi và đến là có khoảng cách.
Sau khi nhập xong, bạn post file thô lên, sau đó tính tiếp phần công thức.
 
Lần chỉnh sửa cuối:
Theo mình làm như thế này là hợp lý:
* Tại 1 ga bất kỳ: Tính khoảng cách đến các ga gần nhất. Đặt mã cho mỗi tuyến.
VD: Ga Phủ Lý: (T01)Văn Điển-Phủ Lý: 100km (Dùng VLOOKUP từ HN đi 2 ga này sau đó trừ đi nhau, lấy ABS như bạn đã làm); (T02)Phủ Lý-Thịnh Châu:20km, (T03) Phủ Lý-Bỉm Sơn: 50km
Ga Văn Điển: (T04) Hà nội-Văn Điển: 30km; (T01)Văn Điển-Phủ Lý: 100km
* Lập sơ đồ cho tuyến Hà nội-ga bất kỳ: VD: ga Bỉm Sơn:T04-T01-T03 (Mỗi tuyến để 1 ô theo hàng ngang, VD:A1 mã ga, B1 T04, C1 T01,...Mỗi ga 1 dòng
Sau khi đã lập cơ sở dữ liệu rồi, thiết lập công thức tính toán đại để như sau: VD: tính khoảng cách từ Văn điển đi Bỉm sơn:dùng Hà nội làm trung gian, gồm KC tuyến Văn điển đi Hà nội + KC tuyến Hà nội đi Bỉm Sơn
=(T04)+(T04+T01+T03)
sau đó xử lý bỏ các tuyến trùng đi
=T01+T03
Như vậy bạn chỉ tốn công nhập liệu 1 lần, sau đó chỉ cần điền mã ga đi và đến là có khoảng cách.
Sau khi nhập xong, bạn post file thô lên, sau đó tính tiếp phần công thức.

Vẫn có vấn đề anh ạ, ví dụ Hải Phòng - Lạng Sơn không tính như thế được vì cả 2 tuyến đều trung chuyển tại ga Yên Viên. Vậy thì không thể tính Hải Phòng- Lạng Sơn có thêm thêm 2 chiều vào ra Hà Nội-Yên Viên được mà chỉ bằng Hải Phòng-Yên Viên + Yên Viên - Lạng Sơn thôi. Chính vì vậy mình mới đề xuất lấy tuyến ngắn nhất qua các điểm trung chuyển giữa 2 tuyến. Ở đây nó giống bài toán tối ưu ấy.
 
Các bác có thể chỉ rõ hơn cho em được không ạ, em tìm cách lâu rồi mà vẫn chưa chặt chẽ được. Còn dùng VBA thì em chưa rõ lắm, bác giúp em nhé
 
Với ý tưởng như bài #1
Tuy nhiên mình đã lập cụ thể sang bảng bàn cờ như gửi kèm. Với công thức đang làm thì tính được các tuyến nối với HN.
còn lại các tuyến khác sai. Nếu làm thủ công thì mất thời gian===>> Vậy xin nhờ các Bác trợ giúp.
Về nguyên lý mã ga số đầu là 1-8 là tuyến như: HN-SG là 1; HN - HPhong là 2; số thứ tự thứ 2 là nhánh của tuyến đó.
Về lý trình: HN = 0 -->>đến các ga trên tuyến; Nhánh của tuyến thì ga xuất phát của nhánh =0
Mong nhận được sự giúp đỡ của các Bác!
 

File đính kèm

Có bác nào giúp tôi với!!!+-+-+-+
 

Bài viết mới nhất

Back
Top Bottom