我需要一种方法来返回在给定的2D单元格范围内具有指定值的单元格的行或列。
换句话说,我会对一对函数ROW(值,范围)和COLUMN(值,范围)感兴趣。
这似乎是一个足够简单的请求,但所有查找类型的函数似乎都是基于数组的。
答案 0 :(得分:2)
假设我们有以下数据:
我们希望找到 100 。
在 A7 中输入100.在 B8 中输入数组公式:
=MIN(IF($B$2:$F$5=A7,COLUMN($B$2:$F$5)-COLUMN($B$2)+1))
在 B9 中输入数组公式:
=MIN(IF($B$2:$F$5=A7,ROW($B$2:$F$5)-ROW($B$2)+1))
这些行和列相对于表格开始(B2):
要获得与工作表开头相关的行/列,只需在公式中使用 $ A $ 1 代替 $ B $ 2 。
必须使用 Ctrl + Shift + 输入输入数组公式,而不仅仅是 Enter key。
答案 1 :(得分:2)
这是一种非CSE方法。
考虑到数据中可能存在重复。第一次搜索是最低行:
=IFERROR(AGGREGATE(15,6,(ROW($B$2:$F$5)-ROW($B$2)+1)/($B$2:$F$5=$A$7),1),"No Match")
下一个找到该行中的最低列。因此,如果存在重复项,则返回找到该值的最低行中的最低列。
=IFERROR(AGGREGATE(15,6,(COLUMN(INDEX($B$2:$F$5,AGGREGATE(15,6,(ROW($B$2:$F$5)-ROW($B$2)+1)/($B$2:$F$5=$A$7),1),0))-COLUMN($B$2)+1)/(INDEX($B$2:$F$5,AGGREGATE(15,6,(ROW($B$2:$F$5)-ROW($B$2)+1)/($B$2:$F$5=$A$7),1),0)=$A$7),1),"No Match")
它有一个错误处理程序,如果找不到该值,它将返回“No Match”
根据你上面的评论,我认为你宁愿有这个公式。
=INDEX(A:F,MATCH(A7,A:A,0),MATCH(A8,1:1,0))