Lọc chuỗi duy nhất giữa hai ô trong excel (1 người xem)

  • Thread starter Thread starter Thbv
  • Ngày gửi Ngày gửi
Liên hệ QC

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

Thbv

Thành viên hoạt động
Tham gia
3/5/19
Bài viết
102
Được thích
10
Nhờ các bạn giúp như trong file đính kèm. Xin cảm ơn nhiều
 

File đính kèm

@Nhattanktnn , @n0thing1988 : 2 bạn giúp bạn thớt bài này đi, thớt hỏi mấy ngày rồi mà chưa được đáp ứng ở Topic kia.

Này là nối chuỗi và loại bỏ dữ liệu trùng lặp.

Mình không xử lý được bài này, híc.
 
Nhờ các bạn giúp như trong file đính kèm. Xin cảm ơn nhiều
Thử.
Mã:
Function gop(ByVal mang As Range, Optional dau As String = ", ") As String
        Dim T, s As String, T1
        For Each T In mang
            For Each T1 In Split(T.Value, dau)
               If Len(T1) > 0 Then
                If InStr(s & dau, dau & T1 & dau) = 0 Then
                   s = s & dau & T1
                End If
               End If
            Next
        Next
        If Len(s) Then gop = Right(s, Len(s) - Len(dau))
End Function
Mã:
=gop(F6:F7)
 

File đính kèm

Lần chỉnh sửa cuối:
Mình cảm ơn bạn. Bài này khó
 
Hồi lâu lắm rồi tôi có viết hàm để lọc chuỗi duy nhất, nó thế này:
Mã:
Function StrUnique(ByVal Text As String, Optional ByVal Delimiter As String) As String
  Dim idx As Long, aTemp
  On Error Resume Next
  If IsMissing(Delimiter) Then
    StrUnique = Left(Text, 1)
    For idx = 1 To Len(Text)
      If InStr(StrUnique, Mid(Text, idx, 1)) = 0 Then StrUnique = StrUnique & Mid(Text, idx, 1)
    Next idx
  Else
    aTemp = Split(Text, Delimiter)
    With CreateObject("Scripting.Dictionary")
      For idx = 0 To UBound(aTemp)
        If Len(Trim(aTemp(idx))) Then .Add aTemp(idx), ""
      Next idx
      StrUnique = Join(.Keys, ", ")
    End With
  End If
End Function
Với code trên, áp dụng vào bài này sẽ là:
Mã:
=StrUnique(F5&", "&F6,", ")
Công thức gõ tại F4 và kéo fill sang phải
-------------------------
Hàm này tùy biến được nhờ có đối số Delimiter. Nếu Delimiter bị bỏ trống thì xem như lọc duy nhất toàn chuỗi
 
@ndu96081631 : bài này mà chơi hàm trực tiếp thì như nào bác ơi?
 
Chưa nghĩ được cách nào hay làm thử kiểu nông dân đi ghép từng cái một vậy (tạm viết cho có 4 nội dung)
=F5&", "&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(", "&F$6;", "&TRIM(MID(SUBSTITUTE(","&F$5;",";REPT(" ";999));1*999;999));"");", "&TRIM(MID(SUBSTITUTE(","&F$5;",";REPT(" ";999));2*999;999));"");", "&TRIM(MID(SUBSTITUTE(","&F$5;",";REPT(" ";999));3*999;999));"");", "&TRIM(MID(SUBSTITUTE(","&F$5;",";REPT(" ";999));4*999;999));"")
1595490768010.png
 
Nhìn vậy mà khó thật chứ không giỡn đâu, mình cũng...chưa nghĩ ra :D
Nếu chỉ có 3 loại vi phạm này thì công thức khá đơn giản, tui cũng viết được:

F4={SUBSTITUTE(IF(SUM(IFERROR(FIND("Nộp chậm",F5:F6,1),0))>0,"Nộp chậm, ","")&IF(SUM(IFERROR(FIND("Nộp thiếu",F5:F6,1),0))>0,"Nộp thiếu, ","")&IF(SUM(IFERROR(FIND("Nộp chưa chính xác",F5:F6,1),0))>0,"Nộp chưa chính xác, ","")&"-",", -","")}

Ctrl+Shift+Enter
 
Là tôi tôi sẽ liệt kê 1 cột tất cả các trường hợp, dùng hàm để đếm xem trong cột F, cột G có dữ liệu nào trong cột "trường hợp"
Đại khái nó sẽ ntn
1595491877681.png
@xuongrongdat bạn không cần công thức khủng, không cần viết dài dòng( với 1 công thức không đáp ứng nổi nếu có 5, 7 trường hợp). Chỉ vài cột phụ là giải quyết được bài này. Mà toàn các công thức ai ai cũng viết được
 
Lần chỉnh sửa cuối:
Cảm ơn các bạn nhiều
 
Là tôi tôi sẽ liệt kê 1 cột tất cả các trường hợp, dùng hàm để đếm xem trong cột F, cột G có dữ liệu nào trong cột "trường hợp"
Đại khái nó sẽ ntn
View attachment 241688
@xuongrongdat bạn không cần công thức khủng, không cần viết dài dòng( với 1 công thức không đáp ứng nổi nếu có 5, 7 trường hợp). Chỉ vài cột phụ là giải quyết được bài này. Mà toàn các công thức ai ai cũng viết được
Ý hay! triển khai ra thành vầy:

Nếu chỉ có 3 trường hợp: "Nộp chậm", "Nộp thiếu" và "Nộp chưa chính xác", thì chỉ cần tạo bảng phụ lập ra 7 trường hợp như J5: K11 file kèm.
Dùng Vlookup(), có thể dùng cho nhiều dòng:
Mã:
F4=VLOOKUP(SUM(SIGN(COUNTIF(F5:F7,"*"&{"Nộp chậm","Nộp thiếu","Nộp chưa chính xác"}&"*"))*{1,3,5}),$J$5:$K$11,2,)
Enter, fill qua phải.

Thân
 

File đính kèm

Cảm ơn các bạn nhiều. Mình làm theo các bạn được rồi
 
Ý hay! triển khai ra thành vầy:

Nếu chỉ có 3 trường hợp: "Nộp chậm", "Nộp thiếu" và "Nộp chưa chính xác", thì chỉ cần tạo bảng phụ lập ra 7 trường hợp như J5: K11 file kèm.
Dùng Vlookup(), có thể dùng cho nhiều dòng:
Mã:
F4=VLOOKUP(SUM(SIGN(COUNTIF(F5:F7,"*"&{"Nộp chậm","Nộp thiếu","Nộp chưa chính xác"}&"*"))*{1,3,5}),$J$5:$K$11,2,)
Enter, fill qua phải.

Thân
Lúc này ít thấy Anh lên diễn đàn vậy Anh.
 
Web KT

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

Back
Top Bottom