2014-01-07 4 views
5

ich keinen Link aufgrund sensible Informationen veröffentlichen können, aber ich kann die Struktur bieten:Google-Tabelle: Array Formel if/und „Nein“, wenn drei vorherigen Zellen zurück sind leer

|Id |PT/DOT |Primary Employee |From |To |Per x Days |Frequency Data Complete? | 
------ --------- ----------------- ------- ----- ------------ ------------------------- 

Das sind die Spaltenüberschriften. In Spalte A, B und C gibt es Textwerte. In D, E, & F gibt es entweder Zahlenwerte oder Leerwerte, abhängig davon, ob die Mindesthäufigkeit (Von), Maximale Häufigkeit (Bis) und Zeitraum (Pro x Tage) vom primären Mitarbeiter abgeschlossen wurde oder nicht. Spalte G sollte einen "Ja" oder "Nein" Wert liefern, wenn alle 3 frequenzbezogenen Spalten nicht leer sind.

Einfache Version davon wäre =if(and(D1<>"",E1<>"",F1<>""),"Yes","No"). Das funktioniert in der einfachen Version, aber ich muss es für die Anzahl der Datenzeilen automatisch auffüllen, weil sie sich dynamisch auf Basis von Skripten ändern.

Der nächste Schritt, den ich ausprobiert habe, war =arrayformula(if(and(D2<>"",E2<>"",F2<>""),"Yes","No")), der sich nicht automatisch ausfüllt (weiter), weil es nicht wirklich ein Array ist.

I modifiziert, um es zu =arrayformula(if($D2:$F="","No","Yes")), die bis zum Ende der Daten füllt ab, aber sie einen einzigen Yes oder No auf Spalte G nicht zurückkehrt, sondern stattdessen Yes oder No für jede der 3 Spalten G, H, und ich könnte diese Spalten verstecken und eine =countif("Yes") auf J machen, aber ich bin immer noch im selben Boot mit Autofilling down.

Ich kann es mit einem Skript tun, das eine Formel in Spalte G setzt, aber das fügt einen weiteren Skriptlauf und einen weiteren Auslöser für den Prozess hinzu, wenn ich nur eine laufende Registerkarte beibehalten möchte, ob D, E oder nicht und F sind vollständig.

Ich bin nicht wirklich sicher, was die einfachste Methode hier ist. Ich brauche das wirklich, um ohne zusätzlichen Aufwand vom Benutzer automatisch zu füllen. OnEdit-Skript könnte die einzige Wahl sein, aber ich würde das lieber nicht tun müssen.

Ich habe alles versucht, was mir einfällt, und habe dieses Thema durchsucht, bis jeder remote relevante Link violett ist. Ich kann nichts finden, was ich ändern könnte, um zu denselben Zielen zu gelangen.

Antwort

10

Der einfache Weg ist der Operator * zu verwenden, die eine logische UND über ein Array simuliert:

=ARRAYFORMULA(IF((D2:D<>"")*(E2:E<>"")*(F2:F<>""),"Yes","No"))

+0

Ahh! Ich habe das versucht, aber ich habe die Bereiche nicht selbst in Klammern gesetzt. Ich habe es so gemacht = Arrayformula (wenn (D2: D <> "* E2: E <>" "* F2: F <>"), "Ja", "Nein")) Ich war so nah dran! – thoughtcrime

+0

Sie haben gerade meinen Tag gerettet, vielen Dank! – mTorres

0

Verwendung ISBLANK Funktion mit einem IF

=IF(ISBLANK(F1)=FALSE;"YES";IF(ISBLANK(E1)=FALSE;"YES";IF(ISBLANK(D1)=FALSE;"YES";"NO"))) 
Verwandte Themen