it-swarm.com.de

Mehrere IF-Anweisungen: IF, AND, ISDATE, THEN-Formel

Ich versuche, eine verschachtelte Formel zum Laufen zu bringen, aber es wird immer wieder ein Fehler angezeigt. Ich habe versucht, die generische Formel =IF(AND(A1="this",B1="that"),"x","") zu verwenden, konnte aber nicht herausfinden, wie ich sicherstellen kann, dass Q6 = date ist. Ich ließ von einem anderen Prüfer einen Code schreiben, um eine Zelle mit ähnlichen Kriterien bedingt zu formatieren, und dieser funktionierte, sodass ich dachte, ich könnte ihn für diese Situation verwenden. Leider funktioniert es nicht. Kann mir jemand freundlich helfen zu verstehen, was ich falsch gemacht habe?

Wenn beide Bedingungen erfüllt sind:

  • P6 = "geschlossen"

UND

  • Q6 = Datum

Dann:

  • Q6-P6 (subtrahieren)
  • andernfalls lassen Sie das Feld leer

BEARBEITEN: Diese zweite Bedingung wurde hinzugefügt: Alle Fehler oder negativen Werte, die sich ergeben, werden zu "NA". Ich denke, es wird eine Art verschachtelte Anweisung sein?

WENN: negative Zahl oder Fehler (#WERT!)

DANN: "NA"


Formeln, die ich ausprobiert habe:

=IF( AND(ISDATE(Q6), COUNTIFS(P6, "closed", Q6, ">"&DATE(0,1,1)), "Q6-B6", ""))

UND

=IF(AND(P6="closed", Q6">"&DATE( 0,1,1), Q6-B6, ""))

UND

=IF(AND(P6= “closed”, ISDATE(Q6 ">"&DATE(0,1,1))), Q6-B6, "")


Lösung Nr. 1

Ich habe es herausgefunden! War eine einfache Lösung; Setzen Sie einfach die zweite Bedingung auf ein Datum, das unter dem heutigen Datum liegt.

=IF(AND(P6="closed", Q6<"Today()"), Q6-B6, "")

ABER jetzt, wenn ich eine negative Zahl erhalte (weil Spalte B kein Startdatum hat), wie kann ich diese Formel dazu bringen, "NA" zurückzugeben?

Ich habe diese Formel ausprobiert (ein Fehler ist aufgetreten):

=IF(AND(P6="closed", Q6<"Today()", Q6-B6, ""), IF(R6<0, "NA", IF(R6="VALUE!", "NA", "NA")))

Bin ich auf dem richtigen Weg? Schlägt dies fehl, weil wenn es fehlerhaft ist/negativ ist, es zirkulär ist (es ist das Ergebnis des ersten Teils der ausgeführten Formel)? Ich habe den negativen Wert durch bedingte Formatierung verschwinden lassen und die Textschrift weiß gemacht (danke, @ user0!)

Soll das Fehlerstück als Array/Fehlerfalle geschrieben werden? Der IFERROR-Code verwirrt mich völlig. Ich habe es versucht, habe aber trotzdem Formula parse error:

=iferror(ArrayFormula(IF(AND(P6="closed")*(Q6<"Today()"),Q6-B6), "NA”))

=iferror(ArrayFormula(IF(AND(P6="closed")*( Q6<"Today()"),Q6-B6, “”),1)

=iferror(ArrayFormula(IF(AND(P6="closed")*( Q6<"Today()"),Q6-B6, “”),1,"NA")

Lösung Nr. 2

Beeindruckend. Ich fühle mich ziemlich gut. Viel Versuch und Irrtum, aber diese Formel scheint in allen Fällen zu funktionieren. Gibt mir die Anzahl Q6-B6, NA, wenn ein Fehler auftritt, und leer, wenn die Bedingungen nicht erfüllt sind (die negativen Werte, die ich durch bedingte Formatierung ausgeblendet habe).

=IFERROR(IF(AND(P6="closed", Q6<"Today()"), Q6-B6, ""), "NA")

1
que syrah sarah

Lösung Nr. 1

Ich glaube, ich habe es herausgefunden! Ich habe gerade als zweite Bedingung ein Datum festgelegt, das kürzer als heute ist (da die Daten in Spalte Q das Abschlussdatum sind, handelt es sich um Daten in der Vergangenheit). Ich habe die generische IF-AND-Formel geändert:

=IF(AND(P6="closed", Q6<"Today()"), Q6-B6, "")

Lösung Nr. 2

Für die negativen Werte habe ich eine bedingte Formatierung verwendet und den Text weiß gemacht (Dank geht an @ user0, der mir bei einem anderen Problem geholfen und diesen genialen Trick angewendet hat).

Für die Fehler habe ich eine Fehlerfallenformel verwendet (auch dank @ user0). Ich habe ein wenig daran gefeilt und viel ausprobiert, aber ich habe es endlich geschafft !! :)

=IFERROR(IF(AND(P6="closed", Q6<"Today()"), Q6-B6, ""), "NA")

1
que syrah sarah

=IFERROR(IF(AND(P6="closed", Q6<"Today()"), Q6-B6, ""), "NA")

kann leicht verbessert werden, um:

=IFERROR(
         IF(
            AND(P6 = "closed"; 
                Q6 < "NOW()"); 
                               IF((Q6-B6) < 0; 
                                               ""; 
                                               Q6-B6); 
                               ""); 
         "NA")
  • dabei steht NOW() für mehr Genauigkeit (falls erforderlich), da es die bereits verstrichene Zeit des heutigen Tages enthalten kann.
  • und 2nd IF() kann negative Werte erkennen und erfassen, sodass keine bedingte Formatierung erforderlich ist

Endlösung für OP:

=IFERROR(IF(P6="never opened", "",
         IF(B6="", "", 
         IF(AND(P6="closed", Q6<"NOW()"), Q6-B6, TODAY()-B6))),)
1
user0