Verwenden der IF- und ISBLANK-Anweisung, um einen Bereich von Zellen zu bestimmen, wenn eine von ihnen Informationen enthält

10

Ich habe eine Formel, in der ich nach einer Reihe von Zellen suche, ob sie leer sind oder nicht.

Wenn alle leer sind, möchte ich ein weiteres Leerzeichen zurückgeben.

Wenn eine der Zellen im Bereich nicht leer ist, möchte ich einen Wert zurückgeben Major Milestone Due.

Hier ist die Formel, die ich derzeit habe:

=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")

Es gibt alles als zurück Major Milestone Due, auch wenn es bestimmte Zeilenbereiche mit allen leeren Zellen gibt.

Heidekraut
quelle

Antworten:

16

COUNTAgibt die Anzahl der Zellen in einem Bereich an, die nicht leer sind .

Also versuche ...

 =IF(NOT(COUNTA(BM2:BQ2)),"","Major Milestone Due")
jcfollower
quelle
Die Grundformel: NOT (COUNTA (BM2: BQ2)) gilt für logischere Operatoren wie AND (COUNTA (BN2), NOT (COUNTA (BM2: BQ2)))
Rhak Kahr
9

Ihre Formel ist korrekt, wenn sie als Array-Formel eingegeben wird .

Das isblankfunktioniert für ein Array nur, wenn Sie es mit ctrl+ shift+ als Array-Formel eingeben enter. Es wird so aussehen, wenn geschweifte Klammern um es herum stehen:

{=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")}

Auch eine if - counta macht das ebenfalls problemlos -

=IF(COUNTA(BM2:BQ2)=0,"","Major Milestone Due")

Raystafarian
quelle
Die Array-Formel ist nicht ganz korrekt. Diese Version wechselt nur von TRUEzu, FALSEwenn die erste Zelle im Bereich einen Wert enthält. Um alle Zellen im Bereich korrekt zu überprüfen, ANDmuss hinzugefügt werden -{=IF(AND(ISBLANK(BM2:BQ2)),"","Major Milestone Due")}
Marcus Hughes
@MarcusHughes warum sollte das sein? Es ist eine Array-Formel und funktioniert auf dem gesamten Array
Raystafarian
Ich weiß nicht genau warum , aber ich habe es getestet (Excel 2010) und es funktioniert nicht nur mit ISBLANK. Versuchen Sie, diese Formel einzugeben, lassen Sie die erste Zelle im Bereich leer und geben Sie dann Daten in eine spätere Zelle im Bereich ein. Die ISBLANKBedingung wird weiterhin zurückgegeben TRUE. Nur wenn Sie Daten in die erste Zelle eingeben, werden diese FALSEkorrekt zurückgegeben. Versuchen Sie nun hinzuzufügen AND. Wenn einer Zelle im Bereich Daten hinzugefügt werden, werden sie FALSEwie gewünscht zurückgegeben. (Ich gehe davon aus, dass dies nicht nur ein seltsamer Zufall mit 2010 ist.)
Marcus Hughes
2

Eine wichtige Sache zu berücksichtigen ist Ihre Definition von "leer". Basierend auf der Tatsache, dass Sie den Wortlaut "Ich möchte ein weiteres Leerzeichen zurückgeben" verwendet haben, scheinen Sie "leer" als Zellen zu definieren, die leer erscheinen , aber möglicherweise eine Formel enthalten, die ausgegeben wird ""und daher nicht leer ist .

Die COUNTAund ISBLANKMethoden funktionieren nicht, wenn Sie diese Art von Zellen als Rohlinge zu handhaben wollen, da diese beiden Formeln für wirklich aussehen leere Zellen. Um mit den ausgegebenen Formeln umzugehen "", haben Sie zwei Möglichkeiten:


  • Wenn Sie die Größe Ihres Bereichs immer kennen, können Sie eine der folgenden Optionen verwenden:

    =IF( COUNTBLANK(BM2:BQ2)=5, "", "Major Milestone Due")
    =IF( COUNTIF(BM2:BQ2,"")=5, "", "Major Milestone Due")

    wobei 5 die Größe Ihres Bereichs ist. Diese Methode funktioniert nicht so gut mit Dynamikbereichen.


  • Eine etwas komplexere Formel (zumindest komplexer zu erklären!) Verwendet SUMPRODUCT:

    =IF( SUMPRODUCT(--(BM2:BQ2<>""))=0, "", "Major Milestone Due")


(Beachten Sie, dass COUNTIF(BM2:BQ2,"<>")das gleiche Problem hat wie COUNTA.)

Marcus Hughes
quelle
-1

Ich bin auf dieser Seite auf der Suche nach der Antwort auf eine fast identische Frage angekommen.

Als ich sah, dass COUNTAdas erwähnt wurde, wusste ich fast sofort, was zu tun war. In einem etwas anderen Kontext habe ich links von einer Spalte einen Spaltenbereich, den ich sagen möchte, not startedwenn alle Zellen in derselben Zeile leer (leer) sind.

Die folgende Formel funktioniert für mich.

=IF(COUNTA(P3:U3)=0,"Not Started"...)

Die Auslassungspunkte zeigen an, dass IFmeine Formel mehrere zusätzliche Funktionen enthält, die weitere Tests für den Bereich durchführen, wenn eine oder mehrere ausgefüllt sind.

David A. Gray
quelle
Willkommen bei Super User. Als ich bemerkte, dass Ihre Antwort eine negative Resonanz fand. Der wahrscheinliche Grund ist, dass wir versuchen, Doppelarbeit zu vermeiden. Jede Antwort soll eine Lösung bieten, die sich wesentlich von der bereits geleisteten unterscheidet. Dies dupliziert im Wesentlichen den zweiten Teil von Raystafarians Antwort.
Fixer1234
Meine Antwort hätte als Kommentar abgegeben werden sollen.
David A. Gray