根据条件加入/ Concatinate列文本

时间:2016-10-01 06:43:33

标签: excel google-sheets

我有这样的数据集:

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

可选,不需要但很好:生成的文本之间的分隔符是行制动,因此每行都在同一行内的单独行中。

谢谢。

1 个答案:

答案 0 :(得分:3)

将第一个表(数据表/ 1,2,3)放在A列中。 和E到G列中的另一个表(5,6,7)

在G2

中输入以下数组公式
{=CONCAT(IF(A2:A11&B2:B11=E2&F2,C2:C11&" ",""))}

你会得到你的结果。

enter image description here

对于早期版本,我们需要创建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

我们将得到结果。

enter image description here

<强>编辑:

我忘记了参考文献。请考虑下面的公式。

使用针对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,"")," ")