使用MAKEARRAY与REDUCE扩展列时的索引访问异常问题
解决Excel中根据对应重复次数扩展文本列的问题
你的核心问题是在REDUCE迭代过程中无法关联到letters元素对应的instances值,导致MAKEARRAY的行数参数错误引用了整个区域而非对应位置的数值。
修正后的公式
=LET( instances, B2:B4, letters, A2:A4, rowCount, ROWS(letters), DROP(REDUCE("", SEQUENCE(rowCount), LAMBDA(acc, idx, VSTACK(acc, MAKEARRAY(INDEX(instances, idx), 1, LAMBDA(r,c, INDEX(letters, idx)))) )), 1) )
关键调整说明
- 用
SEQUENCE(rowCount)生成索引序列替代直接遍历letters,这样可以通过INDEX(instances, idx)精准获取当前元素对应的重复次数 - 把MAKEARRAY的行数参数从错误的
1+instances(引用整个区域)改为INDEX(instances, idx),确保每个文本的重复行数匹配对应单元格的数值 - 初始空值通过
DROP(...,1)移除,得到最终的扩展列
另一种简化写法(BYROW+VSTACK)
如果不需要严格使用REDUCE,也可以用BYROW直接生成每个重复数组再合并,逻辑更直观:
=LET( instances, B2:B4, letters, A2:A4, VSTACK(BYROW(HSTACK(letters, instances), LAMBDA(x, MAKEARRAY(INDEX(x,2),1,LAMBDA(r,c,INDEX(x,1)))))) )
内容的提问来源于stack exchange,提问作者JimminyJim
相关产品推荐
相关产品推荐

