优化Google Sheet重复值公式性能,求高效精简替代方案
优化后的Google Sheet重复值公式
原公式依赖SEQUENCE生成大序列再配合XLOOKUP查找,在大数据集下因数组规模过大导致性能瓶颈,以下是更高效精简的替代方案:
- 核心优化思路:直接为每个值生成对应重复次数的数组,再合并为一维结果,避免大序列查找的性能损耗
- 优化后公式:
=TOCOL(MAP(A1:A,B1:B,LAMBDA(val,times,IF(times>0,MAKEARRAY(times,1,LAMBDA(r,c,val)),""))),1)
公式说明:
MAP(A1:A,B1:B,LAMBDA(val,times,...)):遍历A列的每个值和B列对应的重复次数MAKEARRAY(times,1,LAMBDA(r,c,val)):为当前值生成一个行数等于重复次数的单列数组,每个元素都是该值IF(times>0,...,""):过滤重复次数为0或空的情况,避免生成无效空数组TOCOL(...,1):将所有生成的二维数组合并为一维数组,并忽略空值
性能优势:
- 无需生成超大的
SEQUENCE数组,减少内存占用 - 避免
XLOOKUP的查找运算,直接生成目标结果,运算效率显著提升,尤其适合重复次数总和较大的数据集
内容的提问来源于stack exchange,提问作者vector
相关产品推荐
相关产品推荐

