【问题标题】:Join/Concatinate column text based on criteria根据条件连接/连接列文本
【发布时间】:2016-10-01 06:43:32
【问题描述】:

我有一个这样的数据集:

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

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

谢谢。

【问题讨论】:

    标签: excel google-sheets


    【解决方案1】:

    将您的第一个表(数据表/1、2、3)放在 A 到 C 列中。 以及 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
    

    我们会得到结果。

    已编辑:

    我忘了绝对引用。请考虑下面的公式。

    在 CONCAT 公式中为 excel 2016 构建

    =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,"")," ")
    

    【讨论】:

    • FWIW:CONCAT 仅在 Office 365 Excel 中可用。它在早期版本中不可用。
    • @ScottCraner 感谢您的评论。请检查修改后的版本。
    • 感谢您的回答。但是,对于您使用的数据集,对于 A 4 生成的单元格 G8 不应该包含 'red blue green' 吗?您的公式是否仅连接 2 个字符串?
    • 它将连接所有可能的字符串。我忘了绝对引用。使用这个 if 公式..... IF($B$2:$B$11&$A$2:$A$11=F2&E2,$C$2:$C$11,"")
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多