获取具有给定2D范围内的给定值的单元格的行或列

时间:2017-06-11 13:55:49

标签: excel excel-formula

我需要一种方法来返回在给定的2D单元格范围内具有指定值的单元格的行或列。

换句话说,我会对一对函数ROW(值,范围)和COLUMN(值,范围)感兴趣。

这似乎是一个足够简单的请求,但所有查找类型的函数似乎都是基于数组的。

2 个答案:

答案 0 :(得分:2)

假设我们有以下数据:

enter image description here

我们希望找到 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)

enter image description here

要获得与工作表开头相关的行/列,只需在公式中使用 $ 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”

enter image description here

根据你上面的评论,我认为你宁愿有这个公式。

=INDEX(A:F,MATCH(A7,A:A,0),MATCH(A8,1:1,0))

enter image description here