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

Хотя нет функции рабочего листа, которая произвела бы желаемое количество, есть формула или две, которые вы можете использовать. Если вы просто хотите узнать количество ячеек, в которых есть хотя бы одна запятая, вам подойдет следующая формула:

=COUNTIF(A1:A10,",")

Если вместо этого вам нужно определить количество запятых в диапазоне, когда может быть несколько запятых на ячейку, тогда вам нужно использовать другую формулу:

=SUM(LEN(A1:A10))-SUM(LEN(SUBSTITUTE(A1:A10,",","")))

Эта формула должна быть введена как формула массива, что означает, что вы должны использовать Ctrl + Shift + Enter для ввода формулы. Если вам нужно получить счетчик для другого диапазона, просто измените диапазон в двух местах формулы.

Если хотите, вы также можете создать определяемую пользователем функцию для подсчета количества запятых. Есть несколько способов подойти к такой задаче; Ниже приводится лишь один пример.

Function CountComma(rng As Range)

Dim iCount As Integer     Dim rCell As Range     Dim sTemp As String

Application.Volatile     iCount = 0     For Each rCell In rng         sTemp = Replace(rCell.Value, ",", "")

iCount = iCount + _           (Len(rCell.Value) - Len(sTemp))

Next     CountComma = iCount     Set rCell = Nothing     Set rng = Nothing End Function

Чтобы использовать функцию на листе, введите в ячейку следующее:

=CountComma(A1:A10)

Все эти методы, описанные до сих пор, будут считать запятые, которые действительно находятся в ячейке. Они не будут считать запятые, которые появляются в ячейке из-за форматирования. Например, если число отображается в ячейке как «1,234», велика вероятность того, что запятая присутствует из-за способа форматирования ячейки; это действительно не в самой ячейке.

Такие запятые не учитываются.

Конечно, если все, что вам нужно сделать, это знать количество запятых и значение на листе не нужно, вы можете обойтись без использования формул и макросов одновременно. Выполните следующие общие шаги:

  1. Выберите диапазон ячеек, в котором вы хотите подсчитать запятые.

  2. Нажмите Ctrl + H, чтобы открыть вкладку «Заменить» в диалоговом окне «Найти и заменить».

  3. В поле «Найти» введите запятую.

  4. В поле «Заменить на» введите запятую.

  5. Щелкните «Заменить все».

Excel выполнит замену и отобразит диалоговое окно, в котором показано, сколько замен было произведено.

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (11029) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:

link: / excel-Counting_Commas_in_a_Selection [Подсчет запятых в выделении].