Office 2016中按指定顺序提取非空单元格值至可拖动填充单列的公式咨询
Office 2016中按指定顺序提取非空单元格值至可拖动填充单列的公式咨询
嗨,我来帮你搞定这个Office 2016里的提取需求~ 因为Office 2016没有自带的FILTER函数,咱们得用几个函数组合来实现按「从上到下、从左到右」的顺序提取非空单元格,还能拖动填充柄自动获取下一个有效值。
假设你的数据范围是类似A1:C3这样的n×n区域(你可以根据实际数据修改这个范围),在你想要输出结果的第一个单元格(比如E1)里输入下面的公式:
=IFERROR(INDEX($A$1:$C$3,SMALL(IF($A$1:$C$3<>"",ROW($A$1:$C$3)-ROW($A$1)+1),ROW(A1)),SMALL(IF($A$1:$C$3<>"",COLUMN($A$1:$C$3)-COLUMN($A$1)+1),ROW(A1))),"")
⚠️ 注意:这是数组公式,输入完公式后不能直接按回车,得按住Ctrl+Shift+Enter组合键来确认输入,这样公式会自动被大括号包裹(不用手动输大括号哦)。
公式简单说明:
IF($A$1:$C$3<>"",ROW(...) - ROW($A$1)+1):先找出所有非空单元格在数据区域内的相对行号IF($A$1:$C$3<>"",COLUMN(...) - COLUMN($A$1)+1):同时找出这些非空单元格在数据区域内的相对列号SMALL(...,ROW(A1)):按顺序提取第1、2、3...个非空单元格的行/列位置,拖动填充时ROW(A1)会自动变成ROW(A2)、ROW(A3),以此类推INDEX(...):根据拿到的行和列位置,精准提取对应单元格的值IFERROR(...):当所有非空值都提取完后,后续单元格会显示空白,避免出现错误提示
使用步骤:
- 把公式里的
$A$1:$C$3替换成你实际的n×n数据范围(注意要加绝对引用符号$,避免拖动时范围乱跑) - 按
Ctrl+Shift+Enter输入公式 - 选中这个单元格,拖动填充柄往下拉,就能自动依次提取下一个非空值,顺序完全符合你要的「A1→A2→A3→B1→B2→B3...」
这样就能完美实现你想要的效果啦~
备注:内容来源于stack exchange,提问作者Seth
相关产品推荐
相关产品推荐

