Excel 嵌套If显示#值

Excel 嵌套If显示#值,excel,excel-formula,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) )))))) =IF(F3=“”,”

我有以下公式。它首先在两个条件下工作

=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)
  ))))))
=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)
))))))
但如果满足以下条件,则显示#值

IF(F3“RUB”、IF(FIND(“:59F”,J3)、MID(J3,FIND(“:59F”,J3)+6,14)

有什么建议可以让它工作吗?我试图与OR和IFERRO结合,但没有结果。

在你的逻辑中仍有一些“漏洞”没有被你的公式或叙述所覆盖。这些将返回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))))))
=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‘‘‘‘‘‘‘‘‘)

您的逻辑中仍有一些“漏洞”未被公式或叙述所覆盖。这些漏洞将返回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))))))
=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‘‘‘‘‘‘‘‘‘)

我认为这有问题:

IF(F3<>"RUB",IF(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”

IF(F3<>"RUB",IF(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”

你可能想在这里标记一种编程语言…即使它是excel。谢谢,亨克·霍特曼)你能添加一个复制这个问题的最小样本表吗?你可能想在这里标记一种编程语言…即使它是excel。谢谢,Henk Holterman)你能添加一个复制这个问题的最小样本表吗?关于多余的“if(F3“RUB”…)”非常有趣,谢谢!关于多余的“if(F3“RUB”…)非常有趣。”谢谢
IF(F3<>"RUB",IFERROR(MID(J3,FIND(":59F",J3)+6,14)