Подсчет звездочек (Microsoft Excel)
Дэвиду нужно подсчитать количество звездочек, которые появляются в диапазоне ячеек. Он отмечает, что СЧЁТЕСЛИ, кажется, предполагает, что * — это подстановочный знак, поэтому он не возвращает правильное количество.
Есть несколько способов добиться результатов в зависимости от того, что вы действительно хотите получить. Предположим, что у вас есть следующие значения в ячейках A3: A8:
1234 abcd abcd abcd
В этих шести ячейках всего семь звездочек. Чтобы определить количество звездочек, появляющихся в пределах диапазона, вам нужно полагаться на формулу массива, такую как эта:
=SUM(LEN(A3:A8)-LEN(SUBSTITUTE(A3:A8,"*","")))
Не забудьте ввести формулу с помощью Ctrl + Shift + Enter.
Конечно, вы можете захотеть подсчитать количество ячеек в диапазоне, которые содержат одну звездочку, вместо количества реальных звездочек. В этом случае вы действительно можете использовать функцию СЧЁТЕСЛИ, если знаете, как составить формулу. Сначала попробуйте эту формулу:
=COUNTIF(A3:A8,"*")
С данными, приведенными в начале этого совета, эта формула возвращает значение 5. Это, конечно, неверно. Причина, по которой он возвращает этот результат, заключается в том, что СЧЁТЕСЛИ использует * как подстановочный знак, означающий «любой текст в ячейке». Поскольку в диапазоне есть пять ячеек, содержащих текст (нечисловые значения), это ответ, возвращаемый формулой.
Вы можете подумать, что если вы ищете ANSI-символ звездочки вместо самой звездочки, вы можете получить правильный результат. Эта формула показывает такой подход:
=COUNTIF(A3:A8,CHAR(42))
Эта формула также возвращает неправильный ответ (5). Похоже, что Excel не видит разницы в приложении между поиском * и поиском CHAR (42). Оба по-прежнему рассматриваются как подстановочный знак.
Чтобы решить эту проблему, нужно помнить, что вы можете заставить Excel рассматривать звездочку как фактический символ, поставив перед ней тильду, следующим образом:
=COUNTIF(A3:A8,"~*")
Это возвращает результат 1, что может вызвать удивление. Однако Excel очень буквален, и ваша формула требует подсчета всех ячеек, содержащих одну звездочку. Правильный ответ: только одна ячейка (A7) содержит то, что вы просили. Если вы хотите подсчитать все ячейки, которые содержат звездочку в любом месте ячейки, вам нужно окружить формулу символами подстановки следующим образом:
=COUNTIF(A3:A8,"~*")
Это возвращает «любой текст», за которым следует буквальная звездочка, за которой следует «любой текст». Результатом будет 4, то есть количество ячеек, содержащих хотя бы одну звездочку.
Концепция использования тильд для борьбы с подстановочными знаками рассматривается в этой статье базы знаний:
https://support.office.com/en-us/article/find-or-replace-text-and-numbers-on-a-worksheet-0e304ca5-ecef-4808-b90f-fdb42f892e90
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (9483) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для более старого интерфейса меню Excel здесь:
link: / excel-Counting_Asterisks [Подсчет звездочек]
.