如果单元格包含许多选项中的一个,则查找结果

分享于 

2分钟阅读

电脑

  繁體

问题:

我有一个错误消息列表,我想将它们合并到"用户友好"消息中:


 error | friendly_error



failed with error1 | =VLOOKUP(A1, error_table, 1, false)


failed with error2 |


something else error3 |


error 4 failed with error5 |


failed with error1 |



一个包含友好值的表,其中包含一些关键字


contains | friendly_error


error1 | Message for error1


error2 | Message for error 2


etc...



是否有可以执行这里操作的命令? 还是我需要一组有组织的if/else 评论?

Vlookup会以较大的值查找较小值,但我希望查找较大的值以查看它是否包含较小的值。

现在我正在做这个,但是随着我增加了更多的可能值,它也会增长:


=IF(ISNUMBER(SEARCH(G3,A1)),


 H3,


 IF(ISNUMBER(SEARCH(G4,A1)),


 H4, 


 IF (ISNUMBER(SEARCH(G5,A1)),


 H5,


 A1


 )


 )


)




回答 1:

假设错误类型是实际的Excel错误类型,则可以使用 Error.Type():


=VLOOKUP(ERROR.TYPE(A2),$E$1:$F$9,2,FALSE)



其中 A2 是返回错误 #N/A#REF 等的公式。!

enter image description here

编辑:或者,如果我完全误解,只需将你的VLOOKUP() 替换为:


=VLOOKUP(SUBSTITUTE(A1,"failed with",""), error_table, 1, false)



假设 A1 在其中有 failed with error1


回答 2:

可以使用这种方法来迭代错误和测试,如果它是。 然后将行号返回到索引,该索引返回正确的友好错误。


=IFERROR(INDEX(H:H,AGGREGATE(15,6,ROW($G$1:$G$3)/(ISNUMBER(SEARCH($G$1:$G$3,A2))),1)),"")



enter image description here



相关文章