不使用 UDF 或辅助列就没有简单的解决方案。我建议使用 UDF 公式,它很容易在工作表中实现和使用。要使用此方法,请在您的regular module
(模块1)。
Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)
Dim i As Long
Dim result As String
For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string Then
result = result & " " & Return_val_col.Cells(i, 1).Value
End If
Next
Lookup_concat = Trim(result)
End Function
现在您可以像常规工作表公式一样使用此 UDF。输入这个公式=Lookup_concat(G3,$D$3:$D$12,$E$3:$E$12)
在细胞内I3
并将其拖到底部。
如果您只想使用常规公式,则需要输入此公式=IFERROR(INDEX($D$3:$E$12, SMALL(IF(($G3=$D$3:$D$12), ROW($D$3:$D$12)-MIN(ROW($D$3:$D$12))+1, ""),COLUMNS($A$1:A1)), 2),"")
在细胞内K3
使用 CTRL+SHIFT+ENTER 组合,因为它是数组公式。现在将公式向右和向下拖动(估计公式需要向右移动多远才能捕获所有唯一值)。
然后输入这个公式=CONCATENATE(K3," ",L3," ",M3," ",N3," ",O3," ")
在细胞内J3
并将其拖到底部(调整公式以估计唯一值的数量)。