无法在 Excel 的 LOOKUP 函数中使用 SUBSTITUTE(ADDRESS(MATCH))) 组合作为范围

Unable to use SUBSTITUTE(ADDRESS(MATCH))) combination as a range in a LOOKUP function in Excel

我有一个 Excel sheet 包含行中 [年和周数] 行和第 1 行中 [员工姓名] 的矩阵,给出每周可用小时数的值。

我能够成功使用 Excel 公式

=LOOKUP(2,1/((A:A=2018)*(B:B=31)),D:D)

在单元格 F2 处进行反向查找。它给出的结果 15 正确。

但是,我想通过在员工已知时识别列来将上面公式中的范围D:D替换为动态范围。

所以我尝试用公式替换

SUBSTITUTE(ADDRESS(1,MATCH("Employee2",1:1,0),4),"1","") &":"&SUBSTITUTE(ADDRESS(1,MATCH("Employee2",1:1,0),4),"1","")

公式的这一部分有效,并为 Employee2 提供 D:D。这显示在单元格 F4 中有效。

但是修改后的公式在F6单元格出现#Value!的错误。

它说 "A value used in the formula is of the wrong data type." 修改后的无效公式为:

=LOOKUP(2,1/((A:A=2018)*(B:B=31)),SUBSTITUTE(ADDRESS(1,MATCH("Employee2",1:1,0),4),"1","") &":"&SUBSTITUTE(ADDRESS(1,MATCH("Employee2",1:1,0),4),"1",""))

我希望有人能帮助我指出我在尝试用 SUBSTITUTE、ADDRESS 和 MATCH 函数的组合替换 LOOKUP 公式中的范围 D:D 时出错的地方。

感谢所有提前提供帮助的人。

您不能只插入一个字符串,这是将 return 代入公式的内容。

您可以使用 INDERICT 将字符串变成可行的引用:

INDIRECT(SUBSTITUTE(ADDRESS(1,MATCH("Employee2",1:1,0),4),"1","") &":"&SUBSTITUTE(ADDRESS(1,MATCH("Employee2",1:1,0),4),"1",""))

但是 INDIRECT 和 ADDRESS 都是易变的。

改用 INDEX 到 return 正确的列:

INDEX(A:AAA,0,MATCH("Employee2",1:1,0))

所以你的公式是:

=LOOKUP(2,1/((A:A=2018)*(B:B=31)),INDEX(A:AAA,0,MATCH("Employee2",1:1,0)))