如何修改动态数组Row-wise TEXTJOIN公式以添加对应国家代码
动态拼接带国家代码的提及计数公式修改方案
现有配置说明
- M3#与AB3#为内容完全一致的可变国家代码表头列表
- A4#为按行排列的可变唯一「提及项」列表
- M4#、AB4#区域公式分别统计问题「P」、「O」场景下,A4#中每个提及项对应各国的出现次数,每个提及项至少在「P」或「O」中出现一次
- 当前L列、AA列分别按行拼接「P」、「O」对应各国的提及计数,无计数时显示“-”,但现有公式为静态,提及项范围更新时需手动下拉填充
- 当前AM4#、AN4#已套用现有动态公式处理M4#、AB4#溢出范围,输出结果与手动下拉一致,但缺少国家代码前缀
需求目标
修改现有动态公式,使输出结果包含对应国家代码,完全匹配现有L、AA列的展示效果,无需手动下拉即可适配可变的提及项范围。
原有动态公式(仅输出计数)
=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 ), "" ) )
修改后公式(输出带国家代码的拼接结果,以L列「P」场景为例)
=LET( header, M3#, data, M4#, // 提前拼接国家代码与对应计数,无计数则补- combine, BYROW(data, LAMBDA(row, TEXTJOIN(",",,IF(row="", header&":-", header&":"&row)))), rSeq, SEQUENCE(ROWS(data)), L, MMULT(LEN(combine)--(combine<>""), SIGN(SEQUENCE(COLUMNS(combine))))-1, i, MMULT(--(TRANSPOSE(rSeq)<rSeq), L)+rSeq, IFERROR(MID(TEXTJOIN(",",TRUE,combine),i,L),"") )
适配AA列说明
如需生成「O」场景对应AA列的动态结果,仅需将公式中header的引用改为AB3#,data的引用改为AB4#即可。
内容的提问来源于stack exchange,提问作者dholt
相关产品推荐
相关产品推荐

