Chuyển đổi công thức sang code (1 người xem)

Liên hệ QC

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

Thanh1102

Thành viên hoạt động
Tham gia
29/11/08
Bài viết
147
Được thích
46
Mình có dữ liệu trong file cần chuyển đổi từ công thức sang code.
Mong các Anh/Chị & các bạn hỗ trợ.

Y/C: Sau khi lọc batch và thay đổi "ngày" & "số xe" --> Sẽ hiện thị sum của điều kiện "Ngày" & "Số xe".
Note: đã làm được bằng công thức. Tuy nhiên khi dữ liệu nhiều sẽ chậm hơn.
 

File đính kèm

Mình có dữ liệu trong file cần chuyển đổi từ công thức sang code.
Mong các Anh/Chị & các bạn hỗ trợ.

Y/C: Sau khi lọc batch và thay đổi "ngày" & "số xe" --> Sẽ hiện thị sum của điều kiện "Ngày" & "Số xe".
Note: đã làm được bằng công thức. Tuy nhiên khi dữ liệu nhiều sẽ chậm hơn.

Cái này người ta dùng PivotTable cho khỏe chứ code kiết gì
 
Upvote 0
Dạ. Đúng rồi ạ. Tuy nhiên dữ liệu gốc được update hàng ngày và kéo dài hàng tháng vậy nếu dùng Pivot thì phải refresh hoặc change data source lại ạ?
Mong thầy chỉ giáo.
 
Upvote 0
Dạ. Đúng rồi ạ. Tuy nhiên dữ liệu gốc được update hàng ngày và kéo dài hàng tháng vậy nếu dùng Pivot thì phải refresh hoặc change data source lại ạ?
Mong thầy chỉ giáo.

Có lẽ chúng ta nên kiến nghị lên ông Biêu, bảo ông xem lại để cập nhật Excel. Chứ ra cái Pivot Table gì mà 10 người sử dụng có đến 9 đều cho rằng dùng code tiện và nhanh hơn.
 
Upvote 0
Dạ. Đúng rồi ạ. Tuy nhiên dữ liệu gốc được update hàng ngày và kéo dài hàng tháng vậy nếu dùng Pivot thì phải refresh hoặc change data source lại ạ?
Mong thầy chỉ giáo.

Refresh là điều đương nhiên bạn phải làm rồi, còn cái chuyện bạn nói phải "change data source" thì tôi cho rằng đâu cần thiết vậy chứ! Ngay từ đầu, bạn cứ chọn source data dư ra là được rồi. Dữ liệu hiện tại đang tới dòng thứ 100, bạn vẫn có thể chọn dư đến dòng 1000, có vấn đề gì chứ?
 
Upvote 0
Dạ. Cảm ơn thầy
Không vấn đề gì khi lấy dư "data source" và refresh lại khi chỉ dùng pivot để view mà không in hay sử dụng dữ liệu làm report. Do đó vẫn mong muốn chuyển đổi sang code để học hỏi và áp dụng trong những vấn đề khác %#^#$
 
Upvote 0
/-)ây là một cách đơn giản để tham khảo)*&^)
 

File đính kèm

Upvote 0
Dạ. Cảm ơn thầy
Không vấn đề gì khi lấy dư "data source" và refresh lại khi chỉ dùng pivot để view mà không in hay sử dụng dữ liệu làm report. Do đó vẫn mong muốn chuyển đổi sang code để học hỏi và áp dụng trong những vấn đề khác %#^#$

tôi góp một đoạn code, không biết đúng ko nữa ....heheheheh
Mã:
Sub Macro1()
Dim data, kq As Variant, i, j, k, kk As Long, d As Object
data = Sheet1.[a2].Resize(Sheet1.[a60000].End(3).Row, 7).Value
[a7:n1000].ClearContents
kq = [a6].Resize(1000, 14).Value
Set d = CreateObject("Scripting.Dictionary")

For i = 1 To UBound(data)
    If data(i, 1) = [g2].Value And data(i, 2) = [g3].Value Then
        If Not d.exists(data(i, 4)) Then
            k = k + 1
            d.Add data(i, 4), k
            kq(k + 2, 1) = k
            kq(k + 2, 2) = data(i, 4)
            For j = 3 To 11
                If kq(1, j) = data(i, 3) Then
                    kq(k + 2, j) = data(i, 5)
                    kq(2, j) = kq(k + 2, j)
                    kq(k + 2, 14) = kq(k + 2, 14) + data(i, 5) 'kq(k + 2, j)
                    Exit For
                End If
            Next j
            
        Else
        kk = d.Item(data(i, 4)) + 2
            For j = 3 To 11
                If data(i, 3) = kq(1, j) Then
                    kq(kk, j) = kq(kk, j) + data(i, 5)
                    kq(2, j) = kq(kk, j)
                    kq(kk, 14) = kq(kk, 14) + data(i, 5)
                    Exit For
                End If
            Next j
        End If
    End If

Next i
[a6].Resize(k + 2, 14).Value = kq

End Sub
 
Upvote 0

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

Back
Top Bottom