EXCEL 返回数组中第N个非零值

EXCEL中如何返回数组中第N个非零值

第1个回答  2010-07-09
设数据在A1:A20

在B1输入公式
=INDEX(A1:A20,SMALL(IF(A1:A20<>0,ROW(A1:A20),65536),6))
按Ctrl+shift+enter结束,这是数组公式

最后一个6就是第六个,可以自己更改,记得按三个键结束输入
第2个回答  2010-07-09
{=INDEX(数组A列,SMALL(IF(COUNTIF(OFFSET(数组A列第一个单元格,,,ROW($1:$数组A列的行数),1),"<>"&0)=N,ROW($1:$数组A列的行数),4^8),1),)}
1.默认N是小于等于数组A列非零行数
2.数组函数,要按下CTRL +SHIFT+ENTER
第3个回答  2010-07-09
假设你的数组在A1-A100
B1输入公式 =IF(C1>MAX(IF(A1:A100<>0,ROW(A1:A100),"")),"数值过大",IF(C1="","",INDEX(A1:A100,SMALL(IF(A1:A100<>0,ROW(A1:A100),""),C1),1)))
CTRL SHIFT 回车结束,

C1输入数值显示 相应的非零值
如果C1值超过A1-A100中的非零单元格格式 返回 数值过大本回答被提问者采纳
相似回答