在Excel工作簿中查找唯一string的位置?
就像标题所说,我试图在Excel工作簿的任何地方find唯一string的位置。 这是保证是唯一的,但可以出现在我的表的任何行或列。
举个例子:
我想单元格B7返回B3(5的位置)。 如果我知道它将出现的列或行,那么这是一个简单的查找,匹配或索引问题。 我很难find一个值可以放在表单中的任何位置的例子。
这应该工作:
=ADDRESS(SUMPRODUCT((A1:C4=B6)*ROW(A1:C4)),SUMPRODUCT((A1:C4=B6)*COLUMN(A1:C4)))
要返回相对引用B3
,请在ADDRESS
公式的末尾添加,4
=ADDRESS(SUMPRODUCT((A1:C4=B6)*ROW(A1:C4)),SUMPRODUCT((A1:C4=B6)*COLUMN(A1:C4)),4)
说明
SUMPRODUCT
是一个数组公式。 它接受多个数组,将它们相乘,然后求和得到的数组。 在这种情况下,只有一个数组,所以它只是将该数组中的值相加而不用做其他任何事情。
让我们分解这个数组: (A1:C4=B6)*ROW(A1:C4)
(A1:C4=B6)
看起来像这样:
FALSE FALSE FALSE FALSE FALSE FALSE FALSE TRUE FALSE FALSE FALSE FALSE
和行ROW(A1:C4)
看起来像这样:
1 1 1 2 2 2 3 3 3 4 4 4
当你将两个数组相乘时,你会得到这个:
FALSE*1 FALSE*1 FALSE*1 FALSE*2 FALSE*2 FALSE*2 FALSE*3 TRUE*3 FALSE*3 FALSE*4 FALSE*4 FALSE*4
Excel会将FALSE
视为0
, TRUE
视为1
以便数组计算为:
0 0 0 0 0 0 0 3 0 0 0 0
在SUMPRODUCT
公式中包装该数组会将数组中的值相加并返回3
,即可以find5
的行。