EXCEL函数去除数组中的0值和空值

发布网友 发布时间:2022-04-25 05:59

我来回答

3个回答

热心网友 时间:2023-11-01 04:55

=INDEX({5,3,5,0,1,8,0,2},N(IF(1,SMALL(IF({5,3,5,0,1,8,0,2}<>0,TRANSPOSE(ROW(INDIRECT("1:"&COLUMNS({5,3,5,0,1,8,0,2})))),""),ROW(INDIRECT("1:"&SUM(--({5,3,5,0,1,8,0,2}<>0)))))))),按CTRL+SHIFT+ENTER结束。

公式中假设你的原始数组中的个数是未知的,所以公式麻烦了一点。追问你的公式按CTRL+SHIFT+ENTER后提示错误

追答

那是你的EXCEL是2003的,如果是EXCEL是2007以上的不会出错,公式已经超过7层了。



公式改了一下,这个2003的可以用。=INDEX({5,3,5,0,1,8,0,2},N(IF(1,SMALL(IF({5,3,5,0,1,8,0,2},COLUMN(INDIRECT("R1C1:R1c"&COUNT({5,3,5,0,1,8,0,2}),)),""),COLUMN(INDIRECT("R1C1:R1c"&COUNT(0/{5,3,5,0,1,8,0,2}),)))))),按CTRL+SHIFT+ENTER结束。

热心网友 时间:2023-11-01 04:55

追问其实这个问题的原型是获取最早和最晚的打卡时间!
如果直接用MIN()和MAX()函数,因为复制进来的单元格格式问题,结果会出现错误(即使没有错,有的单元格必须要双击后运算结果才正确。单元格格式修改后即使按F9刷新依然没用)
因为打卡记录很多,我不可能一个一个的去弄,所以你这个办法不现实!

热心网友 时间:2023-11-01 04:56

不懂你整个公式的目的,所以不好回答,你试一下这样

=SUM(IF(--({5,3,5,0,1,8,0,2}<>0),{5,3,5,0,1,8,0,2}))

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com