0
本質上來說,我期望比較2個單元格的內容,然後用不同的方法填充一個新單元格。我期待比較的2個單元格的內容都是包含產品名稱的列表。一個例子是:比較2個單元格的內容,然後將任何差異複製到一個新單元格中
小區1含有A,B,C,d
細胞2含有B,C
我想細胞3〜然後用A和d
填充我本質希望做一個vlookup函數的反面,但不知道我會怎麼做。
在此先感謝您的幫助。
本質上來說,我期望比較2個單元格的內容,然後用不同的方法填充一個新單元格。我期待比較的2個單元格的內容都是包含產品名稱的列表。一個例子是:比較2個單元格的內容,然後將任何差異複製到一個新單元格中
小區1含有A,B,C,d
細胞2含有B,C
我想細胞3〜然後用A和d
填充我本質希望做一個vlookup函數的反面,但不知道我會怎麼做。
在此先感謝您的幫助。
這裏的UDF中,你可以使用這個:
' Returns a `delimiter`-joined list containing
' items from minuend (a `delimiter`-joined list)
' but not items from subtrahend (a `delimiter`-joined list)
Public Function SET_SUB(minuend As String, subtrahend As String, Optional delimiter As Variant)
If IsMissing(delimiter) Then delimiter = "," ' Set default delimiter as comma
Dim i As Integer
Dim emptyList As Boolean: emptyList = True
' Retrieve list items
Dim fullSet As Variant
Dim removeSet As Variant
fullSet = Split(minuend, delimiter)
removeSet = Split(subtrahend, delimiter)
SET_SUB = ""
' Loop through subtrahend, removing matches
For i = 0 To UBound(fullSet)
If IsError(Application.Match(fullSet(i), removeSet, 0)) Then
SET_SUB = SET_SUB & fullSet(i) & delimiter
emptyList = False
End If
Next
' Remove last delimiter for non-empty list
If Not emptyList Then
SET_SUB = Left(SET_SUB, Len(SET_SUB) - Len(delimiter))
End If
End Function
丟棄的模塊和功能將在你的工作訪問(如果你不熟悉的UDF的here信息)。
它將第一個列表中的項目刪除,刪除第二個列表中的項目並返回設置的差異。如果您希望列表以逗號以外的名稱分隔,則可以選擇添加「分隔符」參數。
構建關閉你的例子:
A1 = A,B,C,d
A2 = B,C
A3 = =SET_SUB(A1, A2)
= A,d
對於以分號分隔的列表:
A1 =一; C;,B d
A2 = B; C
A3 = =SET_SUB(A1, A2, ";")
=一; d
你能更好地定義你的問題(我不確定你如何在你的例子中得到「A和B」作爲期望的返回值)?你還可以向我們展示你迄今爲止的嘗試,以及爲什麼你的嘗試失敗了? – Mikegrann
哎呀,這是一個錯字。我糾正了它。 A和D是我想要的返回值,因爲A&D僅位於單元格1中,而不是單元格2.我想我需要使用某種反向匹配函數,但仍試圖計算出結果 – Bzinck15105
使用'Split(cellValue, 「,」)'從每個單元格創建數組,然後遍歷第一個數組中的元素並使用'Match()'來查看它們是否包含在第二個數組中。 –