Używając programu Excel, w jaki sposób mogę policzyć liczbę komórek w kolumnie zawierającej tekst „prawda” lub „fałsz”?

10

Mam arkusz kalkulacyjny zawierający kolumnę komórek, w której każda komórka zawiera pojedyncze słowo. Chciałbym policzyć wystąpienia niektórych słów. Mogę użyć funkcji LICZ.JEŻELI dla większości słów, ale jeśli słowo to „prawda” lub „fałsz”, otrzymuję 0.

        A         B 
1     jabłka 2
 2     prawda 0
 3     fałsz 0
 4     pomarańcze 1
 5     jabłek

W powyższej tabeli arkusza kalkulacyjnego mam te formuły w komórkach B1, B2, B3 i B4:

=COUNTIF(A1:A5,"apples")
=COUNTIF(A1:A5,"true")
=COUNTIF(A1:A5,"false")
=COUNTIF(A1:A5,"oranges)

Jak widać, mogę policzyć jabłka i pomarańcze, ale nie prawdziwe ani fałszywe. Próbowałem także:

=COUNTIF(A1:A5,TRUE)

Ale to też nie działa.

Uwaga - korzystam z programu Excel 2007.

Jay Elston
źródło
3
Na ile warto, zmieniłem zdanie na ten temat. Wydaje mi się, że formuły Excel można uznać za rodzaj deklaratywnego języka programowania. Nie sądzę, że Turing jest kompletny bez użycia VBA, ale nie są to też wyrażenia regularne - które są uznawane przez społeczność SO za dopuszczalne!
Martin Smith
1
Trzymaj się rozwiązania wieloznacznego. =COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")zlicza każdy ciąg rozpoczynający się od „true” lub „trud”, np. „trudge”.
Scott
1
Jay, to stare pytanie pojawiło się ponownie z powodu nowego posta. Osadzenie odpowiedzi w pytaniach typu mesa z zamierzoną strukturą strony. Czy możesz przenieść część odpowiedzi na odpowiedź?
fixer1234

Odpowiedzi:

5

To powinno działać:

=COUNTIF(A1:A5,"*true")

chociaż policzy komórkę, jeśli również ma tekst przed prawdą. Ale może to być dla ciebie prymitywne obejście.

Sux2Lose
źródło
1
Dobra sugestia - nie myślałem o dzikich kartach. Drugi LICZNIK może być użyty do odfiltrowania słów, które kończą się na „prawda”. Ta formuła działa: = COUNTIF (A1: A5, „ true”) - COUNTIF (A1: A5, „ ? True”) Poparłbym tę odpowiedź, ale jestem nowicjuszem do tej pory tylko 11 powtórzeń. (Nie mogę przenieść żadnego z stackoverflow :-(
Jay Elston
1
Oto kolejna odmiana: =COUNTIFS(A1:A5, "tru?", A1:A5, "*e").
Scott
7

Drugi argument formuły COUNTIF jest interpretowany przez Excela jako test do wykonania (np. Możemy wpisać „> 3” itp.). W tym przypadku wygląda na to, że Excel konwertuje ciągi „prawda” i „fałsz” na 1 i 0. To nie będzie pasować do oryginalnego tekstu.

Jedynym znanym mi rozwiązaniem tego problemu jest napisanie kodu VBA, aby wykonać zliczanie.

Jeśli zmiana danych wejściowych jest akceptowalna, zamień „prawda” na „T”, a „fałsz” na „F”, a następnie zmień na COUNTIF(A1:A5,"T").

Kiedy się o to potknąłem, poddałem się bitwie i zmieniłem dane wejściowe.

PS: Korzystanie z programu Excel 2003 - ten sam problem

Christian Garbin
źródło
Moje tymczasowe obejście poszło mniej więcej tak - wstawiłem inną kolumnę i użyłem formuły: JEŻELI (A1 = „prawda”, „T”, JEŻELI (A1 = „fałsz”, „F”, „”)), aby wypełnić komórki .
Hmm, widzę frustrację. COUNTIF(A2,">=trud")i COUNTIF(A2,"<=truf")oba działają. COUNTIF(A2,A2)i żaden możliwy wariant nie!
Martin Smith
Wydaje się, że =COUNTIF(G1,">=true")i =COUNTIF(G1,"<=true") zawsze zwraca 0 dla każdego możliwego wejścia od CHAR(1)do, CHAR(255)więc wszystko, na co jest konwertowane, wydaje się całkowicie nieporównywalne. Wydaje się, że zachowuje się jak porównanie NULL w bazie danych.
Martin Smith
3

Wygląda na to, że Excel traktuje „prawda / PRAWDA” i „fałsz / FAŁSZ” jako ciągi magiczne, gdy pojawiają się w formułach - są one traktowane jako funkcje: PRAWDA () i FAŁSZ () zamiast ciągów.

Jeśli musisz policzyć true i false w kolumnie, nie otrzymasz liczenia, jeśli użyjesz „true” lub „= true” jako kryteriów. Istnieje kilka podejść, których można użyć, aby policzyć prawda i fałsz jako słowa.

Use a pair of COUNTIF functions. Either of the following works:

=COUNTIF(A1:A5,"*true")-COUNTIF(A1:A5,"*?true")

or

=COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")

Create a new column with true converted to "T" and false converted to "F" using the formula:

=IF(A1="true","T",IF(A1="false","F",""))

Then trues and falses can be counted using:

=COUNTIF(A1:A5,"T")
=COUNTIF(A1:A5,"F")

Don't use "true" and "false" to begin with, use something else (such as T and F).

Dzięki Sux2Lose za pomysł na symbol wieloznaczny i Martin Smith za pomysł na użycie porównań z ciągami natychmiast większymi i mniejszymi niż prawda lub fałsz.

Jay Elston
źródło
0

Byłem w stanie użyć następujących wzorów:

=COUNTIF(A1:A5,"=apples")
=COUNTIF(A1:A5,"=true")
=COUNTIF(A1:A5,"=false")
=COUNTIF(A1:A5,"=oranges")

Przeczytaj wbudowaną pomoc dotyczącą COUNTIF. Bardziej szczegółowo opisują zdolność do korzystania z operatorów pod warunkiem.

technomalogiczny
źródło
1
Nie działa dla mnie. Zwraca 0.
Martin Smith
1
To mi też nie działa.
Jay Elston
0

Miałem podobny problem z formułą SUMPRODUCT. Usuwając cudzysłowy wokół terminu FAŁSZ, formuła dała prawidłowy wynik, używając MS EXCEL 2003.

Rohan
źródło
1
Wspomniałem w pytaniu, że próbowałem = LICZ.JEŻELI (A1: A5, PRAWDA) i że używałem wersji Excel 2007.
Jay Elston,
0

Byłem w stanie rozwiązać problem za pomocą następującej formuły:

= LICZ.JEŻELI (A1: A5, „T *”).

"T*" zastępuje „True”, jeśli wpisy w kolumnie są ograniczone tylko do jednego słowa „T”.

Rocky Ellens
źródło