So schreiben Sie mehrere iferror-Anweisungen mit und -Anweisungen

So schreiben Sie mehrere iferror-Anweisungen mit und -Anweisungen

Ich versuche, jede Formel mit einer IFERROR-Anweisung für meine verschachtelte Formel unten zu umschließen. Ich habe andere Quellen überprüft und festgestellt, dass dies mit einem Komma zwischen den beiden möglich ist. Ich glaube, was mich verwirrt, ist, dass ich zwischen & " "jeder if-Anweisung ein Komma habe (das ich beibehalten muss).

Unten finden Sie meine ursprüngliche Formel und meine neueste Formel mit dem, was ich ausprobiert habe. Die Formel funktioniert nicht. Ich bin mir nicht sicher, wie ich das richtig mache. Was mache ich falsch?

Ursprüngliche Formel

=TRIM(
IFERROR(
IF(AND($T9-TODAY()>=Key!$N$14,$T9-TODAY()<=Key!$M$14,$AA9<>"Complete",$G9<>"New Phase"),Key!$L$11,"")
& " "
& IF(AND($U9-TODAY()>=Key!$N$15,$U9-TODAY()<=Key!$M$15,$AB9<>"Complete",$G9<>"New Phase"),Key!$L$10,"")
& " "
& IF(AND($M9-TODAY()>=Key!$N$9,$M9-TODAY()<=Key!$M$9,$Z9<>"Complete"),Key!$L$9,"")
& " "
& IF(AND($AH9-TODAY()>=Key!$N$16,$AH9-TODAY()<=Key!$M$16,$AE9<>"Complete"),Key!$L$16,"")
,"error"))

Neue Formel

=TRIM(
IFERROR(
IF(AND($T9-TODAY()>=Key!$N$14,$T9-TODAY()<=Key!$M$14,$AA9<>"Complete",$G9<>"New Phase"),Key!$L$11,"")
,"Error MUC Video")),
& " "
IFERROR(
& IF(AND($U9-TODAY()>=Key!$N$15,$U9-TODAY()<=Key!$M$15,$AB9<>"Complete",$G9<>"New Phase"),Key!$L$10,"")
,"Error SMR Video"))
& " "
& IF(AND($M9-TODAY()>=Key!$N$9,$M9-TODAY()<=Key!$M$9,$Z9<>"Complete"),Key!$L$9,"")
& " "
& IF(AND($AH9-TODAY()>=Key!$N$16,$AH9-TODAY()<=Key!$M$16,$AE9<>"Complete"),Key!$L$16,"")

Antwort1

Sie haben eine große, unübersichtliche Formel, die so formatiert ist, dass sie lesbarer ist. Ich werde damit beginnen, sie viel kürzer zu machen, damit sie leichter zu verstehen ist. Lassen Sie uns zunächst alle großen UND-Anweisungen entfernen:

=TRIM(
IFERROR(
IF(AND(a1,a2,a3,a4),a99,"")
& " "
& IF(AND(b1,b2,b3,b4),b99,"")
& " "
& IF(AND(c1,c2,c3),c99,"")
& " "
& IF(AND($d1,d2,d3),d99,"")
,"error"))

Am besten entfernen wir sie ganz. Wir verwenden nur einen einzigen Ersatz für die UND-Formeln:

=TRIM(
IFERROR(
IF(a1,a99,"")
& " "
& IF(b1,b99,"")
& " "
& IF(c1,c99,"")
& " "
& IF(d1,d99,"")
,"error"))

Das ist jetzt viel einfacher nachvollziehbar. TRIM entfernt Leerzeichen und IFERROR fängt Fehler ab. Was steckt hinter IFERROR? Es ist eine Verkettung mehrerer Strings:

IF(a1,a99,"") & " " & IF(b1,b99,"") & " " & IF(c1,c99,"") & " " & IF(d1,d99,"")

Sehen Sie, dass zwischen jedem IF ein Leerzeichen steht? Sie können Zeichenfolgen kombinieren, indem Sie einfach ein Et-Zeichen &zwischen sie setzen. In diesem Fall sind die Zeichenfolgen das, was das IF zurückgibt, und die Leerzeichen " ".

Nehmen wir nun an, Sie möchten eines dieser IF in ein IFERROR einschließen. Schauen wir uns an, wie Sie es in Ihrer Frage gemacht haben, wieder mit einer kleinen Vereinfachung:

=TRIM(
IFERROR(
IF(AND(a1,a2,a3,a4),a99,"")
,"Error MUC Video")),
& " "
IFERROR(
& IF(AND(b1,b2,b3,b4),b99,"")
,"Error SMR Video"))
& " "
& IF(AND(c1,c2,c3),c99,"")
& " "
& IF(AND($d1,d2,d3),d99,"")

Ich kann schon sagen, dass die Klammern ( )irgendwo durcheinander geraten sind, weil Sie ganz am Ende nur 1 haben. Lassen Sie uns das vorerst ignorieren und nur am IFERROR-Teil arbeiten. Wir können es weiter vereinfachen, wie wir es oben getan haben.

=TRIM(
IFERROR(
IF(a1,a99,"")
,"Error MUC Video")),
& " "
IFERROR(
& IF(b1,b99,"")
,"Error SMR Video"))
& " "
& IF(c1,c99,"")
& " "
& IF(d1,d99,"")

Das ist immer noch etwas schwer zu lesen. Was wäre, wenn wir es so formatieren würden:

=TRIM(
      IFERROR(
              IF(a1,a99,""),"Error MUC Video"
             )
     ),
 & " "
 IFERROR(
         & IF(b1,b99,""),"Error SMR Video"
        )
 )
 & " "
 & IF(c1,c99,"")
 & " "
 & IF(d1,d99,"")

Die Klammern nach dem ersten IFERROR schließen die TRIM-Funktion ab.
Das zweite IFERROR hat das Et-Zeichen& innendie Funktion. Es sollte davor stehen.
Die Klammern nach dem zweiten IFERROR passen nicht zu den öffnenden Klammern.
Das Komma nach den schließenden Klammern sollte auch nicht da sein.
Es fehlt eine schließende Klammer für die TRIM-Funktion.
Die Formel sollte eher so aussehen:

TRIM( IFERROR() & " " & IFERROR() & " " & IF() & " " & IF() )

Unter Berücksichtigung all dieser Aspekte denke ich, dass Ihre Finally-Formel für Sie am besten geeignet wäre, wenn sie wie folgt formatiert wäre:

=TRIM(
IFERROR(IF(AND($T9-TODAY()>=Key!$N$14,$T9-TODAY()<=Key!$M$14,$AA9<>"Complete",$G9<>"New Phase"),Key!$L$11,""),"Error MUC Video")
& " " & 
IFERROR(IF(AND($U9-TODAY()>=Key!$N$15,$U9-TODAY()<=Key!$M$15,$AB9<>"Complete",$G9<>"New Phase"),Key!$L$10,""),"Error SMR Video")
& " " & 
IF(AND($M9-TODAY()>=Key!$N$9,$M9-TODAY()<=Key!$M$9,$Z9<>"Complete"),Key!$L$9,"")
& " " & 
IF(AND($AH9-TODAY()>=Key!$N$16,$AH9-TODAY()<=Key!$M$16,$AE9<>"Complete"),Key!$L$16,"")
)

Wenn Sie die letzten beiden IF-Anweisungen in einen eigenen IFERROR einschließen möchten, würde ich sie auf die gleiche Weise formatieren wie die ersten beiden. Halten Sie jedes Stück in einer eigenen Zeile.


Wenn Sie das nächste Mal ein solches Problem mit einer großen Formel haben, versuchen Sie, sie wie oben beschrieben stark zu kürzen, damit Sie den Fehler leichter erkennen können.

verwandte Informationen