从范围内查找值,并返回单元格引用地址

问题描述 投票:0回答:4

在 Google 表格中工作并想要查找一个值(在单元格 U355 中)并在范围 (F3:R650) 中搜索它 该值位于单元格 L412 中,我希望 L412 成为结果。 玩过 INDEX/MATCH、LOOKUP、FIND、CELL 等,但似乎无法获得正确的组合,因为他们不喜欢二维范围。

我可以使用 COUNTIF 来确认该值存在,但想知道它到底在哪里。 如果有任何区别,该值将位于 F、I、L、O、R 列中

非常感谢

google-sheets google-sheets-formula lookup
4个回答
1
投票

CELL
函数可以以字符串形式返回单元格引用的地址。

如果单元格

LAMBDA(x,IF(x=U4,CELL("address",x),))
的值等于 U4,则函数
x
将生成单元格的地址,否则为空字符串。

我们可以使用

MAP
将此功能应用于我们想要搜索的整个范围,然后
FLATTEN
将结果放入单个列中,并使用
SORTN
选择第一个匹配项。

=SORTN(FLATTEN(
 MAP(F:R,LAMBDA(x,IF(x=U4,CELL("address",x),)))
))

我们可以使用

REDUCE
代替
MAP
/
FLATTEN
/
SORTN
,例如:

=REDUCE(,F:R,LAMBDA(t,x,IF(x=U4,CELL("address",x),t)))

根据所需的结果是第一场比赛、最后一场比赛还是所有比赛,需要进行一些调整。


0
投票

试试这个

=iferror(arrayformula(split(query(flatten(column(F3:R325)*(F3:R325=U4)&"-"&row(F3:R325)*(F3:R325=U4)),"select * where Col1<>'0-0'"),"-")),)

结果将是

15 | 55
,这意味着已在第 15 列 (O) 第 55 行检索到值 enter image description here


0
投票

尝试:

=ARRAYFORMULA(VLOOKUP(U4:U5, {FLATTEN(F3:R), 
 VLOOKUP(1*FLATTEN(COLUMN(F3:R)&IFERROR(ROW(F3:R)/0)), 
 {SEQUENCE(26), CHAR(ROW(65:90))}, 2, 0)&
 FLATTEN(ROW(F3:R)&IFERROR(COLUMN(F3:R)/0))}, 2, 0))

enter image description here


0
投票

使用 ADDRESS 作为策略:

=ADDRESS(SUMPRODUCT(ROW(range)*(range=value)),SUMPRODUCT(COLUMN(range)*(range=value)))

你的公式将变成:

=ADDRESS(SUMPRODUCT(ROW($F$3:$R$325)*($F$3:$R$325=U4)),SUMPRODUCT(COLUMN($F$3:$R$325)*($F$3:$R$325=U4)))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.