获取 XLOOKUP 结果的单元格地址会产生“ARGUMENT MUST BE A RANGE”错误

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

当 xlookup 被限制为要搜索的单行时,该函数可以完美运行...但是当我搜索多行以查找匹配项时,突然收到一条错误消息,指出参数必须是一个范围。

我试过了

=cell("地址",xlookup($C$4,七月!$A$2:$N$2,七月!$B4:$O4,"错误",0,1))

而且效果很好。我当前工作表上 C4 的日期可在 7 月的 A2、C2、E2、G2、I2、K2 或 M2 中找到,我想要的结果将在 7 月的 B4、D4、F4、H4、J4、L4 或N4

一旦我引入多行进行搜索(又名日历布局上的不同星期),就会收到错误。

=cell("地址",xlookup($C$4,{七月!$A$2:$N$2,七月!$A$11:$N$11,七月!$A$20:$N$20,七月!$A$29 :$N$29,七月!$A$38:$N$38,七月!$A$47:$N$47},{七月!$B4:$O4,七月!$B13:$O13,七月!$B22:$O22 ,七月!$B31:$O31,七月!$B40:$O40,七月!$B49:$O49},"错误",0,1))

我认为这是因为我引入了数组。我的结果仍然只有一个细胞。有什么解决办法吗?我怎样才能得到我的结果的地址。

非常感谢!!

arrays excel-formula cell xlookup
1个回答
0
投票

我不确定最终目标,但你可以尝试这个(Excel 365):

  • 获取范围的地址
  • 使用
    CHOOSEROWS
    选择不相邻的行(范围从第一行开始,
    $A$1
    $B$1
    ,以使用行号)
  • 将两者都转换为列以与
    XLOOKUP
  • 一起使用
=LET(
    a_rows, CHOOSEROWS(
        July!$A1:$N47,
        2,
        11,
        20,
        29,
        38,
        47
    ),
    b_range, $B$1:$O$49,
    b_addr, CHOOSEROWS(
        ADDRESS(ROW(b_range), COLUMN(b_range)),
        4,
        13,
        22,
        31,
        40,
        49
    ),
    XLOOKUP($C$4, TOCOL(a_rows), TOCOL(b_addr), "ERROR")
)
© www.soinside.com 2019 - 2024. All rights reserved.