如何用Excel函数实现数组中每个值的重复输出?
实现数组元素重复两次的函数方案
方案1:Excel 365/2021 动态数组(推荐)
使用TOCOL+INDEX组合,无需手动扩展,直接生成目标数组:
=TOCOL(INDEX({1,6,14,15},,SEQUENCE(2)),2)
- 原理:
SEQUENCE(2)生成{1,2},让INDEX对原数组的每个元素重复提取2次,形成二维数组;TOCOL将二维数组转为一维,得到{1,1,6,6,14,14,15,15}。
方案2:兼容旧版Excel(数组公式)
如果使用不支持动态数组的Excel版本,输入以下公式后按Ctrl+Shift+Enter确认:
=INDEX({1,6,14,15},INT((ROW(A1:A8)-1)/2)+1)
- 原理:
ROW(A1:A8)生成1-8的序列,通过INT((ROW()-1)/2)生成每组重复的索引位置(0,0,1,1,2,2,3,3),加1后对应原数组的元素索引,实现每个元素重复两次。
为什么之前的方法不行?
CONCAT会将数组元素直接拼接成文本字符串,无法保留数组结构,所以得到161415161415;- 手动用
VSTACK需要逐个写重复元素(如VSTACK(1,1,6,6...)),确实繁琐且不易维护。
内容的提问来源于stack exchange,提问作者LEG
相关产品推荐
相关产品推荐

