Excel数据重排需求:按出现顺序前置非零值、后置零值
Excel数据重排需求:按出现顺序前置非零值、后置零值
嘿,我手头有这么一组Excel数据:
| A | B | C | D | E | F | G | |
|---|---|---|---|---|---|---|---|
| 1 | 0 | 1 | 2 | 1 | 0 | 0 | 1 |
我想把这些数据重新排列,规则是:先按原始出现顺序把所有非零值列出来,然后再把所有零值放在后面。就像下面这个示例的效果:
| I | J | K | L | M | N | O | |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 2 | 1 | 1 | 0 | 0 | 0 |
简单说就是保留非零值的原始出现顺序,把它们全移到前面,零值按原顺序跟在后面~
如果要实现这个需求,给你几个实用的方法:
方法一:用公式组合实现
在I1单元格输入这个公式(Excel 365/2021直接回车即可,旧版本需要按Ctrl+Shift+Enter确认数组公式):=LET(x,A1:G1, nonzeros,FILTER(x,x<>0), zeros,FILTER(x,x=0), HSTACK(nonzeros, zeros))这个公式会先把原区域的非零值和零值分别筛选出来,再横向合并在一起,完美匹配需求。
方法二:手动筛选+复制粘贴
- 选中A1到G1区域,点击「数据」选项卡的「筛选」按钮
- 点击表头的筛选箭头,取消勾选「0」,只保留非零值
- 选中筛选出来的非零值,复制到I1开始的区域
- 回到原区域,切换筛选条件为只显示「0」,复制这些零值到非零值的后面就行
这样就能轻松得到想要的排列结果啦~
备注:内容来源于stack exchange,提问作者Teronimo
相关产品推荐
相关产品推荐

