Макрос excel количество символов в ячейке excel

Помогаю со студенческими работами здесь

Как подсчитать сумму в итоговой ячейке по определенному значению если в ячейке есть буквы и цыфры
Добрый день, всем.
Помогите пожалуйста, как можно посчитать сумму в итоговой ячейке по…

Можно ли как-то изменить в настройках максимальное количество выводимых цифр (значения числа) в ячейке
То количество цифр которое фактически получается у значения числа равного от (171!) и более.
А то…

Как подсчитать количество измененных символов?
Условие задачи такое: заменить все большие буквы на маленькие и подсчитать количество замен. Каким…

Как подсчитать количество символов в файле???
Как подсчитать количество символов в файле, а потом вывести на экран определенное количество…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

 

Ivann

Пользователь

Сообщений: 6
Регистрация: 25.02.2014

Всем доброго дня! Подскажите пожалуйста способ подсчёта с помощью макроса количества символов «U»  в каждой ячейке, разделители (например запятая, пробел или какие-то ещё) могут быть, а могут и отсутствовать. Буду очень благодарен если подскажете не готовое решение, а только нужную команду VBA  с её синтаксисом (желательно подробно, как для совсем новичка) — остальное постараюсь сам сделать. В прилагаемом примере, по-моему, всё подробно описано.

 

V

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

#2

25.02.2014 10:05:24

формулой выглядело бы так  ;)

Код
=СУММПРОИЗВ(ДЛСТР(D2:D5)-ДЛСТР(ПОДСТАВИТЬ(D2:D5;"U";""))) 
 

Ivann

Пользователь

Сообщений: 6
Регистрация: 25.02.2014

Спасибо за формулу, попробую и с ней реализовать нужное мне, но всё же лучше макрос.

 

V

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

#4

25.02.2014 10:15:20

для одной ячейки

Код
UBound(Split(ActiveCell, "U")) 
 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#5

25.02.2014 10:18:25

словами:
заменить U на пусто и посчитать разницу в   длине строки до и после замены

на vba:

Код
Dim n&, x
For Each x In [d2:d5].Value
 n = n + Len(x) - Len(Replace(x, "U", "")
Next x
[d7] = n

Живи и дай жить..

 

Ivann

Пользователь

Сообщений: 6
Регистрация: 25.02.2014

Вот! То что нужно, только не могли бы Вы подробнее написать как работают эти команды (Split), а лучше как это работает в совокупности?
Если у Вас нет времени, то всё равно спасибо — Вы очень мне помогли!

 

Ivann

Пользователь

Сообщений: 6
Регистрация: 25.02.2014

Слэн, спасибо! Если возможно объясните подробнее как работает строка (n = n + Len(x) — Len(Replace(x, «U», «») ) — я в ней не всё понимаю.

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

я же «словами» написал..

идете циклом for each x in по массиву [d2:d5].value

каждый раз меняете в x все U на пустые значения

сравниваете длину len(x) до и len(replace) после замены и накапливаете ее в n

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

spit тоже можно, но мне кажется медленнее работает, впрочем, мерять надо

 

Ivann

Пользователь

Сообщений: 6
Регистрация: 25.02.2014

Всё, Слэн! Спасибо! Мне было непонятно что такое len(replace) — разъяснили. Будем считать закрытой эту тему. Огромное спасибо всем участникам!

 

V

Пользователь

Сообщений: 5018
Регистрация: 22.12.2012

Split делит текст в ячейке на части используя указанный разделитель. т.е. U159U158 делится на 3 части и получается до первой U часть (маркеруется 0), между первой и второй (1), после второй (2).
UBound — выводит последнее значение т.е. 2

 

Ivann

Пользователь

Сообщений: 6
Регистрация: 25.02.2014

#12

25.02.2014 10:43:09

V, Спасибо! Всё теперь мне понятно!

Avsha, Могу предложить ещё один вариант.

Найдите рабочую книгу PERSONAL.XLS, перейдите в модуль ThisWorkbook (ЭтаКнига) и скопируйте туда этот код :

Код: Выделить всё

Dim Cls As New Class1

Private Sub Workbook_Open()
With Application.CommandBars("Cell").Controls.Add _
     (Type:=msoControlEdit, Temporary:=True)
     .BeginGroup = True
     .Style = msoButtonIcon
     .Caption = "Кол-во символов"
End With
Set Cls.xlApp = Application
End Sub

Затем создайте модуль класса — Class1 и скопируйте :

Код: Выделить всё

Public WithEvents xlApp As Application

Private Sub xlApp_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Excel.Range, Cancel As Boolean)
iCount = Evaluate("Sum(Len(" & Target.Address & "))")

Application.CommandBars("Cell").Controls("Кол-во символов").Text = _
IIf(IsError(iCount), "Ошибка", iCount)
End Sub

Теперь, при следующем запуске MS Excel (если Вы конечно сохранили изменения в личной книге макросов) Вам будет достаточно выделить ячейку или диапазон ячеек и кликнуть правой кнопкой мышки.

Примечание : На самом деле можно использовать ~ любую рабочую книгу. Для этого её достаточно расположить в стандартной или альтернативной папке автозагрузки.

Стандартной является папка XLSTART, которая в MS Excel 97 располагается, как правило — Program FilesMicrosoft OfficeOfficeXLStart
Альтернативную папку автозагрузки можно выбрать самому (меню Сервис — команда Параметры — закладка Общие — поле Каталог автозагрузки )
Также можно использовать надстройки (.xla)

При желании, эту рабочую книгу (.xls) можно сделать скрытой (меню Окно — команда Скрыть )

P.S. Что касается литературы, то это вопрос не ко мне …

Let’s say I have this variable:

word = «habit»

which command in VBA will allow me to count how many characters are there in this variable (in my case it’s 5).

Important: the variable «word» contains only one word, no spaces, but may have contain numbers and hyphens.

asked Nov 12, 2009 at 20:19

brilliant's user avatar

4

Do you mean counting the number of characters in a string? That’s very simple

Dim strWord As String
Dim lngNumberOfCharacters as Long

strWord = "habit"
lngNumberOfCharacters = Len(strWord)
Debug.Print lngNumberOfCharacters

answered Nov 12, 2009 at 20:23

Ben McCormack's user avatar

Ben McCormackBen McCormack

31.8k46 gold badges145 silver badges221 bronze badges

Len(word)

Although that’s not what your question title asks =)

answered Nov 12, 2009 at 20:22

David Hedlund's user avatar

David HedlundDavid Hedlund

128k31 gold badges201 silver badges221 bronze badges

Try this:

word = "habit"
findchar = 'b"
replacechar = ""
charactercount = len(word) - len(replace(word,findchar,replacechar))

answered Jun 26, 2015 at 14:40

user5053510's user avatar

3

Len is what you want.

word = "habit"  
length = Len(word)

answered Nov 12, 2009 at 20:22

Austin Salonen's user avatar

Austin SalonenAustin Salonen

48.8k15 gold badges108 silver badges139 bronze badges

Use the Len function

length = Len(myString)

answered Nov 12, 2009 at 20:22

Robert Harvey's user avatar

Robert HarveyRobert Harvey

177k47 gold badges333 silver badges499 bronze badges

Содержание

  • Подсчет знаков
    • Способ 1: подсчет символов
    • Способ 2: подсчет символов в столбце
    • Способ 3: подсчет символов в нескольких ячейках с помощью автосуммы
    • Способ 4: подсчет символов в нескольких ячейках при помощи функции
  • Вопросы и ответы

Подсчет символов в ячейках в Microsoft Excel

Иногда наступает необходимость узнать, сколько символов содержится в конкретной ячейке. Конечно, можно просто подсчитать вручную, но что делать, если элементов много, а подсчет следует проводить с постоянно меняющимся содержимым для определенных целей? Давайте узнаем, как подсчитать количество знаков в Экселе.

Подсчет знаков

Для подсчета символов в Excel существует специальная функция, которая называется «ДЛСТР». Именно с её помощью можно просуммировать знаки в конкретном элементе листа. Существует несколько способов её использования.

Способ 1: подсчет символов

Для того, чтобы произвести подсчет всех знаков, расположенных в ячейке, используем функцию ДЛСТР, так сказать, в «чистом виде».

  1. Выделяем элемент листа, в котором должен будет выводиться результат подсчета. Кликаем на кнопку «Ввести функцию», расположенную в верхней части окна слева от строки формул.
  2. Переход в мастер функций в Microsoft Excel

  3. Запускается Мастер функций. Ищем в нем наименование ДЛСТР и жмем на кнопку «OK».
  4. Переход к функции ДЛСТР в Microsoft Excel

  5. Вслед за этим происходит открытие окна аргументов. Данная функция имеет только один аргумент – адрес конкретной ячейки. Причем нужно заметить, что в отличие от большинства других операторов, этот не поддерживает ввод ссылок на несколько ячеек или на массив. В поле «Текст» вводим вручную адрес элемента, в котором нужно подсчитать символы. Можно сделать по-другому, что будет проще для пользователей. Устанавливаем курсор в поле аргумента и просто кликаем по нужной области на листе. После этого её адрес появится в поле. Когда данные внесены, жмем на кнопку «OK».
  6. Аргументы функции ДЛСТР в Microsoft Excel

  7. Как видим, после этого результат расчета количества знаков выводится на экран.

Результат подсчета количества символов функцией ДЛСТР в Microsoft Excel

Способ 2: подсчет символов в столбце

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

  1. Становимся в нижний правый угол ячейки с формулой. Появляется маркер выделения. Зажимаем левую кнопку мыши и тянем его параллельно той области, в которой хотим подсчитать количество символов.
  2. Маркер выделения в Microsoft Excel

  3. Формула копируется на весь диапазон. Результат сразу же виден на листе.

Примменение автосуммы в Microsoft Excel

Урок: Как сделать автозаполнение в Excel

Способ 3: подсчет символов в нескольких ячейках с помощью автосуммы

Как было сказано выше, аргументом оператора ДЛСТР могут выступать только координаты одной ячейки. Но что делать, если нужно посчитать общую сумму символов в нескольких из них? Для этого очень удобно применить функцию автосуммы.

  1. Подсчитаем количество знаков для каждой отдельной ячейки, как это было описано в предыдущем варианте.
  2. Выделяем диапазон, в котором указано количество символов, и жмем на кнопку «Сумма», расположенную во вкладке «Главная» в блоке настроек «Редактирование».
  3. Примменение автосуммы в Microsoft Excel

  4. После этого общая сумма знаков во всех элементах будет отображена в отдельной ячейке рядом с диапазоном выделения.

Сумма символов всех ячеек в Microsoft Excel

Lumpics.ru

Урок: Как посчитать сумму в Экселе

Способ 4: подсчет символов в нескольких ячейках при помощи функции

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

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

    =СУММ(ДЛСТР(адрес_ячейки1);ДЛСТР(адрес_ячейки2);…)

  2. Функция СУММ в Microsoft Excel

  3. После того, как функция с адресами всех ячеек, количество символов в которых нужно подсчитать, введена, жмем на кнопку ENTER. На экран выводится общая сумма сложения знаков.

Рассчет суммы функцией символов СУММ в Microsoft Excel

Как видим, существует несколько способов подсчета количества символов в отдельных ячейках, так и общего числа знаков во всех элементах диапазона. В каждом из вариантов данная операция осуществляется при помощи функции ДЛСТР.

Еще статьи по данной теме:

Помогла ли Вам статья?

Понравилась статья? Поделить с друзьями:
  • Макрос excel кнопка перехода
  • Макрос excel пример простейшего макроса
  • Макрос excel книга скачать
  • Макрос excel преобразовать текст в число в excel
  • Макрос excel как узнать цвет ячейки