无法在 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)))
我有一个 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)))