列的 TEXTJOIN 与其他列的值相同,表引用

问题描述

在 D 列我想要 C 列的 TEXTJOIN。

  1. 分隔符是逗号,后面有一个空格:","
  2. 必须满足的两个条件是:A 列中的日期相同,B 列中的值相同
  3. 这是一个表格,所以我更喜欢使用列名称的引用(例如“日期”)

任何帮助将不胜感激

enter image description here

解决方法

=IF($B1<>$B2,IFERROR(TEXTJOIN(",",$C2:INDEX($C2:$C$12,MATCH(1,--($B2:$B$12<>$B2),0)-1)),TEXTJOIN(",$C2:$C$12)),"")

公式从当前行开始索引 C 列,直到它在 B 列中找到不同的值(减去 1)。 IFERROR 用于在范围内找到的最后一个值,因为它不会在该值之后的范围内找到与该值不匹配的值。对于 Office 365 之前的 Excel 版本,使用 ctrl+shift+enter 输入

,

您可以将 TEXTJOINFILTER 结合使用。

类似于:=TEXTJOIN(",1,FILTER($C$2:$C$12,($B$2:$B$12=B2)*($A$2:$A$12=A2))

请注意,您可以使用命名范围替换范围,并且“*”在 AND 函数中用作一种 FILTER

编辑:为避免重复行,您可以使用检查重复项的 IF 语句包装整个函数。类似的东西:

=IFERROR(IF(MATCH(
TEXTJOIN(",($B$2:$B$12=$B12)*($A$2:$A$12=$A12))),D$1:D11,0)>0,""),($B$2:$B$12=$B12)*($A$2:$A$12=$A12))))

enter image description here