Korzystanie z instrukcji IF i ISBLANK w celu ustalenia zakresu komórek, jeśli którakolwiek z nich zawiera informacje

10

Mam formułę, w której sprawdzam zakres komórek, czy są one puste.

Jeśli wszystkie są puste, chcę zwrócić kolejną pustą.

Jeśli którakolwiek z komórek w zakresie nie jest pusta, chcę zwrócić wartość Major Milestone Due.

Oto wzór, który obecnie posiadam:

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

Zwraca wszystko jako Major Milestone Due, nawet jeśli istnieją pewne zakresy wierszy ze wszystkimi pustymi komórkami.

Wrzos
źródło

Odpowiedzi:

16

COUNTApoda liczbę komórek w zakresie, które niepuste .

Więc spróbuj ...

 =IF(NOT(COUNTA(BM2:BQ2)),"","Major Milestone Due")
jcfollower
źródło
Podstawowa formuła: NOT (COUNTA (BM2: BQ2)) ma zastosowanie do bardziej logicznego operatora, takiego jak: AND (COUNTA (BN2), NOT (COUNTA (BM2: BQ2)))
Rhak Kahr
9

Twoja formuła jest poprawna, jeśli jest wprowadzona jako formuła tablicowa .

isblankNie działa na tablicy chyba go wprowadzić jako formułę tablicową przy użyciu ctrl+ shift+ enter. Będzie to wyglądać tak, mając wokół siebie nawiasy klamrowe:

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

Również if - counta zrobi to bez problemu -

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

Raystafarian
źródło
Formuła tablicowa nie jest całkiem poprawna. Ta wersja przejdzie od TRUEdo, tylko FALSEjeśli pierwsza komórka w zakresie zawiera wartość. Aby poprawnie sprawdzić wszystkie komórki w zakresie, ANDnależy dodać -{=IF(AND(ISBLANK(BM2:BQ2)),"","Major Milestone Due")}
Marcus Hughes
@MarcusHughes, dlaczego to miałoby być? Jest to formuła tablicowa i działa na całej tablicy
Raystafarian,
Nie wiem dokładnie, dlaczego tak jest, ale przetestowałem go (Excel 2010) i nie działa z tym ISBLANK. Spróbuj wprowadzić tę formułę, pozostaw pierwszą komórkę w zakresie pustą, a następnie wprowadź dane w późniejszej komórce w zakresie ... ISBLANKWarunki nadal będą zwracane TRUE. Tylko jeśli wprowadzisz dane do pierwszej komórki, dane zostaną FALSEpoprawnie zwrócone . Teraz spróbuj dodać AND. Jeśli do dowolnej komórki w zakresie zostaną dodane dane, zostanie ona zwrócona FALSEtak, jak powinna. (Zakładam, że to nie jest jakiś dziwny przypadek z 2010 r.)
Marcus Hughes
2

Ważną rzeczą do rozważenia jest twoja definicja „pustego”. Biorąc pod uwagę fakt, że użyłeś sformułowania „Chcę zwrócić kolejny pusty”, wyglądałoby na to, że definiujesz „puste” jako komórki, które wydają się puste, ale które mogą faktycznie zawierać formułę, która wyświetla, ""a zatem nie są puste .

COUNTAI ISBLANKmetody nie będzie działać, jeśli chcesz obsługiwać tego rodzaju komórek, jak puste, ponieważ te dwa wzory wyglądają na naprawdę pustych komórek. Aby obsłużyć formuły wyjściowe "", masz dwie opcje:


  • Jeśli zawsze znasz rozmiar swojego zakresu, możesz użyć jednego z poniższych:

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

    gdzie 5 to rozmiar twojego zakresu. Ta metoda nie działa tak dobrze w przypadku zakresów dynamicznych.


  • Nieco bardziej złożona formuła (przynajmniej bardziej złożona do wyjaśnienia!) Używa SUMPRODUCT:

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


(Uwaga: COUNTIF(BM2:BQ2,"<>")ten sam problem jak COUNTA.)

Marcus Hughes
źródło
-1

Doszedłem do tej strony w poszukiwaniu odpowiedzi na prawie identyczne pytanie.

Kiedy zobaczyłem, że COUNTAwspomniano, prawie natychmiast wiedziałem, co robić. W nieco innym kontekście po lewej stronie kolumny mam zakres kolumn, które chcę powiedzieć, not startedjeśli wszystkie komórki w tym samym wierszu są puste (puste).

Poniższa formuła działa dla mnie.

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

Elipsa wskazuje, że IFw mojej formule jest kilka dodatkowych funkcji, które wykonują dalsze testy zakresu, jeśli jedna lub więcej jest zapełnionych.

David A. Gray
źródło
Witamy w Super User. Zauważyłem, że twoja odpowiedź przyciągnęła opinię. Prawdopodobnym powodem jest to, że staramy się unikać powielania. Każda odpowiedź ma na celu dostarczenie rozwiązania, które zasadniczo różni się od tego, co już zostało wniesione. To zasadniczo powiela drugą część odpowiedzi Raystafariana.
fixer1234
Moja odpowiedź powinna zostać oddana jako komentarz.
David A. Gray,