Đếm số lượng bộ điểm di chuyển giống nhau trong một chuỗi dữ liệu (1 người xem)

Liên hệ QC

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

huynhnhatduat

Thành viên mới
Tham gia
1/3/09
Bài viết
4
Được thích
1
Chào các anh chị,

Mình đang gặp khó trong việc đếm số lượng các bộ điểm di chuyển của một shipper di chuyển trong các ngày khác nhau từ tháng 03 đến tháng 09.

Ví dụ như hình bên dưới, làm sao đếm được anh Chương đã thực hiện bao nhiêu chuyến đi có cùng danh sách các điểm giao hàng trong khoảng thời gian xác định.

1666768578115.png

Xin cảm ơn mọi người.
 

File đính kèm

Chào các anh chị,

Mình đang gặp khó trong việc đếm số lượng các bộ điểm di chuyển của một shipper di chuyển trong các ngày khác nhau từ tháng 03 đến tháng 09.

Ví dụ như hình bên dưới, làm sao đếm được anh Chương đã thực hiện bao nhiêu chuyến đi có cùng danh sách các điểm giao hàng trong khoảng thời gian xác định.

View attachment 282536

Xin cảm ơn mọi người.
Kết quả là bao nhiêu.Mà điều kiện đếm là gì.
 
Mình đang gặp khó trong việc đếm số lượng các bộ điểm di chuyển của một shipper di chuyển trong các ngày khác nhau từ tháng 03 đến tháng 09.
Ví dụ như hình bên dưới, làm sao đếm được anh Chương đã thực hiện bao nhiêu chuyến đi có cùng danh sách các điểm giao hàng trong khoảng thời gian xác định.
Mình cũng đang gặp khó trong việc hiểu "các bộ điểm di chuyển" là gì
Bạn hãy đếm tay và giải thích vì sao có kết quả đó.
 
Mình cũng đang gặp khó trong việc hiểu "các bộ điểm di chuyển" là gì
Bạn hãy đếm tay và giải thích vì sao có kết quả đó.

Dạ cảm ơn anh đã hỗ trợ vì em cũng không biết mô tả cho đúng, em xin ví dụ:

Ngày 03/01/2022, anh Chương đi giao hàng ở các điểm bán theo lộ trình như sau: customer 1 --> Customer 3 --> customer 5 --> customer 8
Ngày 04/01/2022, anh Chương cũng đi với lộ trình customer 1 --> customer 3 --> customer 5 --> customer 8.

Mục tiêu là xác định trong thời gian từ tháng 03 đến tháng 09, anh Chương có bao nhiêu lần đi cùng lộ trình giống như vậy ạ.
Bài đã được tự động gộp:

Kết quả là bao nhiêu.Mà điều kiện đếm là gì.
Dạ hiện tại em xin phép mô tả như sau kiểm tra trong cột customer, nếu như có cùng lộ trình di chuyển từ customer x1 --> xn thì sẽ đếm xem có bao nhiêu lần di chuyển lặp lại như vậy ạ.
Và điều kiện đếm là theo ngày và theo tên của tài xế.
 
Code VBA nhé bạn.
Kết quả là đếm thôi, hay liệt kê ra luôn?
Kết quả đặt ở đâu?
 
Dạ cảm ơn anh đã hỗ trợ vì em cũng không biết mô tả cho đúng, em xin ví dụ:

Ngày 03/01/2022, anh Chương đi giao hàng ở các điểm bán theo lộ trình như sau: customer 1 --> Customer 3 --> customer 5 --> customer 8
Ngày 04/01/2022, anh Chương cũng đi với lộ trình customer 1 --> customer 3 --> customer 5 --> customer 8.

Mục tiêu là xác định trong thời gian từ tháng 03 đến tháng 09, anh Chương có bao nhiêu lần đi cùng lộ trình giống như vậy ạ.
Bài đã được tự động gộp:


Dạ hiện tại em xin phép mô tả như sau kiểm tra trong cột customer, nếu như có cùng lộ trình di chuyển từ customer x1 --> xn thì sẽ đếm xem có bao nhiêu lần di chuyển lặp lại như vậy ạ.
Và điều kiện đếm là theo ngày và theo tên của tài xế.
Một ngày 1 lộ trình đúng không.Mà có vấn đề nữa là đẩy lộ trình đếm ở dòng nào.Hỏi lần cuối.
 
Code VBA nhé bạn.
Kết quả là đếm thôi, hay liệt kê ra luôn?
Kết quả đặt ở đâu?
Dạ cả đếm số lượng và liệt kê ra luôn lộ trình di chuyển ạ.
Kết quả mong đợi như hình bên dưới ạ. Em đang xử lý thử trên Pivot nhưng phải đếm tay.

1666771312334.png
Bài đã được tự động gộp:

Một ngày 1 lộ trình đúng không.Mà có vấn đề nữa là đẩy lộ trình đếm ở dòng nào.Hỏi lần cuối.
Dạ đúng, mỗi ngày một lộ trình, hiện tại em cũng chưa biết là đẩy lộ trình đếm ở dòng nào luôn, nhờ anh chỉ giáo.
 
Dạ cả đếm số lượng và liệt kê ra luôn lộ trình di chuyển ạ.
Kết quả mong đợi như hình bên dưới ạ. Em đang xử lý thử trên Pivot nhưng phải đếm tay.

View attachment 282540
Bài đã được tự động gộp:


Dạ đúng, mỗi ngày một lộ trình, hiện tại em cũng chưa biết là đẩy lộ trình đếm ở dòng nào luôn, nhờ anh chỉ giáo.
Thử code này.
Mã:
Sub abc()
    Dim i As Long, lr As Long, kq, arr, dic As Object, dk As String, dks As String, a As Long
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("Delivery data")
        lr = .Range("A" & Rows.Count).End(xlUp).Row
        arr = .Range("A2:C" & lr).Value
        ReDim kq(1 To UBound(arr), 1 To 3)
        a = 1
        kq(a, 1) = arr(1, 2)
        kq(a, 2) = arr(1, 3)
        kq(a, 3) = 1
        For i = 2 To UBound(arr)
            dk = arr(i, 1) & "#" & arr(i, 3)
            dks = arr(i - 1, 1) & "#" & arr(i - 1, 3)
            If dk = dks Then
               kq(a, 1) = kq(a, 1) & "#" & arr(i, 2)
            Else
               kq(a, 3) = 1
               dk = kq(a, 1) & "#" & kq(a, 2)
               If Not dic.exists(dk) Then
                    dic.Add dk, a
               Else
                  kq(dic.Item(dk), 3) = kq(dic.Item(dk), 3) + 1
                    kq(a, 1) = Empty
                    kq(a, 2) = Empty
                    a = a - 1
               End If
                    a = a + 1
                    kq(a, 1) = arr(i, 2)
                    kq(a, 2) = arr(i, 3)
                    kq(a, 3) = 1
            End If
      Next i
            If Not dic.exists(dk) Then
                    dic.Add dk, a
               Else
                  kq(dic.Item(dk), 3) = kq(dic.Item(dk), 3) + 1
                    kq(a, 1) = Empty
                    kq(a, 2) = Empty
                    a = a - 1
            End If
      .Range("J2:L1000").ClearContents
      .Range("J2:L2").Resize(a).Value = kq
  End With
   Set dic = Nothing
            
End Sub
 
Thử code này.
Mã:
Sub abc()
    Dim i As Long, lr As Long, kq, arr, dic As Object, dk As String, dks As String, a As Long
    Set dic = CreateObject("scripting.dictionary")
    With Sheets("Delivery data")
        lr = .Range("A" & Rows.Count).End(xlUp).Row
        arr = .Range("A2:C" & lr).Value
        ReDim kq(1 To UBound(arr), 1 To 3)
        a = 1
        kq(a, 1) = arr(1, 2)
        kq(a, 2) = arr(1, 3)
        kq(a, 3) = 1
        For i = 2 To UBound(arr)
            dk = arr(i, 1) & "#" & arr(i, 3)
            dks = arr(i - 1, 1) & "#" & arr(i - 1, 3)
            If dk = dks Then
               kq(a, 1) = kq(a, 1) & "#" & arr(i, 2)
            Else
               kq(a, 3) = 1
               dk = kq(a, 1) & "#" & kq(a, 2)
               If Not dic.exists(dk) Then
                    dic.Add dk, a
               Else
                  kq(dic.Item(dk), 3) = kq(dic.Item(dk), 3) + 1
                    kq(a, 1) = Empty
                    kq(a, 2) = Empty
                    a = a - 1
               End If
                    a = a + 1
                    kq(a, 1) = arr(i, 2)
                    kq(a, 2) = arr(i, 3)
                    kq(a, 3) = 1
            End If
      Next i
            If Not dic.exists(dk) Then
                    dic.Add dk, a
               Else
                  kq(dic.Item(dk), 3) = kq(dic.Item(dk), 3) + 1
                    kq(a, 1) = Empty
                    kq(a, 2) = Empty
                    a = a - 1
            End If
      .Range("J2:L1000").ClearContents
      .Range("J2:L2").Resize(a).Value = kq
  End With
   Set dic = Nothing
           
End Sub
Em cảm ơn nhiều nhiều ạ
Bài đã được tự động gộp:

Đa tạ các anh cao nhân, em chạy ra rồi, kết quả mĩ mã luôn ạ. :)

1666775970563.png
Bài đã được tự động gộp:

Em cảm ơn nhiều nhiều ạ
Bài đã được tự động gộp:

Đa tạ các anh cao nhân, em chạy ra rồi, kết quả mĩ mã luôn ạ. :)

1666775970563.png
Em sử dụng để nghiên cứu xem lộ trình nào sẽ mang lại hiệu quả cao hơn ạ, đây là một bước đầu của dự án. Xin cảm ơn các anh.

1666776152446.png
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom