带查找的动态数组的逐行文本连接

问题描述

这个问题与用户 this answermark fitzpatrick 密切相关。

我的工作表图片

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

我希望 L 和 AA 列包含动态公式。如何更新 AM 和 AN 列中的 Mark 公式以包含 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 ),L ),"" ) )

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

​​>

解决方法

将标题连接到范围:

=LET( m,M4#&IF(M4#<>""," "&$M$3:$T$3,""),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 ),L ),"" ) )

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

enter image description here


编辑:

要添加空间,我们需要做一些更改。我将所需的拆分器移动到它自己的变量中,以便我可以找到它的长度:

=LET( m,spl,MMULT( LEN(m)+(m<>"")*LEN(spl),SIGN( SEQUENCE( COLUMNS(m) ) ) ) - LEN(spl),L ) + ((rSeq-1)*LEN(spl)) + 1,IFERROR( MID( TEXTJOIN( spl,"" ) )

enter image description here