dữ liệu nhiều dùng advance filter ,hoặc VBA, dữ liệu it dùng cột phụ và công thức. bạn chọn loại nào ?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
cho em dùng công thức ạ, bạn hỗ trợ giúp em với ạdữ liệu nhiều dùng advance filter ,hoặc VBA, dữ liệu it dùng cột phụ và công thức. bạn chọn loại nào ?
Của bạn đâycho em dùng công thức ạ, bạn hỗ trợ giúp em với ạ
ok bạn em cảm ơnCủa bạn đây
Mình vẫn dùng công thức của nhà họ ngày hôm qua và thêm 1 hàm tự tạo My_Vlookup để bạn tham khảo nhécho em dùng công thức ạ, bạn hỗ trợ giúp em với ạ
Thời nay mà còn dùng đồ cổ .xlsMình vẫn dùng công thức của nhà họ ngày hôm qua và thêm 1 hàm tự tạo My_Vlookup để bạn tham khảo nhé
Dạ em sợ ... hi hi. Chứ File em dùng thì không bao giờ lưu cái đuôi ấy ạThời nay mà còn dùng đồ cổ .xls![]()
Anh ơi Anh xem hộ em cái hàm My_Vlookup được không ạThời nay mà còn dùng đồ cổ .xls![]()
bạn tìm hiểu thêm Data- Validation --list nhé có cả đống trên diễn đàn.anh lê duy thương ơi, em hỏi chút, làm sao làm được chỗ người thực hiện hợp đồng giống như anh ạ, anh chỉ giúp em ạ
View attachment 236360
ok anh , em cảm ơnbạn tìm hiểu thêm Data- Validation --list nhé có cả đống trên diễn đàn.
Chậm không do duyệt mảng kết quả mà do mấy cái lùm xùm ép bảng tính, tính lại vùng dữ liệuAnh ơi Anh xem hộ em cái hàm My_Vlookup được không ạ
Em đang phải duyệt qua mảng kết quả để bỏ phần tử thừa rồi mới đưa vào hàm ResizeKQ. Do đó nó bị chậm một chút. Mong Anh xem giúp em nhé
Dạ. Em cám ơn Anh nhiều ạChậm không do duyệt mảng kết quả mà do mấy cái lùm xùm ép bảng tính, tính lại vùng dữ liệu
Trong Function nên bỏ bớt 1 vòng "For J=1 ..." theo cộtDạ. Em cám ơn Anh nhiều ạ
Dạ đúng rồi Anh ạ. Cám ơn Anh nhiều ạTrong Function nên bỏ bớt 1 vòng "For J=1 ..." theo cột
Function My_Vlookup(ByVal Lookup_Value, ByVal Table_Array As Range, ByVal Col_Index As Long)
Dim sArr(), tArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Idx As Long
sArr = Table_Array.value
ReDim tArr(1 To UBound(sArr, 1), 1 To 1)
For I = 1 To UBound(sArr)
If Lookup_Value = sArr(I, Col_Index) Then
K = K + 1: tArr(K, 1) = I
End If
Next I
R = K: K = 0
ReDim dArr(1 To R, 1 To UBound(sArr, 2))
For I = 1 To R
K = K + 1: Idx = tArr(I, 1)
For J = 1 To UBound(sArr, 2)
dArr(K, J) = sArr(Idx, J)
Next J
Next I
If K Then My_Vlookup = ResizeKQ(dArr)
End Function
For I = 1 To RDạ đúng rồi Anh ạ. Cám ơn Anh nhiều ạ
Em sửa lại như thế này
Mã:Function My_Vlookup(ByVal Lookup_Value, ByVal Table_Array As Range, ByVal Col_Index As Long) Dim sArr(), tArr(), dArr(), I As Long, J As Long, K As Long, R As Long, Idx As Long sArr = Table_Array.value ReDim tArr(1 To UBound(sArr, 1), 1 To 1) For I = 1 To UBound(sArr) If Lookup_Value = sArr(I, Col_Index) Then K = K + 1: tArr(K, 1) = I End If Next I R = K: K = 0 ReDim dArr(1 To R, 1 To UBound(sArr, 2)) For I = 1 To R K = K + 1: Idx = tArr(I, 1) For J = 1 To UBound(sArr, 2) dArr(K, J) = sArr(Idx, J) Next J Next I If K Then My_Vlookup = ResizeKQ(dArr) 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à đượcbác lê duy thương ơi, em hỏi thêm tí, cột ghi chú anh dùng hàm ra trắng, mà em dùng hàm như anh ra giá tri, anh xem giúp em ạ
View attachment 236368
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 ạ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
Không phải hàm này sao?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 ạ
If K Then My_Vlookup = ResizeKQ(dArr)
Em cám ơn Thầy rất nhiều. Cách của Thầy hay quá ạ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.
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
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 ạà do định dang ;;; thôi em. em bấm vào định dạng format cell chọn cái khác là được
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 để ý.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ủ Topic cho ké tí nhé. Rảnh quá ngồi kiểm tra hàmanh 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
View attachment 236393
View attachment 236394
fiel chị, thay dodri cái,báo lỗi,huuuuChủ Topic cho ké tí nhé. Rảnh quá ngồi kiểm tra hàm
Lỗi sao vậy Bạnfiel chị, thay dodri cái,báo lỗi,huuuu
vâng ạLỗi sao vậy Bạn
Quá đơn giản. cho dù 100.000 dòng cũng không mất 2 giâycả 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
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
đương nhiên là được nhé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
View attachment 236393
View attachment 236394
ok anh em cảm ơn ạđương nhiên là được nhé
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ả 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 ạ