cả nhà giúp em lọc dư liệu theo tên người thực hiện hợp đồng giúp em với ạ (1 người xem)

Liên hệ QC

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

Code ở bài #18:
Trước sau gì bạn cũng phải duyệt hết mảng, chép nó ra mảng nhỏ chi cho mất công.

' 1 mảng, không hơn không kém
For rowS = 1 to UBound(a)
If ten = a(rowS, cotTen) Then
rowD = rowD + 1
a(rowD, 1) = rowD
For j = 2 To soCot
a(rowD , j) = a(rowS, j)
Next j
End If
Next i
' cắt mảng a cho đến số dòng rowD
 
Code ở bài #18:
Trước sau gì bạn cũng phải duyệt hết mảng, chép nó ra mảng nhỏ chi cho mất công.

' 1 mảng, không hơn không kém
For rowS = 1 to UBound(a)
If ten = a(rowS, cotTen) Then
rowD = rowD + 1
a(rowD, 1) = rowD
For j = 2 To soCot
a(rowD , j) = a(rowS, j)
Next j
End If
Next i
' cắt mảng a cho đến số dòng rowD
Cám ơn Thầy ạ. Nhưng em chưa biết cách cắt mảng do vậy mới phải ghi vào mảng tạm ạ. Thây hướng dẫn em với ạ
 
Cám ơn Thầy ạ. Nhưng em chưa biết cách cắt mảng do vậy mới phải ghi vào mảng tạm ạ. Thây hướng dẫn em với ạ
Không phải hàm này sao?
If K Then My_Vlookup = ResizeKQ(dArr)

Cả lại, cách dễ nhất để cắt bớt, hoặc thêm dòng cho một mảng vón đuọc chép ra từ range là tìm một range trống dưới bảng tính, chép mảng xuống, copy trở lại phần cần thiết rồi xoá đi.
 
Không phải hàm này sao?


Cả lại, cách dễ nhất để cắt bớt, hoặc thêm dòng cho một mảng vón đuọc chép ra từ range là tìm một range trống dưới bảng tính, chép mảng xuống, copy trở lại phần cần thiết rồi xoá đi.
Em cám ơn Thầy rất nhiều. Cách của Thầy hay quá ạ
Em đưa vào hàm ResizeKQ 2 tham số của mảng. Kết quả là nó ngắn cũn thật là dễ thương như thế này ạ
Mã:
Function My_Vlookup(ByVal MaTK, Table_Array As Range, Col_Index As Long)
    Dim sArr(), I As Long, J As Long, K As Long, C As Long
sArr = Table_Array.value
C = UBound(sArr, 2)
For I = 1 To UBound(sArr)
    If MaTK = sArr(I, Col_Index) Then
        K = K + 1
        For J = 1 To C
            sArr(K, J) = sArr(I, J)
        Next J
    End If
Next I
If K Then My_Vlookup = ResizeKQ(sArr, K, C)
End Function
 
à do định dang ;;; thôi em. em bấm vào định dạng format cell chọn cái khác là được
anh cho em hỏi chút cách nào đưa dư liệu người thưc hiện hợp đồng thahf 2 sheep khách nhau ko ạ

bảng anh làm em cũ anh lafmthi ok rồi ạ, có cách nào xử lý này ko ạ ( vị người thực hiện hiện ra luôn mr tùng: ra 1 sheet, sơn ra 1 sheet luôn
1587712113580.png
1587712132421.png
 

File đính kèm

Em cám ơn Thầy rất nhiều. Cách của Thầy hay quá ạ
Em đưa vào hàm ResizeKQ 2 tham số của mảng. Kết quả là nó ngắn cũn thật là dễ thương như thế này ạ
...
Chỉ căn bản thôi. Vấn đề là các bạn quen cách làm việc với cặp mảng sArr, dArr rồi nên không để ý.
Kỹ thuật dồn 1 mảng là kỹ thuật căn bản khi mảng đầu ra cùng dạng với mảng đầu vào.
 

File đính kèm

cả nhà giúp em với ạ, em muốn lọc dư liêu theo tên người thực hiện hợp đồng thành sheet riêng: tùng, miền, huỳnh, sơn ạ
View attachment 236350
Quá đơn giản. cho dù 100.000 dòng cũng không mất 2 giây

Mã:
Sub LOCcoban()
On Error Resume Next
Dim sArr(), dArr(), I As Long, K As Long, R As Long, Col As Long
sArr = Range("A3:I13").Value '
R = UBound(sArr)
ReDim dArr(1 To R, 1 To 9) '
For I = 1 To R
    If UCase(sArr(I, 8)) = UCase(Range("N2").Value) Then
        K = K + 1
        For Col = 1 To 9 '
            dArr(K, Col) = sArr(I, Col)
        Next Col
    End If
Next I

Range("A21").Resize(R, 9).ClearContents
Range("A21").Resize(K, 9) = dArr '
End Sub
 

File đính kèm

File đính kèm

cả nhà giúp em với ạ, em muốn lọc dư liêu theo tên người thực hiện hợp đồng thành sheet riêng: tùng, miền, huỳnh, sơn ạ
Cái này Dùng Advanced Filer thì code ngắn gọn, vào N2 chọn 1 tên để xem kết quả.
Còn muốn mỗi người 1 sheet thì cũng Advanced Filer nhưng làm cách khác và chỉ nhấn nút là xong.
 

File đính kèm

Web KT

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

Back
Top Bottom