vietjet1122
Thành viên mới
- Tham gia
- 30/12/22
- Bài viết
- 40
- Được thích
- 9
Bài này viết cái code VBA chạy nhanhEm chào các anh/chị giải pháp Excel
Em đang muốn lọc tìm những PO mà chưa xác định. Em có tìm trên GPE mà không tìm thấy bài nào giống của em, hay cũng có thể em không tìm được. Mong anh/chị giúp đỡ.
Bạn thử chạy code sau và kiểm tra kết quả nhé!Em chào các anh/chị giải pháp Excel
Em đang muốn lọc tìm những PO mà chưa xác định. Em có tìm trên GPE mà không tìm thấy bài nào giống của em, hay cũng có thể em không tìm được. Mong anh/chị giúp đỡ.
Sub GPE()
Dim Arr(), Res(1 To 1000, 1 To 2), i&, j&, k&
On Error Resume Next
With Sheets("Sheet1")
Arr = .Range("B8:F26").Value
.Range("N9:O100").ClearContents
For i = 2 To UBound(Arr)
For j = 2 To UBound(Arr, 2)
If Arr(i, j) = "X" Then
k = k + 1
Res(k, 1) = "PO" & Split(Arr(i, 1), "-")(2)
Res(k, 2) = Arr(1, j)
End If
Next j
Next i
.Range("N9").Resize(k, 2).Value = Res
End With
End Sub
1 PO chỉ có 1 LOẠI X thôi hay nhiều hơn.Em chào các anh/chị giải pháp Excel
Em đang muốn lọc tìm những PO mà chưa xác định. Em có tìm trên GPE mà không tìm thấy bài nào giống của em, hay cũng có thể em không tìm được. Mong anh/chị giúp đỡ.
Ui VBA nhanh thật đó. Cảm ơn bạn nhiều nháBạn thử chạy code sau và kiểm tra kết quả nhé!
PHP:Sub GPE() Dim Arr(), Res(1 To 1000, 1 To 2), i&, j&, k& On Error Resume Next With Sheets("Sheet1") Arr = .Range("B8:F26").Value .Range("N9:O100").ClearContents For i = 2 To UBound(Arr) For j = 2 To UBound(Arr, 2) If Arr(i, j) = "X" Then k = k + 1 Res(k, 1) = "PO" & Split(Arr(i, 1), "-")(2) Res(k, 2) = Arr(1, j) End If Next j Next i .Range("N9").Resize(k, 2).Value = Res End With End Sub
Dạ 1 PO chỉ có 1 X : chưa xác định thôi ạ1 PO chỉ có 1 LOẠI X thôi hay nhiều hơn.
Vậy dùng công thức này, Excel365Ui VBA nhanh thật đó. Cảm ơn bạn nhiều nhá
Bài đã được tự động gộp:
Dạ 1 PO chỉ có 1 X : chưa xác định thôi ạ
=LET(loai,BYROW(IF(C9:F26="X",C8:F8,""),LAMBDA(b,CONCAT(b))),FILTER(HSTACK("PO"&TEXTAFTER(B9:B26,"-",-1),loai),loai<>""))
Cảm ơn anh. Em dùng Excel 2016Vậy dùng công thức này, Excel365
Mã:=LET(loai,BYROW(IF(C9:F26="X",C8:F8,""),LAMBDA(b,CONCAT(b))),FILTER(HSTACK("PO"&TEXTAFTER(B9:B26,"-",-1),loai),loai<>""))
Em chào các anh/chị giải pháp Excel
Em đang muốn lọc tìm những PO mà chưa xác định. Em có tìm trên GPE mà không tìm thấy bài nào giống của em, hay cũng có thể em không tìm được. Mong anh/chị giúp đỡ.
K9 =IFERROR("PO"&MID(INDEX($B$9:$B$26,AGGREGATE(15,6,ROW($1:$100)/($C$9:$F$26="X"),ROWS($1:1))),14,9),"")
L9 =IFERROR(INDEX($C$8:$F$8,,MATCH("X",INDEX($C$9:$F$26,AGGREGATE(15,6,ROW($1:$100)/($C$9:$F$26="X"),ROWS($1:1)),),0)),"")
Tuyệt vời anh trai. Cảm ơn anhMã:K9 =IFERROR("PO"&MID(INDEX($B$9:$B$26,AGGREGATE(15,6,ROW($1:$100)/($C$9:$F$26="X"),ROWS($1:1))),14,9),"")
Copy xuống . . .Mã:L9 =IFERROR(INDEX($C$8:$F$8,,MATCH("X",INDEX($C$9:$F$26,AGGREGATE(15,6,ROW($1:$100)/($C$9:$F$26="X"),ROWS($1:1)),),0)),"")