1

我有一个 Excel 工作簿,它逐行计算一些验证标准。我想创建一个获取失败条件的第一个值的列,或者如果验证通过,则不显示任何内容。问题是,大多数示例都依赖于要找到的数据在列中而不是在行中的想法,并且由于某种原因,我无法让 HLOOKUP 在这种情况下工作。

例如,我有作为行标题:

ID   Balance   Requests   Failed_LowBalance   Failed_MaxRequestsExceeded

和数据:

0    4.00      4          =IF(B2<10,"Failed: Low Balance","")    =IF(C2>5,"Failed: Max Requests Exceeded","")

如图所示,仅当 B 列(余额)小于 10 时,D 列才会有值,如果 C 大于 5,E 就会有值。

理想情况下,我只有第一个实例,其中单元格 D 和 E 可能有一个值,我可以通过使用讨厌的级联 IF 语句来模拟它(即 IF(D2<>"",D2,IF(E2<>"" ,E2,"")) ),但出于明显的原因,我宁愿不这样做。

我尝试像这样使用 HLOOKUP ,但它根本不能很好地工作:

=HLOOKUP("*",D2:E2,1,0)
4

2 回答 2

4

如果字符串始终以“失败”开头,您可以将此公式与通配符一起使用

=HLOOKUP("Failed*",D2:E2,1,0)

...如果“失败”不存在,您可以添加 IFERROR 函数以返回一些文本值,例如

=IFERROR(HLOOKUP("Failed*",D2:E2,1,0),"")

于 2013-10-29T16:18:49.160 回答
1

您可以选择显示数值(1、2、3、...),而不是显示明文错误消息,因为通过列标题可以明确含义。那么您的第一个错误是该=MIN(...)行中所有错误条件中的一个。

最重要的是,您可以获得错误编号列表和明文描述,它为您提供了=VLOOKUP(...)除此之外的来源=MIN(...)

于 2013-10-29T16:20:01.307 回答