Подсчет ячеек по регистру (Microsoft Excel)
Если вы используете Excel для анализа группы ячеек, содержащих текст, вы можете определить количество ячеек, содержащих верхний регистр, число, содержащее строчные буквы, и число, содержащее смешанный регистр.
Есть два способа подойти к этой задаче: использовать обычную формулу рабочего листа или определить свою собственную пользовательскую функцию.
Если текст, который вы хотите оценить, находится в столбце A, начиная с ячейки A1, вы можете использовать следующую формулу в ячейке B1:
=IF(A1>"",IF(EXACT(UPPER(A1),A1),"Upper", IF(EXACT(LOWER(A1),A1),"Lower","Mixed")),"")
Формула проверяет, есть ли что-нибудь в A1. Если есть, то он использует функцию EXACT для сравнения содержимого с различными преобразованиями содержимого ячейки. Формула возвращает пустую строку, если ячейка A1 пуста или есть слова Верхний, Нижний или Смешанный.
Скопируйте формулу в столбец B, насколько это необходимо, и затем вы можете использовать следующий тип формулы для определения количества:
=COUNTIF(B:B,"Upper")
Чтобы узнать количество ячеек в нижнем или смешанном регистре, замените «Верхний» на «Нижний» или «Смешанный».
Очевидно, что использование формул таким образом включает добавление столбца на ваш рабочий лист. Вы можете использовать другой подход с формулами, который не предполагает использования промежуточного столбца таким образом.
Рассмотрим следующую формулу, которая возвращает количество ячеек в диапазоне A1: A100, содержащих только прописные буквы:
=SUMPRODUCT(--(EXACT(A1:A100,UPPER(A1:A100))),--(A1:A100<>""))
Вариант этой формулы может использоваться для возврата количества ячеек в нижнем регистре. Единственное, что изменилось ниже, — это использование функции НИЖНИЙ вместо функции ВЕРХНИЙ:
=SUMPRODUCT(--(EXACT(A1:A100,LOWER(A1:A100))),--(A1:A100<>""))
Чтобы определить ячейки, содержащие смешанный регистр, вам нужно придумать смесь двух формул на основе SUMPRODUCT:
=SUMPRODUCT(--(NOT(EXACT(A1:A100,UPPER(A1:A100)))),-- (NOT(EXACT(A1:A100,LOWER(A1:A100)))),--(A1:A100<>""))
У этих формул есть некоторые недостатки, недостатки, которые не очевидны в более ранних формулах. Во-первых, если ячейка содержит числовое значение, эти формулы могут считать ячейку прописной. Во-вторых, если ячейка содержит значение ошибки, формула возвращает ошибку.
Если вам нужно подсчитывать регистр довольно часто, то вам, вероятно, будет лучше, если вы создадите определяемую пользователем функцию, которая выполняет подсчет за вас. Есть много способов написать такую функцию, но общие рекомендации таковы:
Пройдите по каждой ячейке диапазона. Определите, является ли ячейка верхним, нижним или смешанным регистром. Увеличить какой-либо счетчик. Вернуть значение
Следующий макрос является одним из примеров того, как это может быть реализовано:
Function CountCase(rng As Range, sCase As String) As Long Dim vValue Dim lUpper As Long Dim lMixed As Long Dim lLower As Long Dim rCell As Range lUpper = 0 lLower = 0 lMixed = 0 For Each rCell In rng If Not IsError(rCell.Value) Then vValue = rCell.Value If VarType(vValue) = vbString _ And Trim(vValue) <> "" Then If vValue = UCase(vValue) Then lUpper = lUpper + 1 ElseIf vValue = LCase(vValue) Then lLower = lLower + 1 Else lMixed = lMixed + 1 End If End If End If Next Select Case UCase(sCase) Case "U" CountCase = lUpper Case "L" CountCase = lLower Case "M" CountCase = lMixed Case Else CountCase = CVErr(xlErrValue) End Select End Function
Определение того, является ли ячейка верхним, нижним или смешанным регистром, очевидно, является сутью макроса, такого как этот. Для такого определения используется тот же процесс, что и в формулах рабочего листа: сравнивать содержимое ячейки с преобразованием этого содержимого в верхний или нижний регистр. В этом макросе значение ячейки (vValue) сравнивается с vValue, преобразованным с помощью функции UCase или LCase.
Функция также игнорирует ячейки, оценку которых не имеет смысла.
Он игнорирует ячейки, содержащие числовые значения, логические значения, значения ошибок, пустые ячейки и ячейки, содержащие только пробелы. Если числовое значение отформатировано как текст, функция считает эту ячейку прописной. Чтобы использовать эту пользовательскую функцию, используйте на рабочем листе формулу, например следующую:
=COUNTCASE(A1:A100, "L")
В качестве первого аргумента вы используете диапазон, который хотите оценить. Второй аргумент — это один символ L, M или U, указывающий, какой счет вы хотите вернуть. Если вы используете другое значение для второго аргумента, функция вернет ошибку.
_Примечание: _
Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (10593) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365. Вы можете найти версию этого совета для старого интерфейса меню Excel здесь:
link: / excel-Counting_Cells_According_to_Case [Подсчет ячеек в зависимости от случая]
.