根据标准join/连结列文本
我有这样的数据集:
ABC ---------- 1 A blue 1 A red 1 B blue 2 A red 3 B blue 3 B green 3 C blue 4 C blue 4 A blue 4 A green
和这样一个单独的表(这已经使用UNIQUE()自动生成):
EFG ----- 1 A 1 B 2 A 3 B 3 C 4 C 4 A
我想joinC列中的文本,并根据列E和F中给出的条件在G列中显示结果。我正在查找的结果如下所示(所有连接/连接的文本应该在列G中):
EFG ----- 1 A blue red 1 B blue 2 A red 3 B blue green 3 C blue 4 C blue 4 A blue green
可选,不需要,但会很好:生成的文本之间的分隔符是一个行制动,所以每行都在同一行内的一个单独的行。
谢谢。
将第一个表(数据表/ 1,2,3)放在A列到C,另一个表(5,6,7)放在E到G列
在G2中input下面的数组公式
{=CONCAT(IF(A2:A11&B2:B11=E2&F2,C2:C11&" ",""))}
你会得到你的结果。
对于较早的版本,我们需要创buildUDF
Function ConcatUDF(rng() As Variant, ByVal delim As String) As String Dim a, i As Long For i = 1 To UBound(rng, 1) If rng(i, 1) <> "" Then ConcatUDF = ConcatUDF & _ IIf(ConcatUDF = "", "", delim) & rng(i, 1) End If Next End Function
我们会得到结果。
编辑:
我忘了绝对的参考。 请考虑以下提及的公式。
与CONCAT公式为Excel 2016build立
=CONCAT(IF($A$2:$A$11&$B$2:$B$11=E2&F2,$C$2:$C$11&" ",""))
与用于早期版本的Excel的UDF
=ConcatUDF(IF($B$2:$B$11&$A$2:$A$11=F2&E2,$C$2:$C$11,"")," ")