Google Sheets双数组变量公式单组合行结果不符问题
双数组双变量查询公式异常修复
这是此前Stack Overflow帖子《Query using two variable in two array》的跟进测试反馈:
- 测试场景:原始数据为Col1至Col5的5行记录,Col1组合表仅一行(包含值A、B)
- 原使用公式:
=let(Σ,filter(A13:B,A13:A<>""),Λ,A4:E8, reduce(tocol(,1),sequence(rows(Σ)),lambda(a,c,vstack(a,filter(Λ,xmatch(choosecols(Λ,1),index(Σ,c))),wraprows(rept("*",5),columns(Λ),rept("*",5)))))) - 异常表现:预期结果应包含A、B对应行及全
*****分隔行,但实际仅显示A行和分隔行 - 问题原因:原公式中
INDEX(Σ,c)仅返回该行的第一个值(即A),导致XMATCH只能匹配到A对应的行,无法识别同一行中的B值 - 修正后的公式:
=LET( Σ, FILTER(A13:B, A13:A<>""), Λ, A4:E8, REDUCE(TOCOL(,1), SEQUENCE(ROWS(Σ)), LAMBDA(a,c, VSTACK( a, FILTER(Λ, ISNUMBER(XMATCH(CHOOSECOLS(Λ,1), INDEX(Σ,c,0)))), WRAPROWS(REPT("*", COLUMNS(Λ)), COLUMNS(Λ)) ) )) - 修正说明:将
INDEX(Σ,c)改为INDEX(Σ,c,0),会将该行的所有值作为数组传入XMATCH,同时用ISNUMBER判断是否存在匹配,确保同一行内的所有值都能被匹配到,最终返回A、B对应的行及分隔行。
内容的提问来源于stack exchange,提问作者game01 gamer
相关产品推荐
相关产品推荐

