Row-wise 带查找的动态数组的文本连接

Row-wise textjoin of dynamic array with lookup

此问题与 from user mark fitzpatrick密切相关。

我的 sheet 图片

我在 M3# 和 AB3#(相同列表)中有一个国家代码 headers 的可变列表,在 A4# 中有一个唯一“提及”行的可变列表。 M4# 和 AB4# 中的公式针对两个问题 "P""O" 计算每个国家/地区列出 A4# 中特定提及的次数 分别。每个提及至少出现在 "P""O" 中。对于 L 和 AA 列中的每一行,我有一个公式分别对 "P""O" 每个国家/地区的每一行的提及计数进行文本连接(如果没有提及,则为“-”),但这不是动态公式 - 每次更新范围时,我都必须将其复制到提及范围内。

我希望 L 和 AA 列改为包含动态公式。我如何更新 Mark 的 AM 和 AN 列中的公式以包含 L 和 AA 列中的国家/地区代码?

在 AM4# 和 AN4# 中,我在我的溢出范围 M4# 和 AB4# 上使用 Mark's 更新的公式,它们产生与我的个人公式相同的结果,除了没有国家代码:

=LET( m, M4#,
   rSeq, SEQUENCE( ROWS(m) ),
   L, MMULT( LEN(m)--(m<>""), SIGN( SEQUENCE( COLUMNS(m) ) ) ) - 1,
   i, MMULT(--( TRANSPOSE( rSeq ) < rSeq ), L ) + rSeq,
   IFERROR( MID( TEXTJOIN( ",", TRUE, m ), i, L ), "" ) )

(编辑删除不必要的介绍)

将标题连接到范围:

=LET( m, M4#&IF(M4#<>""," "&$M:$T,""),
   rSeq, SEQUENCE( ROWS(m) ),
   L, MMULT( LEN(m)--(m<>""), SIGN( SEQUENCE( COLUMNS(m) ) ) ) - 1,
   i, MMULT(--( TRANSPOSE( rSeq ) < rSeq ), L ) + rSeq,
   IFERROR( MID( TEXTJOIN( ",", TRUE, m ), i, L ), "" ) )

其中 $M:$T 是您的头衔。


编辑:

要添加 space,我们需要做一些更改。我将所需的拆分器移到了它自己的变量中,这样我就可以找到它的长度:

=LET( m, M4#&IF(M4#<>""," "&$M:$T,""),
   spl,", ",
   rSeq, SEQUENCE( ROWS(m) ),
   L, MMULT( LEN(m)+(m<>"")*LEN(spl), SIGN( SEQUENCE( COLUMNS(m) ) ) ) - LEN(spl),
   i, MMULT(--( TRANSPOSE( rSeq ) < rSeq ), L ) + ((rSeq-1)*LEN(spl)) + 1,
   IFERROR( MID( TEXTJOIN( spl, TRUE, m ), i, L ), "" ) )

像我们以前那样在每一行上添加一个更简单的函数怎么样?

=TEXTJOIN(", ",TRUE,FILTER(RowData&" "&$Country$Codes, RowData))