【问题标题】:Concatenate values based on criteria根据条件连接值
【发布时间】:2015-12-18 03:28:00
【问题描述】:

我在 Excel 中有一个两列数据列表。第一列是测试中的问题编号,第二列是引用该问题所测试内容的数字。一些元素在不止一个问题上进行测试。我想要做的是列出测试每个元素的问题编号。例如:

   A            B      Should return:   C            D

1  Q            Ref                     Q            Ref
2  1            N1                      1,3,5        N1
3  2            N4                      2            N4
4  3            N1                      4            N3
5  4            N3
6  5            N1

我希望使用公式返回。

我遇到的问题是返回然后连接一列中未指定数量的值,这些值引用了更靠右的另一列的特定标准。

编辑:寻找公式答案,如果可能的话,不是 VBA

编辑:到目前为止,感谢您的 cmets。我将看看到目前为止给出的每个可能的解决方案,并让你知道我的想法。 1,2,3 等需要在同一个单元格中。

【问题讨论】:

  • 在“解决方案”中,你必须在同一个单元格中有1,3,5吗?
  • @Pnuts - 好吧,我不会连接..它只是一个数组公式类型的东西。我会看看它是否有效并作为一个想法提供。
  • @findwindow - 天哪,你认为布鲁斯韦恩是如何赚到数十亿美元的,而且至少有一半是他自己的技术?当然是 Excel!
  • @pnuts - 关于 Excel 的每个问题都已得到解答。我们可以提供更新的技术答案(强力查询),但一个简单的事实是,当简单地在谷歌上搜索他们的问题标题会产生数千个答案时,提出基本问题的 OP 并没有做任何研究。我今天回答了一个问题,我花了几个小时得出一个解决方案,但 OP 无法使其发挥作用。
  • @Jeeped OPs asking rudimentary question have done NO research 这个。我不知道为什么有些成员除了对积分的贪婪之外还继续幽默他们。我叫出了一个有 32K 点的人,但仍然回答了一个巨魔。这就像给无家可归者钱一样。只要少数人继续这样做,巨魔就会继续存在。编辑:大声笑加里? deleted my comment.

标签: excel excel-formula


【解决方案1】:

只是将我的评论放在答案中,这样更有意义。

首先在 B 列上对 A 列和 B 列进行排序。

在C2中输入公式:

=IF(B2=B3,A2&","&C3,A2)

然后抄下来。

然后在 E 列中放置您的唯一参考列表。而在 D2 中:

=VLOOKUP(E2,$B$2:$C$6,2,FALSE)

然后抄下来。

然后您可以隐藏 C 列。

它确实需要正确排序和一个辅助列,但它确实遵循仅公式规则。

【讨论】:

  • @Pankajshrivastava 这个答案是旧的,并且有 Office 365 的 TEXTJOIN() 可以在没有中间步骤的情况下执行此操作。
【解决方案2】:

本质上,Excel 不鼓励在工作表公式中这样做。我猜他们认为,如果您在 用户定义函数(又名 UDF)中执行此操作并且它会影响工作簿,那是您自己的错,就这样吧。为此,我从未见过仅使用本机工作表函数的标准或数组公式可以在“参差不齐”的单元格数组上完成此操作,并且已尝试过几次。按照设计考虑#REF!

您可以运行连续的 IF 函数(按照 xl2007+ 标准最多 64 个)来完成字符串拼接(请参阅 this),但您也将受限于公式的总长度(请参阅 this)。我们还使用“辅助”单元来运行

TLDR;简而言之,VBA 是您最可行的解决方案(请参阅this)。条件字符串连接本身就充满了问题,更不用说在数组循环中了。


CONCATENATE function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-13
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多