Vlookup with Hlookup 错误的单元格值 (Excel)

Vlookup with Hlookup wrong cell value (Excel)

我正在尝试结合使用 VLOOKUP 和 HLOOKUP 从 table 中提取值,但它总是给我错误的单元格 - 将单元格值偏移一个 -

等式是

=VLOOKUP(G22,A5:Z18,HLOOKUP(H22,B3:Z4,1,FALSE),FALSE)

红色记录的单元格。是正确的答案,但它总是 return 绿色圆圈中的值 我的代码有什么问题?

INDEX/MATCH 通过 VLOOKUP 或 HLOOKUP

  • 根据经验,只有当您有更多行并且您想要 return 来自除第一行以外的任何值时,才使用 HLOOKUP 才有意义。类似地,只有当您有更多列并且您想要 return 来自除第一列之外的任何值时,使用 VLOOKUP 才有意义。

  • 通过将 INDEXMATCH 结合使用,可以更灵活地处理查找。

    =INDEX(A3:Z18,MATCH(G22,A3:A18,0),MATCH(H22,A3:Z3,0))
    
  • 如果有人在G22中输入3,就会显示错误。一种简单的错误处理方法是使用 IFERROR 函数。

    =IFERROR(INDEX(A3:Z18,MATCH(G22,A3:A18,0),MATCH(H22,A3:Z3,0)),"")
    
  • 仔细研究图像。在查找 完全匹配 时,我从不使用 VLOOKUPHLOOKUP,因为 INDEXMATCH 涵盖了所有内容。这并不意味着您应该放弃使用它们,因为它们是熟悉索引、偏移量等的好工具。

如果您有 Excel 365,则可以按照 This reference 的示例 5 中所述使用 Xlookup。请注意,Xlookup 可以 return 二维数组中的整列:

=XLOOKUP(G22,A5:A18,XLOOKUP(H22,B3:K3,B5:K18))

或者如果数据实际上是 table,其中 Phi 是第一列,mm 是 headers,这将是:

=XLOOKUP(G22,Table1[φ],XLOOKUP(H22,Table1[#Headers],Table1))

注意 如果 mm 在 headers 中,它们被格式化为文本,因此必须格式化 H22 以反映这一点或使用

=XLOOKUP(G22,A5:A18,XLOOKUP(TEXT(H22,"general"),B3:K3,B5:K18))

=XLOOKUP(G22,Table1[φ],XLOOKUP(TEXT(H22,"general"),Table1[#Headers],Table1))