如何在EXCEL里查询数组中某一特定值的单元格位置?

如图所示

用同样的公式或函数查询A列中值等于1的单元格位置,并分别在B列显示出来
即B列显示的是A1,A5,A8,A10,
求各位帮忙

举例说明。

有一表格如下图。

要求在G2设置公式,使得根据F2的数值查找B1:D3范围内该数值对应的单元格地址。

G2的公式:=ADDRESS(LOOKUP(0,0/COUNTIF(OFFSET($B$2:$D$4,ROW($B$2:$D$4)-ROW($B$2),,1),F2),ROW($B$2:$D$4)),LOOKUP(0,0/COUNTIF(OFFSET($B$2:$D$4,,COLUMN($B$2:$D$4)-COLUMN($B$2),,1),F2),COLUMN($B$2:$D$4)),4)

F2输入5后,结果如图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-11-28

用数组和判断很容易实现=ADDRESS(((A1:A6=1)*ROW(A1:A6)),1,4)

如果不想出现错误行=ADDRESS(FILTER(((A1:A6=1)*ROW(A1:A6)),((A1:A6=1)*ROW(A1:A6))>0),1,4)

第2个回答  2013-11-19
="A"&SMALL(IF($A$1:$A$999=1,ROW($1:$999)),ROW(A1))&""
按三键CTRL+SHIFT+ENTER结束公式输入
下拉填充
第3个回答  2013-11-19
=SMALL(IF($A$1:$A$100=1,ROW($A$1:$A$100),9999),ROW(A1))&""
同时按CTRL SHIFT 回车键,再下拉
第4个回答  推荐于2016-01-09
=if(small(if(a:a=1,row(a:a),4^8),row(a1))=65536,"",small(if(a:a=1,row(a:a),4^8),row(a1)))
shift ctrl enter结束,数组函数追问

能帮我解释下这个函数是怎么用的么

追答

small(if(a:a=1,row(a:a),4^8),row(a1))

if(a:a=1,row(a:a),4^8) 是将单元格内容为1的行取对应的行号,如果不是的话取4^8
这样获得一组数
small函数是在一组数中取第几个最小数,
判断small的值是不是65536(就是4^8),是的话就是没有单元格值为1的行号了,
所以整个函数下拉到空格出现就是获得的单元格值为1的行号

本回答被提问者采纳
相似回答