Google Sheets数组反转问题:如何实现忽略空白单元格的逆序排列
Google Sheets 实现数组反转并忽略空白单元格
解决方案公式
直接使用以下公式即可实现过滤空白单元格后反转原数组顺序:
=INDEX(FILTER($B$12:$B$19, $B$12:$B$19<>""), SEQUENCE(COUNTA($B$12:$B$19), 1, COUNTA($B$12:$B$19), -1))
公式拆解
FILTER($B$12:$B$19, $B$12:$B$19<>""):先筛选出目标区域内的所有非空单元格,生成无空白的临时数组。COUNTA($B$12:$B$19):统计目标区域内非空单元格的总数,作为反转索引的起始值。SEQUENCE(..., ..., COUNTA(...), -1):生成一个从非空总数开始、步长为-1的序列,用来反向索引筛选后的临时数组,实现反转效果。INDEX(...):根据反向索引序列,提取最终的反转结果。
替代写法
如果需要更简洁的表达,也可以用SORT函数结合行号标记实现:
=SORT(FILTER($B$12:$B$19, $B$12:$B$19<>""), ROW($B$12:$B$19)*($B$12:$B$19<>""), FALSE)
这里通过ROW(...) * (...)给非空单元格标记原行号,再按行号降序排序,达到反转原非空序列的目的。
原公式问题说明
你之前使用的=INDEX($B$12:$B$19,rows(B12:$B$19))仅能基于原区域的行索引反转,没有过滤空白单元格的逻辑,因此会把空白值也包含在反转结果中。
内容的提问来源于stack exchange,提问作者L4ras
相关产品推荐
相关产品推荐

