【问题标题】:How do I concatenate multiple cells which fulfil a criteria in Sheets/Excel?如何连接多个满足表格/Excel 标准的单元格?
【发布时间】:2019-12-23 02:25:48
【问题描述】:

我希望将满足我选择的特定标准的多个单元格连接在一起。

例如,如果我想要一个单元格中的所有猫或所有狗,即使它们重复:

A1 Cat B2 Leopard 
A2 Dog B3 Hyeenah
A3 Cat C3 Tortoise Shell
A4 Cat C4 Tortoise Shell

所以我想连接所有的猫并在一个单元格中返回,这样输出是:豹,龟壳,龟壳

或狗:

鬣狗

我已经尝试过使用索引、匹配、如果和连接的各种组合,但我觉得我离得更近了。

我希望返回我在参考单元格中指定的输出。

【问题讨论】:

  • 您需要 TEXTJOIN 函数或使用 vba 解决方案。还有,你为什么要从单元格 B2 到 B3,然后是 C3 和 C4?

标签: excel excel-formula concatenation


【解决方案1】:

假设您实际上是指返回值中的B1:B4,您可以使用TEXTJOIN 函数,具体取决于您的Excel 许可证。点击链接,看看您是否可以使用。


不幸的是,没有 TEXTJOINIF 函数这样的东西,所以我们必须创建自己的函数。

E1中的公式:

=TEXTJOIN(", ",TRUE,IF($A$1:$A$4=D1,$B$1:$B$4,""))

注意: 这些是通过 Ctrl+Shift+Enter


如果您没有TEXTJOIN,最好的办法是使用UDF,我们可以创建自己的TEXTJOINIF 函数:

Function TEXTJOINIF(Delimiter As String, CriteriaRange1 As Range, Criteria As String, ConcatRange As Range) As String

Dim CL As Range
For Each CL In CriteriaRange1
    If CL.Value = Criteria Then
        If TEXTJOINIF = "" Then
            TEXTJOINIF = ConcatRange.Cells(CL.Row, 1).Value
        Else
            TEXTJOINIF = TEXTJOINIF & Delimiter & ConcatRange.Cells(CL.Row, 1).Value
        End If
    End If
Next CL

End Function

您可以拨打E1:

=TEXTJOINIF(", ",$A$1:$A$4,D1;$B$1:$B$4)

然后向下拖动。

【讨论】:

  • 谢谢!我认为这让我很接近。
  • 但是当我输入那个公式时,我实际上得到了豹、鬣狗、龟甲、龟甲。有什么方法可以排除您不想要的标准,即在这种情况下,狗?谢谢!
  • @benaspill,是的,将其作为数组公式输入,就像我用键 control + shift + enter 解释的那样。你已经完成了我发布的工作
  • 啊,谢谢,会查数组公式,自学!非常感谢
  • @BenAspill,如果这对您有所帮助并回答了您的问题。请回报并接受/赞成答案。更多信息请参考this链接。
【解决方案2】:

我不是 Excel 向导,只是程序员,但我相信您需要某种自动化/重复循环。我发现这可以通过 Excel 中的 VBA 来完成。

链接:Excel VBA Loop

这是伪代码:

// SUMMATION CELL CATS: D1
// SUMMATION CELL DOGS: D2

   Dim i As Integer

   For i = 1 To 6
     IF(Cells(i, 1).Value == "Cat"){CONCATENATE(D1, Cells(i,1).Value, ',')}
     ELSE(Cells(i, 1).Value == "Dog"){CONCATENATE(D2, Cells(i,1).Value, ',')}
   Next i

我希望这可以帮助您找到解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-09
    • 2020-12-12
    相关资源
    最近更新 更多