Excel-подсчет букв и цифр отдельно в одной ячейке
мне нужен способ подсчета чисел и букв отдельно в одной ячейке.
например, если ячейка содержит 1234567ABC
Мне нужно иметь возможность выводить это как
- "7 цифр" и
- "3 буквы".
Я не могу придумать, как использовать len()
функция, которая будет работать, и countif
считает только сами клетки.
любая помощь будет оценили.
2 ответов
если каждая ячейка заполнена только цифрами и буквами, быстрый способ не-vba выполнить это-вложить функцию замены 10 раз, чтобы удалить 10 числовых символов. у тебя осталась только альфа. Тогда вы можете len()
Альфа-текст / вычесть это число из исходной длины, чтобы получить численное длина.
предполагая, что "1234567ABC" находится в ячейке A1:
эта формула дает количество букв. (3)
=LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,""))
эта формула дает общее количество: (7)
=LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,""))
если вы хотите начать обработку данных другими способами / более подробно, вероятно, потребуется решение VBA.
Примечание
чтобы соответствовать требованиям в исходном сообщении, добавьте этот суффикс в конец приведенных выше формул:
=x & " Numbers / Letters"
где x = две вышеуказанные формулы. это добавит текст после расчетного числа.
далее Чтение:
следующая ссылка описывает VBA UDF, который делает что-то подобное: http://www.mrexcel.com/forum/excel-questions/16364-how-remove-numbers.html
Дополнительные Обновления (спасибо lori_m)
эту формулу намного проще читать / обновлять:
=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9,0},"")))
из моего ответа в анализ формата Альфа-числовой строки:
для более подробного ответа эта строка
1234567ABC456
будет сообщено как
7N3L3N
такое регулярное выражение сделает работу
- пресс altf11 вместе, чтобы пойти VBE
- Вставить Модуль
- скопируйте и вставьте код ниже
- пресс altf11 вместе вернуться к В Excel
затем вы можете использовать функцию (которая также обнаруживает недопустимые строки) в Excel, т. е. в Б1=AlphaNumeric(A1)
Function AlphaNumeric(strIn As String) As String
Dim objRegex As Object
Dim objRegMC As Object
Dim objRegM As Object
Dim strOut As String
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.ignorecase = True
.Pattern = "[^\w]"
If .test(strIn) Then
AlphaNumeric = "One or more characters is invalid"
Else
.Pattern = "(\d+|[a-z]+)"
Set objRegMC = .Execute(strIn)
For Each objRegM In objRegMC
strOut = strOut & (objRegM.Length & IIf(IsNumeric(objRegM), "N", "L"))
Next
AlphaNumeric = strOut
End If
End With
End Function