Используя Excel, как я могу подсчитать количество ячеек в столбце, содержащем текст «true» или «false»?


10

У меня есть электронная таблица со столбцом ячеек, где каждая ячейка содержит одно слово. Я хотел бы посчитать вхождения некоторых слов. Я могу использовать функцию COUNTIF для большинства слов, но если слово «true» или «false», я получаю 0.

        A         B 
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», например, «trudge».
Скотт

1
Джей, этот старый вопрос снова всплыл из-за нового поста. Встраивание ответа в вопрос вроде путаницы с предполагаемой структурой сайта. Можете ли вы переместить часть ответа в ответ?
fixer1234

Ответы:


5

Это должно работать:

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

хотя он будет считать ячейку, если у нее есть текст до истины, а также. Но это может быть грубый обходной путь для вас.


1
Хорошее предложение - я не думал о джокерах. Второй COUNTIF может использоваться, чтобы отфильтровать слова, которые заканчиваются на «true». Эта формула работает: = COUNTIF (A1: A5, « истина») - COUNTIF (A1: A5, « ? Истина») Я бы проголосовал за этот ответ, но я новичок пока только 11 повторений. (Я не могу передать что-либо из stackoverflow :-(
Джей Элстон

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

7

Второй аргумент формулы COUNTIF интерпретируется Excel как проверяемый тест (например, мы можем ввести «> 3» и т. Д.). В этом случае похоже, что Excel преобразует строки «истина» и «ложь» в 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 и 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 за идею с подстановочными знаками и Мартину Смиту за идею использовать сравнения со строками, сразу большими и меньшими, чем true или false.


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

Я смог решить проблему, используя следующую формулу:

= СЧЕТЕСЛИ (А1: А5, "Т *").

"T*" заменяет «True», если записи в столбце ограничены только одним словом «T».

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.