返回以某个string开头的行中的第一个值

我有一个Excel工作簿,逐行计算一些validation标准。 我想创build一个列,获取失败标准的第一个值,或者如果validation通过,则不显示任何内容。 麻烦的是,大多数例子都依赖于要find的数据在列中,而不是在一行中的想法,由于某种原因,我不能让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(余额)小于十,则列D将只有一个值,如果C大于五,则E将有一个值。

理想情况下,我将只有细胞D和E可能有价值的第一个实例,我可以通过使用一个讨厌的级联IF语句(即IF(D2 <>“”,D2,IF(E2 <>“” ,E2,“”))),但我宁愿不明显的原因。

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

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

如果string始终以“Failed”开头,则可以使用此公式和通配符

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

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

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

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

最重要的是,你可以有一个错误号和清晰的文本描述,它提供了一个=VLOOKUP(...)除了=MIN(...)