Google Sheets如何在提取的唯一值之间添加空行?
解决方案
方法一:数组公式自动生成带空行的唯一值列表
在A10单元格输入以下公式,下拉填充即可自动生成每个唯一值后跟空行的结果:
=ARRAYFORMULA(IF(MOD(ROW(A:A)-ROW(A9),2)=1, INDEX(UNIQUE(FILTER(B:B, B:B<>"", B:B<>"Header")), (ROW(A:A)-ROW(A9)+1)/2), ""))
原理说明:
UNIQUE(FILTER(B:B, B:B<>"", B:B<>"Header"))先提取B列中不为空且不是"Header"的所有唯一值,得到干净的目标列表。ROW(A:A)-ROW(A9)计算当前行与A9的偏移量(A10偏移1,A11偏移2,以此类推)。- 通过
MOD(偏移量,2)=1判断当前行是否为奇数偏移(对应要显示唯一值的行):若是则用INDEX取对应位置的唯一值;偶数偏移行返回空值,实现间隔空行的效果。
方法二:用FLATTEN快速生成带空行的数组
如果希望一次性生成所有结果(包含末尾空行),可在A10输入:
=FLATTEN(HSTACK(UNIQUE(FILTER(B:B, B:B<>"", B:B<>"Header")), ""))
原理说明:
HSTACK(唯一值列表, "")将每个唯一值与一个空值横向配对,形成类似[["Madrid", ""], ["Barcelona", ""]]的二维数组。FLATTEN将二维数组展平为一维,直接得到"Madrid"、空、"Barcelona"、空的序列。
为什么你之前的公式只返回第一个值?
你隔行使用的INDEX(...,1,1)固定了取唯一值列表的第1个元素,所以每次都得到相同结果。要实现动态取第n个值,需要让INDEX的行号参数随当前行变化,方法一的公式已自动处理了这个逻辑,无需手动修改行号。
内容的提问来源于stack exchange,提问作者LAmaral
相关产品推荐
相关产品推荐

