将 Sumif 函数与连接结合起来

将 Sumif 函数与连接结合起来

假设每个单元格上方的值都是“是”,那么有没有办法连接一串文本单元格?

例如:

yes    yes             
dog    cat   bird   hen

在这种情况下,连接后的字符串结果将是:

狗猫

答案1

这需要一个 IF 语句,它是 Excel 公式中的有效表达式。

语法是:

IF( condition, [value_if_true], [value_if_false] )

该公式可能如下所示:

IF(ISNUMBER(SEARCH("Yes",A1)), CONCATENATE(A2, " ", B2, " ", C2))

注意:这只会检查单元格 A1 中是否存在一个“是”,然后连接所有单元格。如果您希望只连接“是”下的单元格,则需要将其扩展为宏或在不同的单元格中使用几个相关公式。

参考:

更新:对于大量数值中使用宏的担忧

宏可以解决这个问题。如果数据行中的单元格数量可能有所不同,并且您需要循环显示每个单元格的信息,则有多种方法可以确定行(或列)中最后一个包含数据的单元格,然后将其反馈到宏中的其他地方。

鉴于 A 行中的“是/空白”和 B 行中的数据,我认为您可以分三步完成此操作:

  1. 获取 A 行中最后一个带有“是”的单元格:使用寻找在 A 行范围内。

  2. 获取步骤 1 中“查找”的值,并使用它来从单元格 A1 循环到单元格 A(来自“查找”的值),并记录找到的每个“是”的单元格编号。

  3. 取这些数字并将 B 行中的每个单元格与步骤 2 中的数字连接起来。

您可以通过合并步骤 2 和 3 将其缩短为两个步骤,每次在 A 中找到“是”时,只需从 B 中提取并连接值即可。

不幸的是,我不是 VBA 天才,实际上只是基于数周的努力和大量论坛帖子编写了有效的宏,所以我甚至不会尝试写出来。但每个组件步骤应该足够简单,可以研究,然后可以根据自己的喜好进行组装。

相关内容