9

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

        A        B
1    apples      2
2    true        0
3    false       0
4    oranges     1
5    apples

В приведенной выше таблице электронных таблиц у меня есть эти формулы в ячейках 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.

6 ответов6

6

Второй аргумент формулы COUNTIF интерпретируется Excel как проверяемый тест (например, мы можем ввести «> 3» и т.д.). В этом случае похоже, что Excel преобразует строки "истина" и "ложь" в 1 и 0. Это не будет соответствовать оригинальному тексту.

Единственное известное мне решение этой проблемы - написать код VBA для подсчета.

Если изменение входных данных является приемлемым, замените "true" на "T" и "false" на "F", затем измените на « COUNTIF(A1:A5,"T") .

Когда я споткнулся об этом, я бросил битву и изменил входные данные.

PS: использование Excel 2003 - та же проблема

5

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

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

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

2

Похоже, что 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 . Они описывают возможность использования операторов по условию более подробно.

0

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

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

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .