嵌套如果显示#VALUE

时间:2018-02-12 11:37:54

标签: excel excel-formula

我有以下公式。它的工作有两个第一个条件。

=IF(F3="","",IF(F3="RUB",IF(FIND("2600",J3),MID(J3,FIND("2600",J3),14)),
 IF(F3<>"RUB",IF(FIND(":59:",J3),MID(J3,FIND(":59:",J3)+5,14),
 IF(F3<>"RUB",IF(FIND(":59F",J3),MID(J3,FIND(":59F",J3)+6,14)
  ))))))

但如果符合以下条件,则会显示#VALUE!

IF(F3<>"RUB",IF(FIND(":59F",J3),MID(J3,FIND(":59F",J3)+6,14)

有什么建议如何使它工作?我试图与OR和IFERROR结合,但没有给出任何结果。

2 个答案:

答案 0 :(得分:1)

还有一些“漏洞”。在你的逻辑中,你的公式或叙述都没有涵盖。这些将返回FALSE。但是,这更接近您要完成的任务。

=IF(F3="", "", IF(F3="RUB", IF(ISNUMBER(FIND("2600", J3)), MID(J3, FIND("2600", J3), 14)),
               IF(F3<>"RUB", IF(ISNUMBER(FIND(":59:", J3)), MID(J3, FIND(":59:", J3)+5, 14),
                             IF(ISNUMBER(FIND(":59F", J3)), MID(J3, FIND(":59F", J3)+6, 14))))))

答案 1 :(得分:1)

我假设这个问题:

IF(F3<>"RUB",IF(FIND(":59F",J3),MID(J3,FIND(":59F",J3)+6,14)

是否在单元格:59F中找不到搜索文本J3。如果你改为:

IF(F3<>"RUB",IF(ISNUMBER(FIND(":59F",J3)),MID(J3,FIND(":59F",J3)+6,14)

它应该解决问题。

编辑 更短的解决方案

IF(F3<>"RUB",IFERROR(MID(J3,FIND(":59F",J3)+6,14)

在旁注中,您的IF(F3<>"RUB",...)是多余的,因为您已经有一个先前的条件IF(F3="RUB",...),所以如果F3<>"RUB"没有超过第一个FileShare.Read 条件。