Страницы: 1
RSS
Автоподсчёт количества букв в тексте ячейки., В ячейке пишется произвольный текст. В другой ячейке должен произойти автоподсчёт количества букв этого текста.
 
Кроме этого еще в 2-х других ячейках считаются не буквы, а символы без пробелов и с пробелами.
Пример во вложенном файле, открыв который станет более понятна суть задачи.
 
Встроенная функция ДЛСТР().
Неизлечимых болезней нет, есть неизлечимые люди.
 
TheBestOfTheBest, спасибо, на функция ДЛСТР() подходит только для 3-го столбца, где идёт подсчёт всех символов с пробелами.
 
Стандартная функция удаления пробелов.
Неизлечимых болезней нет, есть неизлечимые люди.
 
В файле считает только буквы русского алфавита. Иностранный алфавит - просто символ.
 
Макрос
Код
Sub Podschet()
Dim i As Long
Dim iLastRow As Long
Dim j As Integer
Dim Probel As Integer
Application.ScreenUpdating = False
   iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
  For i = 2 To iLastRow
      Cells(i, 2) = 0
      Probel = 0
    For j = 1 To Len(Cells(i, 1))
      If Asc(Mid(Cells(i, 1), j, 1)) >= 192 And Asc(Mid(Cells(i, 1), j, 1)) <= 223 _
      Or Asc(Mid(Cells(i, 1), j, 1)) >= 224 And Asc(Mid(Cells(i, 1), j, 1)) <= 255 Then
         Cells(i, 2) = Cells(i, 2) + 1
      ElseIf Asc(Mid(Cells(i, 1), j, 1)) = 32 Then
         Probel = Probel + 1
      End If
    Next
         Cells(i, 3) = Len(Cells(i, 1)) - Probel
         Cells(i, 4) = Len(Cells(i, 1))
  Next
Application.ScreenUpdating = True
End Sub
 
gling, спасибо, замечательно! Иностранные буквы и не нужны и даже лучше, если они будут считаться безликими символами. Будем патриотами! )))))
Насчёт подсчёта слогов и подсчёта слов спрашивать не стоит? Нереально наверное?
 
Kuzmich, спасибо за макрос!
 
Уже час смотрю на формулу Владимира (gling)
Код
=СУММ(--ЕЧИСЛО(ПОИСКПОЗ(ПСТР(A2;СТРОКА($A$1:$A$999);1);СИМВОЛ(СТРОКА($A$192:$A$223));1)))
и не могу понять, как она букву "ё" отлавливает?
 
Цитата
novomaster написал: Насчёт подсчёта слогов и подсчёта слов...
Попробовал слоги (гласные буквы) по аналогии формулы Владимира подсчитать, но почему-то формула
Код
=СУММ(--ЕЧИСЛО(ПОИСКПОЗ(ПСТР(A2;СТРОКА($A$1:$A$999);1);{"а":"е":"ё":"и":"о":"у":"ы":"э":"ю":"я"};)))
воспринимает "?" как гласную. 8-0
Количество слов, может, подсчитать количество пробелов +1.
Код
=ДЛСТР(СЖПРОБЕЛЫ($A2))-ДЛСТР(ПОДСТАВИТЬ($A2;" ";""))+1
Изменено: Алишер Шакиров - 11.07.2015 11:31:22
 
Цитата
Алишер Шакиров написал: почему-то формула ... воспринимает "?" как гласную.
Алишер, здесь "?" выступает в роли подстановочного знака.
модификация:
Код
=СУММ(--ЕЧИСЛО(ПОИСКПОЗ(ПСТР(ПОДСТАВИТЬ(A2;"?";"");СТРОКА($A$1:$A$999);1);{"а":"е":"ё":"и":"о":"у":"ы":"э":"ю":"я"};)))

кстати, такая же проблема будет с символом "*".
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
ikki написал: здесь "?" выступает в роли подстановочного знака.
Вот жеж, не догадался. Саша, спасибо.
 
Алишер Шакиров, то есть выхода нет? Так и будет "?" считаться за гласную?
 
а вы не все сообщения читаете, что ли?
#11 не видели?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, просто я не разбираюсь в сложных формулах и поэтому в суть вашей с Алишером беседы не вникаю. Алишер прислал пример, в котором есть решение, поэтому ему и ответил. А вашу формулу я попробовал скопировать и вставить в пример Алишера - вообще ничего не считает. Уверен, что формула ваша правильная и это из-за моего незнания так получается криво, но факт остается фактом: для меня задача осталась открытой.
 
=СУММПРОИЗВ(--ЕЧИСЛО(1/(ПОИСК(ПСТР(A2;СТРОКА($1:$999);1);"zёуеыаоэяию")-1)))
 
Цитата
novomaster написал: и поэтому в суть вашей с Алишером беседы не вникаю
А зря. Решается Ваша задача.
 
Цитата
novomaster написал: то есть выхода нет?
Есть.
Размещаете вопрос в разделе "работа", платите деньги, и вникать ни во что не нужно.
 
Цитата
novomaster написал: А вашу формулу я попробовал скопировать и вставить в пример Алишера - вообще ничего не считает.
Может потому, что это формулы массива. Т.е. после вставки нужно нажимать не просто Enter, а одновременно Ctrl/Shift/Enter.
Страницы: 1
Читают тему
Наверх