Nhờ giúp công thức tập trung lại dữ liệu

Liên hệ QC

congthanh6868

Thành viên thường trực
Tham gia
30/5/09
Bài viết
322
Được thích
63
Chào các Bạn,

Trong file đính kèm mình nhờ các Bạn xem xét giúp cho công thức để thực hiện nội dung như sau:
- Tại sheet Tap trung lai sẽ tập trung lại dữ liệu trong vùng Y3:BV69 của sheet 151515 - đối chiếu hàng ngang cùng No, Sub, Total và hàng dọc cùng: 0,1,2,3,4,5,6,7,8,9.
- Ví dụ trong file là cột số E (số 1).
Rất mong nhận được sự giúp đỡ của các Bạn.
Chân thành cảm ơn!
 

File đính kèm

Chào các Bạn,

Trong file đính kèm mình nhờ các Bạn xem xét giúp cho công thức để thực hiện nội dung như sau:
- Tại sheet Tap trung lai sẽ tập trung lại dữ liệu trong vùng Y3:BV69 của sheet 151515 - đối chiếu hàng ngang cùng No, Sub, Total và hàng dọc cùng: 0,1,2,3,4,5,6,7,8,9.
- Ví dụ trong file là cột số E (số 1).
Rất mong nhận được sự giúp đỡ của các Bạn.
Chân thành cảm ơn!

Chào congthanh6868,

Có một số thắc mắc cần bạn giải thích thêm để hiểu bạn đang cần gì thì mới hy vọng giúp bạn được:
1. Đây là bảng theo dõi vật tư xuất dùng trong kỳ mà bạn muốn tổng hợp theo ngày? Nếu không phải, bạn có thể nói rõ hơn bạn tạo file này với mục đích theo dõi vấn đề gì?
2. Hàng 1: từ G1:P1, tại sao định dạng theo ngày và hiện là ngày 00/01/1900?
3. Các mục có chữ "No" ý nghĩa gì?
4. Ý nghĩa dữ liệu trong các Nhóm cột: G:P; R:W
5. Bạn giải thích thêm về ý nghĩa của các điều kiện trong Nhóm các cột sau: Y:AH; AI:AR; AS:BB; BC:BL; BM:BV

Chúc bạn ngày vui.
 
Bài này e rằng không công thức nào đáp ứng được yêu cầu của anh rồi.
Phải đợi thành viên nào vào viết code vậy
 
Chào các Bạn,

Trong file đính kèm mình nhờ các Bạn xem xét giúp cho công thức để thực hiện nội dung như sau:
- Tại sheet Tap trung lai sẽ tập trung lại dữ liệu trong vùng Y3:BV69 của sheet 151515 - đối chiếu hàng ngang cùng No, Sub, Total và hàng dọc cùng: 0,1,2,3,4,5,6,7,8,9.
- Ví dụ trong file là cột số E (số 1).
Rất mong nhận được sự giúp đỡ của các Bạn.
Chân thành cảm ơn!

Thấy bài này lên được mấy hôm tính ngồi viết code mà chưa có thời gian, hôm nay có bão mới được tha về sớm.
Vừa kịp khắc phục được tình trạng code chạy kiểu MoonWalk của Michael Jackson nên đỡ chóng mặt hơn, hi...hi...hi
Chủ thớt chạy thử code dưới xem có ok không nhé.
Mã:
Sub GomDL()

Dim i As Long, j As Long, tT_No, tT_Sub, tT_Total, n As Long
Dim k_No As Long, k_Sub As Long, k_Total As Long
Dim sArr(), dArr_No(1 To 1000, 0 To 9), dArr_Sub(1 To 1000, 0 To 9), dArr_Total(1 To 1000, 0 To 9)


sArr = Sheet1.Range("B2:BV69").Value


n = UBound(sArr, 1)


ReDim tT_No(0 To n)
ReDim tT_Sub(0 To n)
ReDim tT_Total(0 To n)


For i = 2 To UBound(sArr, 1)
    If sArr(i, 1) = "No" Then
            For j = 24 To UBound(sArr, 2)
                If sArr(i, j) <> "" Then
                        tT_No(sArr(1, j)) = tT_No(sArr(1, j)) + 1
                        dArr_No(tT_No(sArr(1, j)), sArr(1, j)) = sArr(i, j)
                            If tT_No(sArr(1, j)) > k_No Then k_No = tT_No(sArr(1, j))
                End If
            Next
    ElseIf sArr(i, 1) = "Sub" Then
            For j = 24 To UBound(sArr, 2)
                If sArr(i, j) <> "" Then
                        tT_Sub(sArr(1, j)) = tT_Sub(sArr(1, j)) + 1
                        dArr_Sub(tT_Sub(sArr(1, j)), sArr(1, j)) = sArr(i, j)
                            If tT_Sub(sArr(1, j)) > k_Sub Then k_Sub = tT_Sub(sArr(1, j))
                End If
            Next
    ElseIf sArr(i, 1) = "Total" Then
            For j = 24 To UBound(sArr, 2)
                If sArr(i, j) <> "" Then
                        tT_Total(sArr(1, j)) = tT_Total(sArr(1, j)) + 1
                        dArr_Total(tT_Total(sArr(1, j)), sArr(1, j)) = sArr(i, j)
                            If tT_Total(sArr(1, j)) > k_Total Then k_Total = tT_No(sArr(1, j))
                End If
            Next
    End If
      
Next


With Sheet2
.[D3:M100].ClearContents
.[D3].Resize(k_No, 9) = dArr_No
.[D23].Resize(k_Sub, 9) = dArr_Sub
.[D33].Resize(k_Total, 9) = dArr_Total
MsgBox ""
End With
End Sub
 

File đính kèm

Thấy bài này lên được mấy hôm tính ngồi viết code mà chưa có thời gian, hôm nay có bão mới được tha về sớm.
Vừa kịp khắc phục được tình trạng code chạy kiểu MoonWalk của Michael Jackson nên đỡ chóng mặt hơn, hi...hi...hi
Chủ thớt chạy thử code dưới xem có ok không nhé.
Mã:
Sub GomDL()

Dim i As Long, j As Long, tT_No, tT_Sub, tT_Total, n As Long
Dim k_No As Long, k_Sub As Long, k_Total As Long
Dim sArr(), dArr_No(1 To 1000, 0 To 9), dArr_Sub(1 To 1000, 0 To 9), dArr_Total(1 To 1000, 0 To 9)


sArr = Sheet1.Range("B2:BV69").Value


n = UBound(sArr, 1)


ReDim tT_No(0 To n)
ReDim tT_Sub(0 To n)
ReDim tT_Total(0 To n)


For i = 2 To UBound(sArr, 1)
    If sArr(i, 1) = "No" Then
            For j = 24 To UBound(sArr, 2)
                If sArr(i, j) <> "" Then
                        tT_No(sArr(1, j)) = tT_No(sArr(1, j)) + 1
                        dArr_No(tT_No(sArr(1, j)), sArr(1, j)) = sArr(i, j)
                            If tT_No(sArr(1, j)) > k_No Then k_No = tT_No(sArr(1, j))
                End If
            Next
    ElseIf sArr(i, 1) = "Sub" Then
            For j = 24 To UBound(sArr, 2)
                If sArr(i, j) <> "" Then
                        tT_Sub(sArr(1, j)) = tT_Sub(sArr(1, j)) + 1
                        dArr_Sub(tT_Sub(sArr(1, j)), sArr(1, j)) = sArr(i, j)
                            If tT_Sub(sArr(1, j)) > k_Sub Then k_Sub = tT_Sub(sArr(1, j))
                End If
            Next
    ElseIf sArr(i, 1) = "Total" Then
            For j = 24 To UBound(sArr, 2)
                If sArr(i, j) <> "" Then
                        tT_Total(sArr(1, j)) = tT_Total(sArr(1, j)) + 1
                        dArr_Total(tT_Total(sArr(1, j)), sArr(1, j)) = sArr(i, j)
                            If tT_Total(sArr(1, j)) > k_Total Then k_Total = tT_No(sArr(1, j))
                End If
            Next
    End If
      
Next


With Sheet2
.[D3:M100].ClearContents
.[D3].Resize(k_No, 9) = dArr_No
.[D23].Resize(k_Sub, 9) = dArr_Sub
.[D33].Resize(k_Total, 9) = dArr_Total
MsgBox ""
End With
End Sub

ủa code này được gọi là đỡ nhức đầu đó hả bạn ? vậy code kiểu MoonWalk thì nó còn khủng khiếp tới đâu ? hu hu !$@!!!$@!!!$@!!
 
ủa code này được gọi là đỡ nhức đầu đó hả bạn ? vậy code kiểu MoonWalk thì nó còn khủng khiếp tới đâu ? hu hu !$@!!!$@!!!$@!!
À, cũng không phải là nhức đầu gì cả, vì lâu rồi mình không viết code nên lần đầu viết vòng lặp cứ giật đi lại giật lại doveandrose ạ.
 
Web KT

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

Back
Top Bottom