Was ist in diesem Beispiel die beste Alternative zu verschachtelten IF-Anweisungen?

Was ist in diesem Beispiel die beste Alternative zu verschachtelten IF-Anweisungen?

Was wäre anstelle verschachtelter if-Anweisungen eine bessere Möglichkeit (leichter zu lesen und zu pflegen und weniger ressourcenintensiv), das zu tun, was ich brauche? Bildbeschreibung hier eingeben

Die Formeln in den rechten 4 Spalten sind alle gleich, sie beziehen sich nur auf unterschiedliche Teile unterschiedlicher Registerkarten, die alle genau gleich funktionieren. Die Spalte „Ursprünglich gesendete E-Mail“ wird vom Benutzer ausgewählt (Datenüberprüfung). Die hervorgehobene Formel lautet:

 =IF(OR([Initial Email Sent]="on hold",[Initial Email Sent]="not applicable"),[@[Initial Email
 Sent]],IF(COUNTIF(a414engagement[Status],"<>Not Applicable")=0,"Not
 Applicable",(IF((COUNTIF(a414engagement[Status],"Not
 Started")+(COUNTIF(a414engagement[Status],"In
 Progress"))=0),"Completed",(IF(COUNTIF(a414engagement[Status],"In
 Progress")+(COUNTIF(a414engagement[Status],"Completed"))>0,"In
 Progress","Not Started"))))))

Das ist ein ganz schöner Brocken. Es bezieht sich auf einen Teil der Registerkarte A414, der folgendermaßen aussieht: Bildbeschreibung hier eingeben

Der Zweck der Formel:

  1. Wenn in dieser Zeile die erste gesendete E-Mail lautet:unzutreffendDiese Zelle sollte sagenunzutreffend.
  2. Wenn die erste gesendete E-Mailin der WarteschleifeDiese Zelle sollte sagenin der Warteschleife

Die anderen Funktionen beziehen sich alle auf den Inhalt des Zielarbeitsblatts und nicht auf das Übersichtsarbeitsblatt:

  1. Wenn alle Elemente markiert sindnicht angefangen, die Zelle A414 in der Übersicht sollte lautennicht angefangen
  2. Wenn alle Elemente markiert sindvollendetsollte in der Übersichtszelle stehenvollendet.
  3. In jeder anderen Kombination (z. B. alleim Gange, Hälftevollendet& Hälftenicht angefangen) sollte in der Übersichtszelle stehenim Gange.

Antwort1

Ihre Formel deckt Ihre Beschreibung nicht vollständig ab. Hier ist eine Formel für das von Ihnen beschriebene Szenario:

=IF( OR( [Initial Email Sent]="on hold", [Initial Email Sent]="not applicable" ), [@[Initial Email Sent]], IF( COUNTIF( a414engagement[Status], "<>Not Started" )=0, "Not Started", IF( COUNTIF( a414engagement[Status], "<>Completed" )=0, "Completed", "In progress" ) ) )

Oder vielleicht einfacher verständlich:

=IF(
    OR(
        [Initial Email Sent]="on hold",
        [Initial Email Sent]="not applicable"
    ),
    [@[Initial Email Sent]],
    IF(
        COUNTIF(
            a414engagement[Status],
            "<>Not Started"
        )=0,
        "Not Started",
        IF(
            COUNTIF(
                a414engagement[Status],
                "<>Completed"
            )=0,
            "Completed",
            "In progress"
        )
    )
)

Der Trick besteht hier darin, dass Sie, anstatt alle „nicht gestarteten“ Zellen zu zählen, nach 0 Vorkommen suchen, bei denen die Zelle nicht „nicht gestartet“ ist.

verwandte Informationen