Використовуючи excel, як я можу порахувати кількість комірок у стовпці, що містить текст "true" чи "false"?


10

У мене є електронна таблиця, яка містить стовпчик комірок, де кожна комірка містить одне слово. Я хотів би порахувати виникнення деяких слів. Я можу використовувати функцію COUNTIF для більшості слів, але якщо слово "вірно" або "помилково", я отримую 0.

        А         Б 
1     яблука 2
 2     правда 0
 3     помилкові 0
 4     апельсини 1
 5     яблук

У наведеній вище таблиці електронних таблиць у мене є такі формули в клітинках B1, B2, B3 і B4:

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

Як бачите, я можу порахувати яблука та апельсини, але неправдиві чи помилкові. Я також спробував це:

=COUNTIF(A1:A5,TRUE)

Але і це не працює.

Примітка - я використовую Excel 2007.


3
Що варто, я передумав це. Я думаю, що формули Excel можна вважати своєрідною декларативною мовою програмування. Я не вважаю, що Тюрінг є повним без використання VBA, але тоді вони не є регулярними виразами - які вважаються прийнятними спільнотою SO!
Мартін Сміт

1
Дотримуйтесь розчин підстановки. =COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")підраховує кожен рядок, який починається з "true" або "trud", наприклад "potege".
Скотт

1
Джей, це старе питання знову з’явилося через нову посаду. Вбудова відповіді у тип запиту меси з передбачуваною структурою сайту. Чи можете ви перемістити частину відповіді до відповіді?
fixer1234

Відповіді:


5

Це має працювати:

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

хоча він вважатиме клітинку, якщо в ній є текст перед істинним. Але це може бути для вас грубим вирішенням.


1
Гарна пропозиція - я не думав про диві карти. Другий COUNTIF можна використовувати для фільтрації слів, які закінчуються на "true". Ця формула працює: = COUNTIF (A1: A5, " true") - COUNTIF (A1: A5, " ? True") Я би підтримав цю відповідь, але я новачок поки що лише 11 повторів. (Я не можу передати жодного з stackoverflow :-(
Джей Елстон

1
Ось ще один варіант: =COUNTIFS(A1:A5, "tru?", A1:A5, "*e").
Скотт

7

Другий аргумент формули COUNTIF інтерпретується Excel як тест, який слід виконати (наприклад, ми можемо ввести "> 3" тощо). У цьому випадку схоже, що Excel перетворює рядки "true" та "false" в 1 і 0. Це не відповідає оригінальному тексту.

Єдине мені відоме рішення цієї проблеми - написати код VBA для підрахунку.

Якщо зміна вхідних даних є прийнятною, замініть "true" на "T", а "false" на "F", а потім змініть на COUNTIF(A1:A5,"T").

Коли я зіткнувся з цим, я відмовився від бою і змінив вхідні дані.

PS: Використання Excel 2003 - той самий випуск


Мій тимчасовий спосіб вирішив щось подібне - я вставив ще один стовпець і використав формулу: IF (A1 = "true", "T", IF (A1 = "false", "F", "")) для заселення комірок .

Хм, я бачу розчарування. COUNTIF(A2,">=trud")і COUNTIF(A2,"<=truf")обидва працюють. COUNTIF(A2,A2)і будь-який можливий варіант не робить!
Мартін Сміт

Здається, що =COUNTIF(G1,">=true")і =COUNTIF(G1,"<=true") завжди повертати 0 для будь-якого можливого введення з, CHAR(1)щоб CHAR(255)те, що воно перетворюється, здається абсолютно незрівнянним. Схоже, це працює як порівняння NULL у базі даних.
Мартін Сміт

3

Здається, Excel трактує "true / TRUE" та "false / FALSE" як магічні рядки, коли вони з'являються у формулах - вони розглядаються як функції: TRUE () та FALSE () замість рядків.

Якщо вам потрібно порахувати істинне та хибне у стовпці, ви не отримаєте підрахунок, якщо використовуватимете як "true" або "= true" як критерій. Існує декілька підходів, які ви можете використовувати для підрахунку правдивих і помилкових як слів.

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).

Завдяки Sux2Lose за ідею підстановки та Мартін Сміт за ідею використати порівняння з рядками одразу більшими та меншими, ніж істинні чи хибні.


0

Мені вдалося скористатися такими формулами:

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

Прочитайте вбудовану довідку для COUNTIF. Вони більш детально описують можливість використання операторів за умовою.


1
Не працює для мене. Повертається 0.
Мартін Сміт

1
Це не працює і для мене.
Джей Елстон

0

У мене була подібна проблема з формулою SUMPRODUCT. Видаляючи лапки навколо терміна FALSE, формула дала правильний результат, використовуючи MS EXCEL 2003.


1
У запитанні я згадував, що спробував = COUNTIF (A1: A5, TRUE), і що я використовував версію Excel 2007 року.
Джей Елстон

0

Мені вдалося вирішити проблему за допомогою наступної формули:

= COUNTIF (A1: A5, "T *").

"T*" замінює "True", якщо записи у стовпці обмежені лише одним словом "T".

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.