请教一个Excel函数问题!!

高手帮忙看看下面的公式对吗?是什么意思?=IFERROR(INDEX($A$1:$A$12,SMALL(IF((MATCH($A$1:$A$12,$A$1:$A$12,0)=ROW($A$1:$A$12))*($B$1:$B$12="甲"),ROW($A$1:$A$12)),ROW($A1)),1),"")

已经测试,公式正确。

意思是,在目标列(比方下图的C列)依次返回B列值为“甲”的单元格所对应的A列单元格的值,若B列单元格的值不为“甲”,则返回空值。(注:IFERROR函数要在office2003以上的版本才可使用)

下图C列是公式的返回结果。

追问

高手能不能改成2003能用的,感激不尽!!!!

追答

补充:当B列未“甲”的单元格对应的A列单元格的值有重复时,只返回一个。
若在2003中使用,可以用一个错误判断来代替iferror函数,形式是if(iserror(*),"",*),如下:
=IF(ISERROR(INDEX($A$1:$A$12,SMALL(IF((MATCH($A$1:$A$12,$A$1:$A$12,0)=ROW($A$1:$A$12))*($B$1:$B$12="甲"),ROW($A$1:$A$12)),ROW($A1)))),"",INDEX($A$1:$A$12,SMALL(IF((MATCH($A$1:$A$12,$A$1:$A$12,0)=ROW($A$1:$A$12))*($B$1:$B$12="甲"),ROW($A$1:$A$12)),ROW($A1))))
以ctrl+alt+回车 结束输入。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-07-06
IF((条件,ROW($A$1:$A$19),23)

意思是如果条件成立 返回行号,否则返回一个定值本回答被网友采纳
第2个回答  2014-11-22
应该是错误的,输入以下数组公式,按Ctrl+Shift+Enter组合键,然后向下填充公式
=IFERROR(INDEX(A:A,SMALL(IF(MATCH(A$1:A$12,A$1:A$12,0)=ROW($1:$12))*($B$1:$B$12="甲"),ROW($1:$12),4^8),ROW(A1))),"")追问

不行呀,还是不显示

第3个回答  2014-11-27
原公式可简化为数组公式:
=IFERROR(INDEX(A1:A12,SMALL(IF(B1:B12="甲",ROW(B1:B12),65532),ROW())),"")

2003版的话,变为:
=IF(iserror(INDEX(A1:A12,SMALL(IF(B1:B12="甲",ROW(B1:B12),65532),ROW()))),"")
相似回答