excel 如何使用带有异常的VLOOKUP?

olhwl3o2  于 2023-01-21  发布在  其他
关注(0)|答案(1)|浏览(170)

我使用VLOOKUP功能来指定负责某个国家的办公室。这样,中国办公室负责中国,德国办公室负责德国,等等。

有些情况下,根据许可证,应分配给其他办事处,而不是遵循VLOOKUP功能。
例如:

  • 许可证6虽然在中国,但应分配给德国办事处
  • 许可证10虽然在中国,但应分配给印度办事处

有很多异常。我如何将这些异常构建到VLOOKUP函数中?

bbuxkriu

bbuxkriu1#

可以在单元格D2中使用以下内容:

=IF(A2:A100="","",IFERROR(XLOOKUP(B2:B100,TB_Exceptions[License],
TB_Exceptions[Office]), IFERROR(XLOOKUP(C2:C100,
TB_CountryOffice[Country],TB_CountryOffice[Office]), 
"CASE NOT FOUND")))

或者使用LET函数方便公式的维护:

=LET(nameRng, A2:A100, licRng,B2:B100, countryRng, C2:C100,
 IF(nameRng="","",IFERROR(XLOOKUP(licRng,TB_Exceptions[License],
 TB_Exceptions[Office]),IFERROR(XLOOKUP(countryRng,
 TB_CountryOffice[Country],TB_CountryOffice[Office]), 
 "CASE NOT FOUND")))
)

解释

我们使用嵌套的XLOOKUP,首先从最严格的搜索开始,即例外,如果是#N/A,则查找常规的国家/地区查找表。我们认为CASE NOT FOUND是在某些查找值未定义的情况下的最后手段。
我们正在使用 *Excel表格 * 在查找表格中包含动态范围。对于初始数据集,我们不使用它,因为 *Excel表格 * 不支持溢出的数组公式,即它返回#SPILL!错误。
我们定义了大于实际输入数据集的数据输入范围,以防我们想要包含额外的数据。我们添加了初始条件:IF(A2:A100="","",..)来处理输入表的空行。

相关问题