返回以某个字符串开头的行中的第一个值

时间:2013-10-29 16:09:37

标签: excel

我有一个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&lt;&gt;“”,D2,IF(E2&lt))来模拟它;&gt;“”,E2,“”))),但我不是出于显而易见的原因。

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

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

2 个答案:

答案 0 :(得分:4)

如果字符串始终以“失败”

开头,则可以将此公式与通配符一起使用

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

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

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

答案 1 :(得分:0)

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

除此之外,您还可以获得错误编号列表和明文说明,除了=VLOOKUP(...)

之外,还会为您提供=MIN(...)的来源