excel - 如何使 TEXTJOIN 在溢出范围内工作

标签 excel excel-formula

我在 C4:D10 中有以下数据作为输入。单元格 G4 的公式为 =UNIQUE(C4:C10),单元格 H4 的公式为 =TEXTJOIN(", ",TRUE,IF($C$4:$C$10=G4,$ D$4:$D$10,"")),并且单元格 H5 具有 =TEXTJOIN(", ",TRUE,IF($C$4:$C$10=G5,$D$4:$D 10 美元,""))

H4 和 H5 中的值是我需要的:它们组合了每个类别的文本。但是,我更愿意通过 TEXTJOING4# 编写一个数组公式。我尝试了 =TEXTJOIN(", ",TRUE,IF($C$4:$C$10=G4#,$D$4:$D$10,"")),但效果不佳。

有谁知道如何在 G4# 上编写这样一个公式以获得相同的值?

PS:如果没有其他选择,带有 LAMBDA 和辅助函数的公式仍然会受到赞赏。

enter image description here

最佳答案

您可以使用以下公式实现此目的:

=LET(data,FILTER(C:D,C:C<>""),
          dataC1,INDEX(data,,1),
          dataC2,INDEX(data,,2),
          UdataC1,G4#,
                  v,UNIQUE(TRANSPOSE(IF(dataC1=TRANSPOSE(UdataC1),dataC2,"")),1),
                         seqrv,SEQUENCE(ROWS(v)),
           sep,",  ",
                         x,MMULT((LEN(v)+LEN(sep))*(v<>""),SIGN(SEQUENCE(COLUMNS(v))))-LEN(sep),
                         y,MMULT(--(TRANSPOSE(seqrv)<seqrv),x+LEN(sep)-1)+seqrv,
IFERROR(MID(TEXTJOIN(sep,1,v),y,x),""))

enter image description here

或者你可以使用以下方法一次性将其全部溢出:

=LET(data,FILTER(C:D,C:C<>""),
          dataC1,INDEX(data,,1),
          dataC2,INDEX(data,,2),
          UdataC1,UNIQUE(dataC1),
                         v,UNIQUE(TRANSPOSE(IF(dataC1=TRANSPOSE(UdataC1),dataC2,"")),1),
                         seqrv,SEQUENCE(ROWS(v)),
           sep,",  ",
                         x,MMULT((LEN(v)+LEN(sep))*(v<>""),SIGN(SEQUENCE(COLUMNS(v))))-LEN(sep),
                         y,MMULT(--(TRANSPOSE(seqrv)<seqrv),x+LEN(sep)-1)+seqrv,
          join,IFERROR(MID(TEXTJOIN(sep,1,v),y,x),""),
CHOOSE({1,2},UdataC1,join))

enter image description here

得到 this answer 的大力帮助来自马克·菲茨帕特里克

关于excel - 如何使 TEXTJOIN 在溢出范围内工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70271223/

相关文章:

Excel公式创建两个日期之间的年份范围

excel - 多个索引的总和与一个值匹配

vba - 返回同一工作簿中另一张工作表上的唯一日期数

macos - 获取Apple Mac系统的唯一机器号

excel - 如果线性规划决策变量 > 0 则 >= 3000

excel - 为具有匹配文本的单元格着色

java - 包含日期的单元格上的 DataFormatter 呈现两位数年份

excel - 如何使用公式 excel 2007 获取工作表名称

Excel如何提取不在第二列中的不同值

excel - Outlook 电子邮件正文不会复制到 Excel