【发布时间】:2021-09-26 12:28:25
【问题描述】:
在 D 列上,我想要 C 列的 TEXTJOIN。
- 分隔符是逗号,后面有一个空格:", "
- 必须满足的两个条件是:A列中的相同日期,B列中的相同值
- 这是一个表格,所以我更喜欢使用列名的引用(例如“日期”)
任何帮助将不胜感激
【问题讨论】:
标签: excel excel-formula countif textjoin excel-tables
在 D 列上,我想要 C 列的 TEXTJOIN。
任何帮助将不胜感激
【问题讨论】:
标签: excel excel-formula countif textjoin excel-tables
=IF($B1<>$B2,IFERROR(TEXTJOIN(",",0,$C2:INDEX($C2:$C$12,MATCH(1,--($B2:$B$12<>$B2),0)-1)),TEXTJOIN(",",0,$C2:$C$12)),"")
公式从当前行开始索引列 C,直到在 B 列中找到不同的值(减 1)。
IFERROR 用于范围内的最后一个发现,因为它不会在该值之后的范围内找到不再匹配该值的值。对于 Office 365 之前的 Excel 版本,使用 ctrl+shift+enter 输入
【讨论】:
您可以将TEXTJOIN 与FILTER 结合使用。
类似:=TEXTJOIN(",",1, FILTER($C$2:$C$12, ($B$2:$B$12=B2)*($A$2:$A$12=A2))
请注意,您可以用命名范围替换范围,并且“*”在FILTER 函数中用作AND 的一种。
编辑:为避免重复行,您可以使用检查重复项的IF 语句包装整个函数。比如:
=IFERROR(IF(MATCH(
TEXTJOIN(",",1,FILTER($C$2:$C$12,($B$2:$B$12=$B12)*($A$2:$A$12=$A12))),D$1:D11,0)>0,""),
TEXTJOIN(",",1,FILTER($C$2:$C$12,($B$2:$B$12=$B12)*($A$2:$A$12=$A12))))
【讨论】: