Excel повторить значение ячейки

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше

В этой статье описаны синтаксис формулы и использование rePT
 в Microsoft Excel.

Описание

Повторяет текст заданное число раз. Функция ПОВТОР используется для заполнения ячейки заданным количеством вхождений текстовой строки.

Синтаксис

ПОВТОР(текст;число_повторений)

Аргументы функции ПОВТОР описаны ниже.

  • Текст    Обязательный. Повторяемый текст.

  • Число_повторений    Обязательный. Положительное число, определяющее, сколько раз требуется повторить текст.

Замечания

  • Если число_повторений равно 0, функция ПОВТОР возвращает пустую строку («»).

  • Если число_повторений не является целым числом, то оно усекается.

  • Результат функции ПОВТОР не должен превышать 32 767 знаков, в противном случае функция ПОВТОР возвращает значение ошибки #ЗНАЧ!.

Пример

Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.

Формула

Описание

Результат

=ПОВТОР(«*-«; 3)

Возвращает последовательность из трех звездочек и трех дефисов (*-).

*-*-*-

=ПОВТОР(«-«;10)

Возвращает последовательность из 10 дефисов (-).

———-

Нужна дополнительная помощь?

Например, у вас есть список значений в столбце A, и вы хотите повторить значения определенное количество раз в зависимости от количества раз в столбце B, как показано на скриншоте слева, как вы могли бы добиться этого в Excel?

  • Повторите значения ячеек X раз с формулой и вспомогательным столбцом
  • Повторить значения ячеек X раз с кодом VBA
  • Копируйте и вставляйте значения ячеек X раз с потрясающей функцией

Повторите значения ячеек X раз с формулой и вспомогательным столбцом

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

1. Вставьте столбец слева от столбца A и введите 1 в ячейку A2, см. Снимок экрана:

2. Затем положите эту формулу = A2 + C2 в A3 и перетащите маркер заполнения в ячейку A6, см. снимок экрана:

3. Затем введите 1 в ячейку D2 и заполните число, перетащив Автозаполнение на 12, что является общим числом раз в столбце C, см. Снимок экрана:

4. Затем введите эту формулу = ВПР (D2; $ A $ 1: $ B $ 6,2) в ячейку E2 и скопируйте, вы получите следующий результат:

  • Заметки:
  • 1. В этой формуле D2 обозначает первую ячейку, которую вы заполняете числовой последовательностью, и A1: B6 обозначает диапазон первого вспомогательного столбца и исходных значений ячеек, которые необходимо повторить.
  • 2. После получения повторяющихся значений вы можете скопировать и вставить их как значения в любое другое место.

Легко копируйте и вставляйте строки X раз на основе определенного числа

Обычно нет хорошего метода для многократного копирования и вставки строк, за исключением ручного копирования и вставки. Но с Kutools for Excel‘s Повторяющиеся строки / столбцы на основе значения ячейки функция, вы можете легко решить эту проблему. Нажмите, чтобы скачать Kutools for Excel!

Kutools for Excel: с более чем 300 удобными надстройками Excel, которые можно попробовать бесплатно без ограничений в течение 60 дней. Загрузите и бесплатную пробную версию прямо сейчас!


Повторить значения ячеек X раз с кодом VBA

Если вы считаете, что первый метод сложен для понимания, здесь я также могу представить вам код VBA для его решения.

1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

2. Нажмите Вставить > Модулии вставьте следующий код в Окно модуля.

Код VBA: повторить значения ячеек X раз

Sub CopyData()
'Updateby Extendoffice
Dim Rng As Range
Dim InputRng As Range, OutRng As Range
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
Set OutRng = OutRng.Range("A1")
For Each Rng In InputRng.Rows
    xValue = Rng.Range("A1").Value
    xNum = Rng.Range("B1").Value
    OutRng.Resize(xNum, 1).Value = xValue
    Set OutRng = OutRng.Offset(xNum, 0)
Next
End Sub

3, Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится диалоговое окно с напоминанием о выборе диапазона, который содержит значения и повторяющиеся времена, см. снимок экрана:

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

5. Затем нажмите OK, и вы получите результат, что выбранные вами значения были повторены указанное количество раз по мере необходимости.


Копируйте и вставляйте значения ячеек X раз с потрясающей функцией

Иногда вам может потребоваться скопировать и вставить значения ячеек x раз в зависимости от определенного числа, Kutools for Excel‘s Повторяющиеся строки / столбцы на основе значения ячейки может помочь вам быстро скопировать и вставить строки на основе указанного вами числа.

Советы:Чтобы применить это Повторяющиеся строки / столбцы на основе значения ячейки функция, во-первых, вы должны скачать Kutools for Excel, а затем быстро и легко примените эту функцию.

После установки Kutools for Excel, пожалуйста, сделайте так:

1. Нажмите Кутулс > Вставить > Повторяющиеся строки / столбцы на основе значения ячейки, см. снимок экрана:

2. В Копировать и вставлять строки и столбцы диалоговое окно, выберите Копировать и вставлять строки вариант в Тип раздел, затем выберите диапазон данных, который вы хотите продублировать, а затем укажите время повторения для копирования и вставки строк, см. снимок экрана:

4, Затем нажмите Ok or Применить кнопку, вы получите такой результат, как вам нужно:

Нажмите, чтобы скачать Kutools for Excel и бесплатная пробная версия прямо сейчас!


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

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

Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью формулы
Повторяйте значение ячейки до тех пор, пока новое значение не будет отображаться или не будет достигнуто с помощью ссылочного значения выше
Повторяйте значение ячейки, пока новое значение не будет видно или достигнуто с помощью Код VBA
Легко повторять значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто всего несколькими щелчками мыши


Содержание

  1. Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью формулы
  2. Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с указанием значения выше
  3. Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью кода VBA
  4. Легко повторять значение ячейки до нового значение отображается или достигается только несколькими щелчками мыши
  5. Демо: легко повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью Kutools for Excel
  6. Статьи по теме:

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

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

1. В новом столбце выберите пустую ячейку, которая находится рядом с ячейкой (E2), вам нужно повторить ее значение, затем введите формулу = E2 в панель формул и нажмите клавишу Enter. См. Снимок экрана:

2. Выберите следующую ячейку (F3) в столбце справки, введите формулу = IF (E3 = “”, F2, E3) в панель формул, затем нажмите клавишу Enter .

3. Продолжая выбирать ячейку F3, перетащите маркер заполнения вниз, чтобы повторять все значения ячеек, пока не появится новое значение. См. Снимок экрана:


Легко повторять значение ячейки, пока новое значение не будет достигнуто в Excel:

Утилита Заполнить пустые ячейки из Kutools for Excel может помочь вам повторять значение ячейки в списке до тех пор, пока новое значение не появится или не будет достигнуто в Excel, как показано на скриншоте ниже.
Загрузите и попробуйте прямо сейчас! (30-дневная бесплатная пробная версия)


Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с указанием значения выше

Помимо приведенной выше формулы, вы можете сначала выбрать все пустые ячейки, а затем ссылаться на все приведенные выше значения, чтобы заполнить пустые ячейки сочетаниями клавиш.

1. Выберите столбец, в котором необходимо повторить значение ячейки, затем нажмите клавишу F5 , чтобы открыть диалоговое окно Перейти , затем нажмите Special .

2. В диалоговом окне Перейти к специальному выберите параметр Пробелы , а затем нажмите кнопку ОК . См. Снимок экрана:

3. Теперь все пустые ячейки в выбранном столбце выделены, введите знак равенства = , нажмите клавишу со стрелкой вверх один раз, а затем нажмите Ctrl + Нажмите одновременно.

Затем вы увидите, что значение ячейки в выбранном столбце повторяется до тех пор, пока не появится новое значение, как показано на скриншоте ниже:


Повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью кода VBA

Следующий код VBA также может помочь вам повторить значение ячейки до тех пор, пока новое значение не появится в определенном столбце Excel.

1. Выберите диапазон столбцов, в котором необходимо повторять значение ячейки, пока не появится новое значение, затем нажмите одновременно клавиши Alt + F11 , чтобы открыть Microsoft Окно Visual Basic для приложений .

2. В окне Microsoft Visual Basic для приложений нажмите Вставить > Модуль . Затем скопируйте и вставьте приведенный ниже код VBA в окно модуля.

Код VBA: повторяйте значение ячейки, пока новое значение не появится в Excel

3. Нажмите клавишу F5 , чтобы запустить код. Затем все пустые ячейки в выбранном диапазоне столбцов немедленно заполняются значением выше.


Легко повторять значение ячейки до нового значение отображается или достигается только несколькими щелчками мыши

В этом разделе представлена ​​служебная программа Заполнить пустые ячейки из Kutools for Excel . С помощью этой утилиты вы можете легко повторять значение ячейки до тех пор, пока новое значение не будет видно с помощью всего нескольких щелчков мышью.

Перед применением Kutools for Excel , пожалуйста, сначала загрузите и установите его .

1. Выберите диапазон столбцов, в котором необходимо повторить значение ячейки, затем нажмите Kutools > Вставить > Заполнить пустые ячейки . См. Снимок экрана:

2. В диалоговом окне Заполнить пустые ячейки выберите На основе значений в разделе Заполнить , выберите Вниз в разделе Параметры и, наконец, нажмите кнопку ОК . См. Снимок экрана:

Затем все пустые ячейки заполняются указанным выше значения ячеек сразу же, как показано на скриншоте ниже.

Если хотите чтобы получить 30-дневную бесплатную пробную версию этой утилиты, нажмите, чтобы загрузить ее , а затем перейдите к применению операции в соответствии с вышеуказанными шагами.


Демо: легко повторяйте значение ячейки до тех пор, пока новое значение не появится или не будет достигнуто с помощью Kutools for Excel


Статьи по теме :

  • Как повторить символ n раз в ячейке в Excel?
  • Как повторить строки поверх каждой распечатки, кроме последней страницы в Excel?

Содержание

  1. Общие горячие клавиши программы
  2. Перемещение по рабочему листу или ячейке
  3. Функция: REPT (ПОВТОР)
  4. Как можно использовать функцию REPT (ПОВТОР)?
  5. Синтаксис REPT (ПОВТОР)
  6. Ловушки REPT (ПОВТОР)
  7. Ищем повторения: текст по столбцам и формула массива
  8. Выделение цветом повторов внутри ячейки макросом
  9. Как посчитать частоту в Excel по формуле
  10. Используя функцию СЧЁТЕСЛИ
  11. Используем функцию СЧЁТЕСЛИМН
  12. Просмотр кода VBA
  13. Запуск записанного макроса в Excel
  14. Расширение файлов Excel, которые содержат макросы
  15. Запись макроса
  16. Работа с макросами, записанными в Excel
  17. Работа с записанным кодом в редакторе Visual Basic (VBE)
  18. Запись макроса
  19. Работа с макросами, записанными в Excel
  20. Дополнительные сведения
  21. Редактирование макроса
  22. Ввод в код макроса функций и процедур
  23. Функция InputBox
  24. Процедура While
  25. Функция MsgBox
  26. Как повторить формулу?

Общие горячие клавиши программы

Во-первых, давайте взглянем на некоторые общие сочетания клавиш для управления книгами.

  • Ctrl + N : создать новую книгу
  • Ctrl + O: открыть существующую книгу
  • Ctrl + S: сохранить книгу
  • F12: откройте диалоговое окно «Сохранить как»
  • Ctrl + W: закрыть книгу
  • Ctrl + F4: Закрыть Excel
  • F4: Повторите последнюю команду или действие.
  • Shift + F11: добавьте новый лист
  • Ctrl + Z: отменить действие
  • Ctrl + Y: повторить действие
  • Ctrl + F2: переключение в режим предварительного просмотра
  • F1: откройте панель справки
  • Alt + Q: перейдите в поле «Скажите мне, что вы хотите сделать»
  • F7: проверить орфографию
  • F9: рассчитать все листы во всех открытых книгах
  • Shift + F9: вычислять активные рабочие листы
  • Alt или F10: включение или выключение подсказок
  • Ctrl + F1: показать или скрыть ленту
  • Ctrl + Shift + U: развернуть или свернуть панель формул
  • Ctrl + F9: свернуть окно рабочей книги
  • F11 : Создайте гистограмму на основе выбранных данных (на отдельном листе)
  • Alt + F1: создать встроенную гистограмму на основе выбранных данных (тот же лист)
  • Ctrl + F: поиск в электронной таблице или поиск и замена
  • Alt + F: открыть меню вкладки «Файл»
  • Alt + H: перейдите на вкладку «Главная»
  • Alt + N: открыть вкладку «Вставка»
  • Alt + P: переход на вкладку «Макет страницы»
  • Alt + M: перейдите на вкладку «Формулы»
  • Alt + A: перейдите на вкладку «Данные»
  • Alt + R: перейдите на вкладку «Обзор»
  • Alt + W: переход на вкладку «Просмотр»
  • Alt + X: переход на вкладку надстроек
  • Alt + Y: перейдите на вкладку «Справка»
  • Ctrl + Tab: переключение между открытыми книгами
  • Shift + F3: вставить функцию
  • Alt + F8: создание, запуск, редактирование или удаление макроса
  • Alt + F11: откройте редактор Microsoft Visual Basic для приложений

Перемещение по рабочему листу или ячейке

Вы можете использовать сочетания клавиш, чтобы легко перемещаться по всему рабочему листу, внутри ячейки или по всей вашей книге.

  • Стрелка влево / вправо: перемещение одной ячейки влево или вправо
  • Ctrl + стрелка влево / вправо: переход в самую дальнюю ячейку слева или справа в строке
  • Стрелка вверх / вниз: перемещение одной ячейки вверх или вниз
  • Ctrl + стрелка вверх / вниз: переход в верхнюю или нижнюю ячейку в столбце
  • Tab: переход к следующей ячейке
  • Shift + Tab: переход к предыдущей ячейке
  • Ctrl + End: переход в самую нижнюю правую ячейку
  • F5: перейдите в любую ячейку, нажав F5 и набрав координату ячейки или имя ячейки.
  • Home: перейдите в крайнюю левую ячейку в текущей строке (или перейдите к началу ячейки при редактировании ячейки)
  • Ctrl + Home: переход к началу рабочего листа
  • Page Up / Down: перемещение одного экрана вверх или вниз на листе
  • Alt + Page Up / Down: переместить один экран вправо или влево на листе
  • Ctrl + Page Up / Down: переход на предыдущий или следующий рабочий лист

Функция: REPT (ПОВТОР)

Функция REPT (ПОВТОР) повторяет текстовую строку заданное количество раз. Функция REPT (ПОВТОР) повторяет текстовую строку заданное количество раз. Функция REPT (ПОВТОР) повторяет текстовую строку заданное количество раз.

Создавать забавные эффекты, такие как в предыдущем абзаце, будет намного легче благодаря функции REPT (ПОВТОР).

Как можно использовать функцию REPT (ПОВТОР)?

Функция REPT (ПОВТОР) может быть использована, чтобы заполнить ячейку символом, а также в таких инновационных областях применения, как:

  • Создание внутри ячейки индикатора процесса или точечной диаграммы.
  • Ведение простого подсчёта.
  • Поиск последнего текстового значения в столбце.

Синтаксис REPT (ПОВТОР)

Функция REPT (ПОВТОР) имеет следующий синтаксис:

REPT(text,number_times)
ПОВТОР(текст;число_повторений)

  • text (текст) – текст, который надо повторить.
  • number_times (число_повторений) – положительное число.

Ловушки REPT (ПОВТОР)

  • Длина текстовой строки ограничена 32767 символами. Если будет больше, то формула сообщит об ошибке.
  • Если number_times (число_повторений) будет дробным, оно будет отсечено до целого.
  • Если number_times (число_повторений) будет равно 0, результатом окажется пустая строка.

Ищем повторения: текст по столбцам и формула массива

Это не самый удобный и быстрый, но зато самый простой вариант решения задачи “на коленке”. Выделим исходный список и разобъем его на столбцы по пробелам с помощью команды Данные – Текст по столбцам (Data – Text to columns). В открывшемся окне трёхшагового Мастера выберем формат По разделителю (By delimiter) на первом шаге и поставим флажок Пробел (Space) на втором:

Если в исходных данных могут быть лишние пробелы, то лучше включить и опцию Считать последовательные разделители одним (Treat consecutive delimiters as one) – это избавит нас от лишних столбцов.

На третьем шаге в поле Поместить в зададим пустую ячейку рядом с таблицей, чтобы результаты не затёрли нам исходные данные и нажмём на Готово (Finish):

Наши данные разделятся по ячейкам. Останется подсчитать количество повторов в каждой строке с помощью небольшой, но хитрой формулы массива:

В английской версии это будет =SUMPRODUCT(N(COUNTIF(B2:G2,B2:G2)>1))

Давайте разберём логику её работы на примере первой строки.

  1. Сначала мы с помощью формулы СЧЁТЕСЛИ(B2:G2B2:G2) вычисляем по очереди количество вхождений каждого имени в диапазон B2:G2 и получаем на выходе массив {1,2,1,2,1}, т.к. Иван встречается в первой строке 1 раз, Елена – 2 раза, Сергей – 1 и т.д.
  2. Проверяем с помощью СЧЁТЕСЛИ(B2:G2;B2:G2)>1 какие из полученных чисел больше единицы, т.е. где у нас повторы. На выходе эта формула выдаст нам массив результатов проверки в виде {ЛОЖЬ, ИСТИНА, ЛОЖЬ, ИСТИНА, ЛОЖЬ}.
  3. Переводим логические значения ЛОЖЬ и ИСТИНА в более удобные для подсчета 0 и 1, соответственно, с помощью функции Ч. На выходе получаем массив {0,1,0,1,0}.
  4. Суммируем все элементы получившегося массива функцией СУММПРОИЗВ. Можно было бы использовать и обычную функцию СУММ, но тогда пришлось бы жать вместо привычного Enter сочетание клавиш Ctrl+Shift+Enter, чтобы ввести формулу как формулу массива.

По получившемуся столбцу можно легко отфильтровать строки с повторами и работать потом с ними дальше уже вручную.

Минусы такого способа, впрочем, весьма очевидны: при изменении в исходных данных придётся повторять всю процедуру заново, дубликаты не очень заметны и удалять их тоже надо врукопашную. Поэтому идём дальше.

Выделение цветом повторов внутри ячейки макросом

Если дубликаты нужно именно наглядно показать, то удобнее будет использовать для этого специальный макрос. Откроем редактор Visual Basic одноимённой кнопкой на вкладке Разработчик (Developer – Visual Basic) или сочетанием клавиш Alt+F11. Вставим в книгу новый пустой модуль через меню Insert – Module и скопируем туда вот такой код:

Sub Color_Duplicates() Dim col As New Collection Dim curpos As Integer, i As Integer On Error Resume Next For Each cell In Selection Set col = Nothing curpos = 1 'убираем лишние пробелы и разбиваем текст из ячейки по пробелам arWords = Split(WorksheetFunction.Trim(cell.Value), " ") For i = LBound(arWords) To UBound(arWords) 'перебираем слова в получившемся массиве Err.Clear 'сбрасываем ошибки curpos = InStr(curpos, cell, arWords(i)) 'позиция начала текущего слова col.Add arWords(i), arWords(i) 'пытаемся добавить текущее слово в коллекцию If Err.Number <> 0 Then 'если возникает ошибка - значит это повтор, выделяем красным cell.Characters(Start:=curpos, Length:=Len(arWords(i))).Font.ColorIndex = 3 cell.Characters(Start:=InStr(1, cell, arWords(i)), Length:=Len(arWords(i))).Font.ColorIndex = 3 End If curpos = curpos + Len(arWords(i)) 'переходим к следующему слову Next i Next cell End Sub 

Теперь можно вернуться в главное окно Excel, выделить ячейки с текстом и запустить созданный макрос через кнопку Макросы на вкладке Разработчик (Developer – Macros) или сочетанием клавиш Alt+F8. Этот макрос проходит по всем выделенным ячейкам и помечает повторения красным цветом шрифта прямо внутри ячейки:

Если нужно, чтобы цветом выделялись только клоны, но не первые вхождения (т.е. только вторая и третья, но не первая Алиса, например), то достаточно будет просто убрать из кода строку 20.

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

Функция ЧАСТОТА считает все фактуры, которые содержат значения, определенные в диапазоне:

Функция ЧАСТОТА является массивной функцией. Это значит, что, вводя ее в строку формул, необходимо для подтверждения ввода нажать комбинацию клавиш CTRL+SHIFT+Enter, а не просто клавишу Enter как обычно. Excel помещает тогда формулу внутрь фигурных скобок ({}), которые означают что введена формула массива.

Функция ЧАСТОТА имеет 2 аргумента:

  1. Массив данных – исходный диапазон ячеек для разделения на части.
  2. Массив интервалов – диапазон чисел, определяющих верхние границы для этих же частей.

Сначала введите в столбец E границы пределов. Значения в столбце D не имеют влияние на результат вычисления формулы. Они необходимы лишь для того, чтобы было наглядно видно где находиться нижние границы частей делений данных.

Чтобы ввести функцию ЧАСТОТА в столбце F, сначала выделите диапазон ячеек F2:F11. Не снимая выделения вводите формулу. Несмотря на то, что формула будет введена только в одной ячейке, нажатие на комбинацию клавиш CTRL+SHIFT+Enter позволит заполнить все выделенные ячейки диапазона формулой массива.

Результат возвращаемый с помощью функции ЧАСТОТА отображает, что большая часть клиентов совершает покупки на сумму в границах от 200 и до 300 во время одного визита.

Если попробовать убрать одну с ячеек в диапазоне, в котором введена функция ЧАСТОТА, Excel выдаст сообщение «Нельзя изменять часть массива». Excel воспринимает эти и другие функции массива в диапазоне ячеек как одно целое. Можно изменять диапазон целиком, но не его отдельные ячейки. Если нужно изменить границы делений данных придется удалить и заново ввести формулу всю массива.

Используя функцию СЧЁТЕСЛИ

В Excel произвести такой подсчёт чрезвычайно просто, достаточно задействовать функцию СЧЁТЕСЛИ и она за несколько секундок всё за вас сделает. В нашем случае формула будет следующего вида:

=СЧЁТЕСЛИ($B$2:$B$11;B15) В первом аргументе «диапазон» $B$2:$B$11, указываем тот диапазон ячеек, в котором и будет производиться подсчёт повторяющихся данных. Важно! Указывать случайный диапазон данных недопустимо. Его особенностью является то, что он может быть только диапазоном ячеек или ссылкой на определённую ячейку.

Вторым аргументом «критерий» ставим указание на ячейку, по которому будет производиться подсчёт аналогичных данных. Если он один вы можете его прописать вручную как текстовое слово и вместо адреса ячейки «B15» указать «Нагаев А.В.», результат будет аналогичным, но только в одном конкретном случае, возможность автоматизации таблицы тогда значительно сократится.

Дополнительная информация! Кроме прямого указания поиска данных, функция СЧЁТЕСЛИ умеет работать с символами подстановки. Таких знаков используют двух видов «?» и «*», применять их возможно только при работе с текстовыми символами. Знак «*» позволяет заменить абсолютно любое количество значений, а Знак «?» производит замену только одного символа.

Для работы с числовыми значениями необходимо применять знаки операторов сравнения: «>», «<», «<>» и «=». К примеру, для подсчёта числовых значений больше «нуля» прописывайте «>0», а для подсчёта непустых ячеек нужен указать «<>».

Используем функцию СЧЁТЕСЛИМН

Когда у вас возникает необходимость подсчитывать повторения в Excel, но уже по нескольким критериям, тогда нужно работать с функцией СЧЁТЕСЛИМН, которая легко и просто сможет это выполнить.

В моём примере я добавлю категорию продаж по городам и используя формулы соберу необходимые мне повторы:

=СЧЁТЕСЛИМН($B$2:$B$11;B14;$C$2:$C$11;C14) Замечу, что орфография функции абсолютно аналогична предыдущей функции СЧЁТЕСЛИ, разница состоит только в их количестве. В нашем примере их два, но функция умеет работать и со 127 диапазонами.

Просмотр кода VBA

Код VBA, записанный в макрос, размещается в модуле, который можно просмотреть в редакторе Visual Basic. Редактор можно запустить нажатием Alt+F11 (одновременное нажатие клавиш Alt и F11).

Код находится в одном из модулей, которые расположены в окне Project слева от области редактирования. Если дважды кликнуть по Module1 в окне Project, то справа появится код записанного макроса.

Запуск записанного макроса в Excel

Записывая макрос, Excel всегда создаёт процедуру Sub (не Function). Если при создании макроса к нему было прикреплено сочетание клавиш, то именно с его помощью запустить макрос будет проще всего. Существует и другой способ запустить макрос:

  • Нажмите Alt+F8 (одновременно нажмите клавиши Alt и F8
  • В появившемся списке макросов выберите тот, который нужно запустить;
  • Нажмите кнопку Выполнить (Run).

Расширение файлов Excel, которые содержат макросы

Когда вы записываете макрос или вручную записываете код VBA в Excel, вам необходимо сохранить файл с расширением файла с поддержкой макросов (.xlsm).

До Excel 2007 был достаточен один формат файла – .xls. Но с 2007 года .xlsx был представлен как стандартное расширение файла. Файлы, сохраненные как .xlsx, не могут содержать в себе макрос. Поэтому, если у вас есть файл с расширением .xlsx, и вы записываете / записываете макрос и сохраняете его, он будет предупреждать вас о сохранении его в формате с поддержкой макросов и покажет вам следующее диалоговое окно:

Если вы выберете “Нет”, Excel сохранить файл в формате с поддержкой макросов. Но если вы нажмете “Да”, Excel автоматически удалит весь код из вашей книги и сохранит файл как книгу в формате .xlsx. Поэтому, если в вашей книге есть макрос, вам нужно сохранить его в формате .xlsm, чтобы сохранить этот макрос.

Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).

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

При записи макроса записываются все действия, описанные в Visual Basic для приложений (VBA) коде. Эти действия могут включать ввод текста или чисел, нажатие ячеек или команд на ленте или в меню, форматирование ячеек, строк или столбцов, а также импорт данных из внешнего источника, например Microsoft Access. Приложение Visual Basic (VBA) — это подмножество мощного языка программирования Visual Basic, которое входит в большинство приложений Office. Несмотря на то, что VBA обеспечивает возможность автоматизации процессов между приложениями Office, вам не нужно знать код VBA или программное программирование, если это нужно.

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

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее. Дополнительные сведения см. в статье Отображение вкладки “Разработчик”.

Запись макроса

Перед записью макросов полезно знать следующее:

Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.

Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

Чтобы записать макрос, следуйте инструкциям ниже.

На вкладке Разработчик в группе Код нажмите кнопку Запись макроса.

В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш с CTRL+ SHIFT, так как они будут заменять собой совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос. Например, если назначить сочетание клавиш CTRL+Z (Отменить), вы не сможете использовать его для функции “Отменить” в данном экземпляре Excel.

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в указанном расположении книги , но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите пункт Личная книга макросов . Если выбрать команду Личная книга макросов, Excel создаст скрытую личную книгу макросов (личное. xlsb), если она еще не существует, и сохранит макрос в этой книге.

В поле Описание при необходимости введите краткое описание действий макроса.

Хотя поле “Описание” является необязательным, рекомендуется его заполнить. Кроме того, желательно ввести понятное описание, которое будет полезно вам и всем, кто запускает макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

Выполните действия, которые нужно записать.

На вкладке разработчик в группе код нажмите кнопку остановить запись .

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. Кроме того, можно нажать клавиши ALT+F8. При этом откроется диалоговое окно Макрос.

Внимание: Макросы нельзя отменить. Прежде чем впервые запускать записанный макрос, сохраните книгу или создайте ее копию, чтобы предотвратить внесение нежелательных изменений. Если вас не устраивают результаты выполнения макроса, вы можете закрыть книгу, не сохраняя ее.

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Сведения о параметрах безопасности макросов и их значении.

Макросы можно запускать различными способами, например с помощью сочетания клавиш, графического объекта, панели быстрого доступа, кнопки или даже при открытии книги.

С помощью редактора Visual Basic можно изменять макросы, присоединенные к книге.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

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

В поле Назначить макроса выберите макрос, который вы хотите назначить.

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Вы можете назначать макросы формам и элементам ActiveX на листе.

Открытие редактора Visual Basic

Нажмите клавиши ALT+F11.

Работа с записанным кодом в редакторе Visual Basic (VBE)

С помощью редактора Visual Basic (VBE) вы можете добавлять в записанный код собственные переменные, управляющие структуры и другие элементы, которые не поддерживает средство записи макросов. Так как средство записи макросов фиксирует почти каждый шаг, выполняемый во время записи, может также потребоваться удалить ненужный код. Просмотр записанного кода — отличный способ научиться программировать на VBA или отточить свои навыки.

Пример изменения записанного кода можно найти в статье Начало работы с VBA в Excel.

Запись макроса

Перед записью макросов полезно знать следующее:

Макрос, записанный для работы с диапазоном Excel, будет выполняться только для ячеек этого диапазона. Поэтому если вы добавите в диапазон новую строку, макрос не будет применяться к ней.

Если вам нужно записать длинную последовательность задач, советуем вместо этого использовать несколько более мелких макросов.

В макросе могут содержаться и задачи, не относящиеся к Excel. Процесс макроса может охватывать прочие приложения Office и другие программы, которые поддерживают Visual Basic для приложений (VBA). Например, вы можете записать макрос, который сначала обновляет таблицу в Excel, а затем открывает Outlook для ее отправки по электронной почте.

Макросы и средства VBA находятся на вкладке Разработчик, которая по умолчанию скрыта, поэтому сначала нужно включить ее.

Перейдите в раздел настройки _гт_ Excel . панель инструментов _Гт_ ленты _амп_.

В категории Настроить ленту в списке Основные вкладки установите флажок Разработчик, а затем нажмите кнопку Сохранить.

На вкладке Разработчик нажмите кнопку Запись макроса.

В поле Имя макроса введите название макроса. Сделайте имя понятным, чтобы можно было быстро найти нужный макрос.

Примечание: Первым символом имени макроса должна быть буква. Последующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса не должно содержаться пробелов; в качестве разделителей слов следует использовать знаки подчеркивания. Если используется имя макроса, являющееся ссылкой на ячейку, может появиться сообщение об ошибке, указывающее на недопустимое имя макроса..

В списке Сохранить в выберите книгу, в которой вы хотите сохранить макрос.

Как правило, макрос сохраняется в указанном расположении книги , но если вы хотите, чтобы макрос был доступен при использовании Excel, выберите пункт Личная книга макросов. Если выбрать команду Личная книга макросов, в Excel будет создана скрытая личная книга макросов (личное. XLSB), если он еще не существует, и сохранение макроса в этой книге. Книги в этой папке открываются автоматически при запуске Excel, а код, хранящийся в личной книге макросов, будет указан в диалоговом окне Макрос, которое описано в следующем разделе.

Чтобы назначить сочетание клавиш для запуска макроса, в поле Сочетание клавиш введите любую строчную или прописную букву. Рекомендуется использовать сочетания клавиш, которые еще не назначены другим командам, так как они будут переопределять совпадающие с ними стандартные сочетания клавиш в Excel, пока открыта книга, содержащая макрос.

В поле Описание при необходимости введите краткое описание действий макроса.

Хотя поле “Описание” является необязательным, рекомендуется его заполнить. Полезно ввести понятное описание с любой полезной информацией, которая может быть полезна Вам или другим пользователям, которые будут запускать макрос. Если у вас много макросов, описания помогут быстро определить, для чего они нужны.

Чтобы начать запись макроса, нажмите кнопку ОК.

Выполните действия, которые нужно записать.

На вкладке Разработчик щелкните Остановить запись.

Работа с макросами, записанными в Excel

На вкладке Разработчик щелкните Макросы, чтобы просмотреть макросы, связанные с книгой. При этом откроется диалоговое окно Макрос.

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

Ниже приведены дополнительные сведения о работе с макросами в Excel.

Чтобы сэкономить время на выполнении часто повторяющихся задач, можно записать соответствующую последовательность действий в виде макроса. Узнайте, как создавать и выполнять макросы.

Если книга содержит макрос VBA, который нужно использовать где-либо еще, этот модуль можно скопировать в другую книгу с помощью редактора Microsoft Visual Basic.

Назначение макроса объекту, фигуре или графическому элементу

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

В поле Назначить макроса выберите макрос, который вы хотите назначить.

Вы можете назначить макрос значку и добавить его на панель быстрого доступа или ленту.

Вы можете назначать макросы формам и элементам ActiveX на листе.

Открытие редактора Visual Basic

На вкладке Разработчик щелкните Visual Basic или выберите Сервис > Макрос > Редактор Visual Basic.

Узнайте, как найти справку по элементам Visual Basic.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.

Простую последовательность действий, которую нужно повторить несколько раз, можно записать в виде программного кода и сохранить как макрос. Если последовательность действий записана в макрос, то выполнять её можно снова и снова, просто запуская этот макрос. Это гораздо эффективнее, чем выполнять раз за разом одни и те же действия вручную.

Чтобы записать макрос, нужно включить режим записи. Это можно сделать на вкладке Вид (View) в разделе Макросы (Macros) или в меню Сервис (Tools), если у Вас Excel 2003. Ниже на картинках показано, как выглядят эти меню.

Далее откроется диалоговое окно Запись макроса (Record Macro), как показано на картинке ниже:

Здесь, по желанию, можно ввести имя и описание для макроса. Рекомендуется давать макросу такое имя, чтобы, вернувшись к нему спустя некоторое время, можно было без труда понять, для чего этот макрос нужен. Так или иначе, если не ввести для макроса имя, то Excel автоматически назовёт его Макрос1, Макрос2 и так далее.

Здесь же можно назначить сочетание клавиш для запуска записанного макроса. Запускать макрос таким способом будет значительно проще. Однако будьте осторожны! Если случайно назначить для макроса одно из предустановленных клавиатурных сочетаний Excel (например, Ctrl+C), то в дальнейшем макрос может быть запущен случайно.

Когда макросу дано подходящее имя и (при желании) задано сочетание клавиш, нажмите ОК, чтобы запустить запись макроса. С этого момента каждое действие (ввод данных, выделение ячеек, изменение формата ячеек, пролистывание листа и так далее) будет записано в макрос и сохранено в виде кода VBA.

При включении режима записи макроса в строке состояния (внизу слева) появляется кнопка Стоп. В Excel 2003 эта кнопка находится на плавающей панели инструментов.

Нажмите Стоп, когда выполните все действия, которые должны быть записаны в макрос. Теперь код записанного макроса сохранён в модуле редактора Visual Basic.

Редактирование макроса

Как видите, код макроса легко читаем и понятен. Кроме того, нам не надо нагромождать его лишними строками: так как в параметрах печати мы меняли только три пункта, остальные строки можем удалить (они будут установлены по умолчанию). Удалим ненужные строки, поставим комментарии и в итоге получим вот такой элегантный код:

Sub Форматирование_БДР()

‘ Макрос выделяет жирным курсивом итоги, форматирует отчет на печать

‘—————–

‘ Выделяем столбцы и ставим фильтр по столбцу КОД

Columns(“A:C”).Select

Selection.AutoFilter

ActiveSheet.Range(“$A$1:$C$34″).AutoFilter Field:=1, Criteria1:=”<>*.*”, _

Operator:=xlAnd

‘ Выделяем отфильтрованный диапазон полужирным шрифтом, снимаем фильтр

Range(“A1:C34”).Select

Selection.Font.Bold = True

Selection.AutoFilter

‘ Форматируем на печать: верхний колонтитул, центрирование по горизонтали, масштаб 75 %

With ActiveSheet.PageSetup

.CenterHeader = “Бюджет на январь”

.CenterHorizontally = True

.Zoom = 75

End With

End Sub

Ввод в код макроса функций и процедур

Теперь усложним код макроса, задав ему два параметра:

1. Название месяца отчета запрашиваем у пользователя.

2. Последняя строка отчета БДР (в случае если она плавающая) рассчитывается в коде макроса.

Функция InputBox

Чтобы запросить у пользователя месяц отчета, воспользуемся функцией Inputbox, которая выводит диалоговое окно, в котором пользователь может самостоятельно задать значение переменной, используемой в коде. Синтаксис функции InputBox:

Zapros = InputBox(“Текст запроса”, <“Текст в шапке окна”>, <Значение по умолчанию>,…)

где Zapros — введенная вами переменная (имя придумываете вы сами), а в скобках через запятую перечисляются аргументы функции.

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

Для удобства присвойте полученное значение функции InputBox какой-нибудь введенной вами переменной, особенно если в коде макроса вы будете несколько раз использовать значение этой функции.

Важно

Имена вводимых переменных не должны совпадать с уже занятыми VBA словами под название объектов, свойств или функций!

В нашем примере присвоим результат вызова функции InputBox переменной Mes.

Например, нельзя завести свою переменную Range, Cells или Month — компилятор VBA предупредит вас, что делать этого нельзя, и не запустит макрос, пока вы не устраните ошибку (рис. 6).

Рис. 6. Пример ошибки при заведении переменной

Не забывайте любой текст в коде брать в кавычки! В противном случае компилятор VBA будет воспринимать этот текст как команды и выдавать ошибку, так как не сможет их обработать.

Итак, приступим к редактированию кода макроса. Добавим в самое начало кода макроса строки:

‘ Запрашиваем у пользователя месяц отчета

Mes = InputBox(“Введите название месяца отчета”, , “Январь”)

Теперь при запуске макроса будет выводиться диалоговое окно, в котором пользователь самостоятельно сможет указать, за какой месяц этот отчет (рис. 7).

Рис. 7. Диалоговое окно для указания месяца

С помощью функции InputBox можно запросить у пользователя и длину отчета. Но мы научим Excel высчитывать ее самостоятельно. Для этого нам потребуется процедура While.

Процедура While

Используется в коде, если надо сделать одинаковые действия несколько раз подряд до тех пор, пока выполняется какое-либо условие. Синтаксис процедуры While:

Do While <условие, которое должно быть верным для выполнения процедуры>

<список команд>

Loop

Условие может состоять из одного выражения или содержать несколько, перечисленных через оператор AND (то есть оба условия должны быть выполнены) или OR (достаточно выполнения только одного из перечисленных условий). Также условие обязательно должно содержать переменную-счетчик (это может быть номер строки или столбца ячейки, значения которой вы проверяете).

В список команд обязательно должна входить команда наращивания переменной-счетчика, иначе процедура зациклится (так как она постоянно будет сравнивать одно и то же значение) и макрос придется прерывать принудительно.

Если макрос ушел в цикл, прервите его с помощью комбинации клавиш Ctrl+Break и либо прекратите макрос (кнопка End), либо зайдите в код макроса и исправьте ошибку (кнопка Debug). Чтобы макрос не уходил в цикл, рекомендуется включить в блок условий «защиту от дурака». Например, добавляем в условие проверку, чтобы значение счетчика не превышало определенной, заведомо достаточной для нас величины.

Рассмотрим применение процедуры While для поиска конца отчета БДР.

Как видно на рис. 4, последняя строка отчета имеет код «500». Напишем процедуру, которая будет проверять значения в ячейках столбца «А» и остановит свои действия, когда найдет ячейку с кодом «500».

Обратите внимание!

Excel иногда воспринимает числа как текст, поэтому включим два условия проверки значения ячейки и добавим «защиту от дурака» на случай, если в форме отчета случайно затрется код последней строки.

Помним, что все текстовые значения надо брать в кавычки. Числа записываем без кавычек:

‘ Ищем последнюю строку отчета

Dim Row_End As Integer ‘ Вводим переменную «счетчик номера строки»

Row_End = 1 ‘ Присваиваем ей номер 1

‘ Начинаем процедуру поиска последней строки отчета по коду «500»

Do While Cells(Row_End, 1).Value <> “500” And Cells(Row_End, 1).Value <> 500 And Row_End < 100

‘ До тех пор, пока код не равен 500 и номер строки меньше 100, выполняем наращивание счетчика

Row_End = Row_End +1

Loop

Таким образом, процедура While нам нужна только для наращивания счетчика — никаких дополнительных действий она не производит. Запомните этот прием — он часто нужен в кодировании.

Теперь заменим в изначальном коде макроса номер последней ячейки (34) на переменную Row_End. Число 34 было частью текста А1:С34, а теперь нам надо часть текста заменить на переменную. Делается это с помощью символа амперсанд &:

“текст” & переменная & “текст”.

В нашем случае ссылка на диапазон А1:С34 будет записана так: А1:С & Row_End.

Кроме того, вспоминаем, что и название отчета Бюджет на январь у нас тоже теперь содержит параметр и будет записываться так: Бюджет на & Mes.

Не забывайте оставлять пробелы в кавычках перед переменной-словом, иначе текст сольется.

Еще раз взглянем на получившийся код макроса:

Sub Форматирование_БДР()

‘ Макрос выделяет жирным курсивом итоги, форматирует отчет на печать

‘ —————–

‘ Запрашиваем у пользователя месяц отчета

Mes = InputBox(“Введите название месяца отчета”, , “Январь”)

‘ Ищем последнюю строку отчета

Dim Row_End As Integer ‘ Вводим переменную «счетчик номера строки»

Row_End = 1 ‘ Присваиваем ей номер 1

‘ Начинаем процедуру поиска последней строки отчета по коду «500»

‘ Критичным значением для «защиты от дурака» принимаем номер строки 100

Do While Cells(Row_End, 1).Value <> “500” And Cells(Row_End, 1).Value <> 500 And Row_End < 100

‘ До тех пор, пока код не равен 500 и номер строки меньше 100, выполняем наращивание счетчика

Row_End = Row_End +1

Loop

‘ Выделяем столбцы и ставим фильтр на КОД

Columns(“A:C”).Select

Selection.AutoFilter

ActiveSheet.Range(“$A$1:$C$” & Row_End).AutoFilter Field:=1, Criteria1:=”<>*.*”, _

Operator:=xlAnd

‘ Выделяем отфильтрованный диапазон полужирным шрифтом, снимаем фильтр

Range(“A1:C” & Row_End).Select

Selection.Font.Bold = True

Selection.AutoFilter

‘ Форматируем на печать: верхний колонтитул, центрирование по горизонтали, масштаб 75 %

With ActiveSheet.PageSetup

.CenterHeader = “Бюджет на ” & Mes

.CenterHorizontally = True

.Zoom = 75

End With

End Sub

Теперь макрос стал более универсальным. Добавим в него еще одну «защиту от дурака».

Если нам принципиально, правильно ли макрос нашел последнюю строку отчета, после окончания процедуры While (строка Loop) можно добавить блок проверки значения Row_End и запроса у пользователя подтверждения на продолжение макроса.

Для этого изучим функцию MsgBox, процедуру IF и команду Exit Sub.

Функция MsgBox

MsgBox — еще один способ общения с пользователем: сообщения ему какой-то информации по ходу выполнения макроса или запрос у него подтверждения по дальнейшим действиям макроса путем нажатия на кнопки вида Yes, No, Ок, Cancel.

Она имеет два вида записи:

1. Мы просто сообщаем пользователю какую-то информацию. В этом случае аргументы функции перечисляются сразу же за функцией, без использования скобок:

MsgBox “Текст сообщения”, <Вид кнопок>, <“Текст в шапке окна”>,…

На экране отобразится диалоговое окно, и после нажатия пользователем кнопки Ок продолжится выполнение макроса.

Первый вид записи функции MsgBox

Как и в случае с функцией InputBox, обязательным здесь является только первый аргумент — Текст сообщения. Остальные можно даже не указывать, сократив вид записи функции до вида:

2. Нам важно, что ответил пользователь, мы записываем его ответ в значение какой-то переменной (рис. 9). В этом случае аргументы функции заключаются в скобки, а перед функцией обязательно должна стоять переменная, в которую мы записываем, на какую кнопку нажал пользователь:

YesNo = MsgBox(“Текст сообщения”, <Вид кнопок>, <“Текст в шапке окна”>,…)

Варианты вида кнопок:

  • vbOKOnly — только кнопка ОК;
  • vbOKCanсel — кнопки ОК и Cancel;
  • vbYesNo — кнопки Yes и No;
  • vbYesNoCancel — кнопки Yes, No и Cancel.

Соответственно в зависимости от нажатой кнопки значения функции MsgBox могут быть vbOK, vbCancel, vbYes или vbNo.

Как повторить формулу?

1. Вводим формулу в какую-либо ячейку. Напоминаем, что делается это через “=”, после чего вводите нужную фунцию;

2. Нажимаем Enter. Таким образом, формула будет сохранена;

3. Нажмите на ячейку, в которую была введена формула. В правом углу внизу будет значок “+”;

4. Зажав “+”, перенесите ячейку по столбцу или же строке. То место, куда вы желаете скопировать формулу;

5. Все автоматически будет скопировано и изменено под нужные строки и столбцы excel за сколько можно собрать игровой компьютер тест производительности компьютера как усилить звук в наушниках на компьютере  

Источники

  • https://zen.yandex.ru/media/id/5b4312595dd05600a885768d/5b7ec5e9b6bb3300aade04fd
  • https://office-guru.ru/excel/30xl30d-povtor-rept-138.html
  • https://www.planetaexcel.ru/techniques/3/7991/
  • https://exceltable.com/formuly/formula-dlya-rascheta-chastoty
  • https://topexcel.ru/kak-podschityvat-povtoreniya-v-excel/
  • https://office-guru.ru/excel/zapis-makrosa-v-excel-452.html
  • https://www.hd01.ru/info/kak-zapisat-povtorjajushhiesja-dejstvija-v-excel/
  • https://www.profiz.ru/se/4_2016/pichem_macrosy/
  • https://hitech.buyon.ru/pages/kak-povtorit-formulu-na-sleduyushtie-stroki-v-excel-10491/

Функция ПОВТОР в Excel для заполнения ячейки определенным количеством вхождений текстовой строки. С помощью данной функции возвращается текстовая строка заданное пользователем количество символов раз.

Генерация звездочек пароля с функцией ПОВТОР в Excel

Пример 1. Веб-сайт использует таблицу Excel в качестве базы данных для хранения логина и пароля пользователей. Если сайт «запомнил» пользователя в форме входа, то поля Логин и Пароль заполняются автоматически. В целях сохранения конфиденциальности, вместо самого пароля требуется выводить определенное количество символов «*», соответствующее длине пароля.

Внесем исходные данные в таблицу:

Внесем исходные данные.

Для отображения пароля в зашифрованном виде используем функцию со следующими аргументами:

используем функцию.

Описание аргументов:

  1. «*» — символы, которые будут отображаться определенное число раз;
  2. ДЛСТР(B3) – длина исходной строки, содержащей пароль.

Аналогично преобразуем остальные пароли. В результате получим:

преобразуем пароли.

Сгенерировались звездочки с точным количеством символов таким же как у исходных паролей.



Скрытие номера кредитной карты функцией ПОВТОР в Excel

Пример 2. Номер кредитной карты – это 12-значное число, распределенное на 4 подгруппы, например: 0000-0000-0000-0000. На сайтах обычно отображают лишь последнюю подгруппу (****-****-****-0000). Реализовать подобную запись номеров кредитных карт в Excel.

Исходная таблица данных:

виды кредитной карты.

Для получения зашифрованного вида кредитной карты используем формулу:

В данном случае функция ПОВТОР возвращает текстовую строку, состоящую из трех последовательных текстовых строк «****-», а к возвращаемому ей результату благодаря символу & (амперсанд) будут добавлены 4 последних символа из текста, содержащегося в ячейке B3.

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

ПОВТОР.

Добавление повторяющихся символов к зачиню ячейки Excel

Пример 3. Приложение обрабатывает данные, полученные из таблицы Excel. Для корректной работы требуется, чтобы каждое поле содержало 20 символов. Было решено выполнять проверку длины каждых текстовых данных, содержащихся в Excel, и увеличивать их длину до 20 символов путем добавления символов «.». Рассмотрим, как это было реализовано.

Таблица данных:

Таблица данных.

В ячейке B2 записана следующая формула:

Данная запись имеет следующий смысл:

  1. Если изначальный текст содержит более 20 символов, будет возвращено значение null (понятный для приложения тип данных, обозначающий нулевую ссылку на объект);
  2. Если длина изначального текста более менее 20 символов, к текущему тексту будет добавлено требуемое количество точек «.» (вычисляется на основании записи 20-ДЛСТР(A3)).
  3. Иначе (если количество символов равно 20), будет возвращена ссылка на ячейку с исходным текстом.

Адаптируем формулу для остальных ячеек и в итоге получим:

Добавление повторяющихся символов.

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

Читайте подробнее: Как используя функцию ПОВТОР создать воронку продаж в ячейках Excel?

Функция ПОВТОР в Excel и особенности ее использования

Функция ПОВТОР имеет следующий синтаксис:

=ПОВТОР(текст;число_повторений)

Оба аргумента являются обязательными для заполнения. Описание аргументов:

  • текст – текстовая строка либо ссылка на ячейку, содержащую некоторый текст, который требуется повторить определенное количество раз.
  • число_повторений – числовое значение, соответствующее требуемому количеству повторений строки.

Примечания:

  1. Если второй аргумент функции ПОВТОР – число 0 (нуль), результатом выполнения данной функции будет являться пустое значение.
  2. Excel выполняет преобразование данных там, где это требуется. Логические ИСТИНА и ЛОЖЬ могут быть преобразованы в числа 1 и 0 соответственно. Так, результатом выполнения функции =ПОВТОР(“текст1”;ИСТИНА) будет значение «текст1», а функция =ПОВТОР(“«текст2”;ЛОЖЬ) вернет пустое значение «».
  3. Если в качестве второго аргумента было передано числовое значение, содержащее дробную часть, она будет автоматически усечена. Например, функция =ПОВТОР(“а”;3,78) вернет значение «ааа», то есть повторит символ 3 раза.
  4. Если число_повторений – текстовая строка (например, =ПОВТОР(“text”;”текст”)), в результате выполнения функции будет сгенерирован код ошибки #ЗНАЧ!.
  5. Если второй аргумент рассматриваемой функции – число, выраженное в процентах, необходимо учитывать, что Excel выполняет преобразование процентов в число. Например, функция =ПОВТОР(“слово”;30%) вернет пустую строку, а функция а значения в аргументах (“слово”;200%) вернут строку «словослово».
  6. Максимальная длина текста в ячейке Excel составляет 32767 символов. Если в соответствии с заданным условием требуется вернуть текст, количество символов в котором превышает 32767, результатом выполнения функции будет ошибка #ЗНАЧ!.

Понравилась статья? Поделить с друзьями:
  • Excel подставить текущую дату
  • Excel повтор шапки таблицы на каждой странице
  • Excel подставить название листа в формулу
  • Excel повтор строки при печати
  • Excel подставить значение при совпадении