我有这样的数据集:
A B C
----------
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()自动生成了):
E F G
-----
1 A
1 B
2 A
3 B
3 C
4 C
4 A
我想连接C列中的文本,并根据E和F列中给出的条件在G列中显示结果。我要查找的结果看起来像这样(所有连接/连接的文本应该在G列中):
E F G
-----
1 A blue red
1 B blue
2 A red
3 B blue green
3 C blue
4 C blue
4 A blue green
可选,不需要但很好:生成的文本之间的分隔符是行制动,因此每行都在同一行内的单独行中。
谢谢。
答案 0 :(得分:3)
将第一个表(数据表/ 1,2,3)放在A列中。 和E到G列中的另一个表(5,6,7)
在G2
中输入以下数组公式{=CONCAT(IF(A2:A11&B2:B11=E2&F2,C2:C11&" ",""))}
你会得到你的结果。
对于早期版本,我们需要创建UDF
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
我们将得到结果。
<强>编辑:强>
我忘记了参考文献。请考虑下面的公式。
使用针对excel 2016的CONCAT公式构建
=CONCAT(IF($A$2:$A$11&$B$2:$B$11=E2&F2,$C$2:$C$11&" ",""))
使用UDF获取早期版本的excel
=ConcatUDF(IF($B$2:$B$11&$A$2:$A$11=F2&E2,$C$2:$C$11,"")," ")