Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Главное меню

Посчитать кол-во цифр в тексте

Автор 0mega, 19.11.2016, 07:23

« назад - далее »

0mega

доброго времени суток
2003
sub no

возможно ли здесь решение без VBA
Есть текст :
df659-76 ul5  (3 группы и 6 цифр )
8903qr17 (2 группы и 6 цифр) (
Как можно посчитать кол-во цифровых групп или хотя бы общее кол-во цифр

zs5

=ДЛСТР(G5)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G5;"0";"");"1";"");"2";"");"3";"");"4";"");"5";"");"6";"");"7";"");"8";"");"9";""))

vikttur

=СУММ(ДЛСТР(A1)-ДЛСТР(ПОДСТАВИТЬ(A1;{1;2;3;4;5;6;7;8;9;0};)))

zs5

=ЕСЛИ(И(И(КОДСИМВ(G9)>=48;КОДСИМВ(G9)<=57);И(КОДСИМВ(ПРАВСИМВ(G9;1))>=48;КОДСИМВ(ПРАВСИМВ(G9;1))<=57));ДЛСТР(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G9;" ";"");"0";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" ")))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G9;" ";"");"0";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" "));" ";""))+2;ЕСЛИ(ИЛИ(КОДСИМВ(G9)>=48;КОДСИМВ(G9)<=57;КОДСИМВ(ПРАВСИМВ(G9;1))>=48;КОДСИМВ(ПРАВСИМВ(G9;1))<=57);ДЛСТР(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G9;" ";"");"0";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" ")))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G9;" ";"");"0";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" "));" ";""))+1;ДЛСТР(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G9;" ";"");"0";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" ")))-ДЛСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(G9;" ";"");"0";" ");"1";" ");"2";" ");"3";" ");"4";" ");"5";" ");"6";" ");"7";" ");"8";" ");"9";" "));" ";""))))

zs5

последнее количество групп цифр,)
P.S. Многое может быть рациональней,)

vikttur

Количество групп:
=СУММ(--ЕСЛИ(ЕЧИСЛО(--ПСТР(A1;СТРОКА(1:20);1));ЕОШ(--ПСТР("i"&A1;СТРОКА(1:20);1))))
формула массива, вводится тремя клавишами: Ctrl+Shift+Enter

zs5

тогда количество чисел:
=СУММ(--ЕЧИСЛО(--ПСТР(A1;СТРОКА(1:20);1)))
формула массива

vikttur

Да, можно. Можно еще короче :)
=СЧЁТ(1/ПСТР(A1;СТРОКА(1:20);1))

zs5

а зачем дроби
=СЧЁТ(--ПСТР(A1;СТРОКА(1:20);1))

vikttur


0mega

zs5, здравствуйте
Цитата: zs5 от 19.11.2016, 10:08
=ДЛСТР(G5)-ДЛСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ...
3-ий excel ограничивает ПОДСТАВИТЬ 7-ю вложениями
Но идею понял. Спасибо

0mega

vikttur, спасибо за ответ

Цитата: vikttur от 19.11.2016, 13:02

=СУММ(--ЕСЛИ(ЕЧИСЛО(--ПСТР(A1;СТРОКА(1:20);1));ЕОШ(--ПСТ("i"&A1;СТРОКА(1:20);1))))

Что такое ""i"" и его назначение ?

vikttur

Для смещения добавляем любой нечисловой символ

0mega

А почему обычного числа не достаточно ?

vikttur

Не только не нужно, но и вредно :)

Если символ текста =число и символ перед ним <>число, то это начало числового блока символов. А как проверить первый символ, если перед ним ничего нет? Правильно: добавить нечисловой символ.