Автофильтр
- Выделить одну ячейку из диапазона данных.
- На вкладке Данные найдите группу Сортировка и фильтр .
- Щелкнуть по кнопке Фильтр .
- В верхней строке диапазона возле каждого столбца появились кнопки со стрелочками. В столбце, содержащем ячейку, по которой будет выполняться фильтрация, щелкнуть на кнопку со стрелкой. Раскроется список возможных вариантов фильтрации.
- Выбрать условие фильтрации.
Варианты фильтрации данных
- Фильтр по значению – отметить флажком нужные значения из столбца данных, которые высвечиваются внизу диалогового окна.
- Фильтр по цвету – выбор по отформатированной ячейке: по цвету ячейки, по цвету шрифта или по значку ячейки (если установлено условное форматирование).
- Можно воспользоваться строкой быстрого поиска
- Для выбора числового фильтра, текстового фильтра или фильтра по дате (в зависимости от типа данных) выбрать соответствующую строку. Появится контекстное меню с более детальными возможностями фильтрации:
- При выборе опции Числовые фильтры появятся следующие варианты фильтрации: равно, больше, меньше, Первые 10… и др.
- При выборе опции Текстовые фильтры в контекстном меню можно отметить вариант фильтрации содержит. , начинается с… и др.
- При выборе опции Фильтры по дате варианты фильтрации – завтра, на следующей неделе, в прошлом месяце и др.
- Во всех перечисленных выше случаях в контекстном меню содержится пункт Настраиваемый фильтр… , используя который можно задать одновременно два условия отбора, связанные отношением И – одновременное выполнение 2 условий, ИЛИ – выполнение хотя бы одного условия.
Если данные после фильтрации были изменены, фильтрация автоматически не срабатывает, поэтому необходимо запустить процедуру вновь, нажав на кнопку Повторить в группе Сортировка и фильтр на вкладке Данные.
Отмена фильтрации
Для того чтобы отменить фильтрацию диапазона данных, достаточно повторно щелкнуть по кнопке Фильтр.
Чтобы снять фильтр только с одного столбца, достаточно щелкнуть по кнопке со стрелочкой в первой строке и в контекстном меню выбрать строку: Удалить фильтр из столбца.
Чтобы быстро снять фильтрацию со всех столбцов необходимо выполнить команду Очистить на вкладке Данные
Срезы – это те же фильтры, но вынесенные в отдельную область и имеющие удобное графическое представление. Срезы являются не частью листа с ячейками, а отдельным объектом, набором кнопок, расположенным на листе Excel. Использование срезов не заменяет автофильтр, но, благодаря удобной визуализации, облегчает фильтрацию: все примененные критерии видны одновременно. Срезы были добавлены в Excel начиная с версии 2010.
Создание срезов
В Excel 2010 срезы можно использовать для сводных таблиц, а в версии 2013 существует возможность создать срез для любой таблицы.
Для этого нужно выполнить следующие шаги:
- Выделить в таблице одну ячейку и выбрать вкладку Конструктор .
- В диалоговом окне отметить поля, которые хотите включить в срез и нажать OK.
Форматирование срезов
- Выделить срез.
- На ленте вкладки Параметры выбрать группу Стили срезов , содержащую 14 стандартных стилей и опцию создания собственного стиля пользователя.
- Выбрать кнопку с подходящим стилем форматирования.
Чтобы удалить срез, нужно его выделить и нажать клавишу Delete.
Макро-рекордер — твой друг (или враг)
Мы можем легко получить код VBA для фильтров, включив макро-рекордер, а затем применив один или несколько фильтров к диапазону / таблице.
Вот шаги для создания макроса фильтра с помощью устройства записи макросов:
- Включите рекордер макросов:
- Вкладка «Разработчик»> «Запись макроса».
- Дайте макросу имя, выберите, где вы хотите сохранить код, и нажмите ОК.
- Примените один или несколько фильтров, используя раскрывающиеся меню фильтров.
- Остановите рекордер.
- Откройте редактор VB (вкладка «Разработчик»> Visual Basic) для просмотра кода.
Если вы уже использовали макрос-рекордер для этого процесса, то вы знаете, насколько он может быть полезен. Тем более, что наши критерии фильтрации становятся более сложными.
Код будет выглядеть примерно так:
Мы видим, что каждая строка использует метод AutoFilter для применения фильтра к столбцу. Он также содержит информацию о критериях фильтра.
Мы видим, что каждая строка использует метод AutoFilter для применения фильтра к столбцу. Он также содержит информацию о критериях фильтра.
Добавляем макрос фильтрации
Теперь надо добавить к текущему листу макрос фильтрации по критериям из созданного диапазона Условия. Для этого щелкните правой кнопкой мыши по ярлычку листа и выберите команду Исходный текст (Source text) . В открывшееся окно редактора Visual Basic надо скопировать и вставить текст вот такого макроса:
Теперь при вводе любых условий в желтые ячейки нашего именованного диапазона тут же будет срабатывать фильтрация, отображая только нужные нам строки и скрывая ненужные:
Как и в случае с классическими Автофильтром (Filter) и Расширенным фильтром (Advanced Filter) , в нашем фильтре макросом можно смело использовать символы подстановки:
- * (звездочка) – заменяет любое количество любых символов
- ? (вопросительный знак) – заменяет один любой символ
и операторы логической связки:
- И – выполнение обоих условий
- ИЛИ – выполнение хотя бы одного из двух условий
и любые математические символы неравенства (>, =, ).
При удалении содержимого ячеек желтого диапазона Условия автоматически снимается фильтрация с соответствующих столбцов.
Когда какой тип записи макросов использовать?
Если необходимо автоматизировать простейшие действия, достаточно использовать встроенный инструмент для записи макросов. То есть, если не приходится прописывать никаких условий, переменных и других подобных вещей. Просто обычная последовательность действий.
Если же необходимо программировать сложные действия, то тогда придется пользоваться встроенной средой VBA. Например, если необходимо записать в массив все элементы какого-то диапазона значений, определить его длительность, и при условии, что количество элементов массива не превышает определенного числа, выдавать какое-то сообщение. Здесь стандартного инструмента для записи макросов окажется недостаточно, необходимо изучать язык программирования и записывать команды в специальной среде. А интерпретатор в дальнейшем будет выполнять написанный код.
Отдельный лист на каждый элемент фильтра
Например, нам требуется создать сводную таблицу заказов на основе некоторой выгрузки из базы данных.
То есть в таблице будет выводиться общая сумма заказов по отдельным заказчикам за определенный временной период.
Для анализа такая сводная вполне сгодится, но в ряде ситуация нужно иметь отдельную сводную по каждому заказчику.
Решить задачу можно с помощью фильтра, переместив поле Заказчик в него.
Теперь выбирая заказчика в фильтре мы получим данные только по нему.
Но кроме этого можно автоматически сформировать отдельные листы со сводными по каждому заказчику. Для этого включаем в фильтре всех заказчиков и через контекстную вкладку Анализ в параметрах сводной таблицы выбираем Отобразить страницы фильтра отчета.
В появившемся окне мы должны указать поле из фильтра, по которому необходимо отобразить страницы. Так как мы использовали только один фильтр, то просто нажимаем ОК.
В документе будут созданы отдельные листы для каждого заказчика и на каждом листе представлена соответствующая сводная таблица.
Фильтр в сводной таблице Excel
В сводную таблицу можно преобразовать практически любой диапазон данных: итоги финансовых операций, сведения о поставщиках и покупателях, каталог домашней библиотеки и т.д.
Для примера возьмем следующую таблицу:
Создадим сводную таблицу: «Вставка» — «Сводная таблица». Поместим ее на новый лист.
Мы добавили в сводный отчет данные по поставщикам, количеству и стоимости.
Напомним, как выглядит диалоговое окно сводного отчета:
Перетаскивая заголовки, мы задаем программе инструкции для формирования сводного отчета. Если случайно допустим ошибку, из нижней области можно удалить заголовок, заменить его другим.
По данным, которые помещены в поле «Значения», подводятся итоги. В автоматическом режиме – сумма. Но можно задать «среднее», «максимум» и т.д. Если сделать это нужно для значений всего поля, то щелкаем по названию столбца и меняем способ представления итогов:
Например, среднее количество заказов по каждому поставщику:
Итоги можно менять не во всем столбце, а только в отдельной ячейке. Тогда щелкаем правой кнопкой мыши именно по этой ячейке.
Установим фильтр в сводном отчете:
- В перечне полей для добавления в таблицу ставим галочку напротив заголовка «Склад».
- Перетащим это поле в область «Фильтр отчета».
- Таблица стала трехмерной – признак «Склад» оказался вверху.
Теперь мы можем отфильтровать значения в отчете по номеру склада. Нажимаем на стрелочку в правом углу ячейки и выбираем интересующие нас позиции:
В отчете отображается информация только по первому складу. Вверху видим значение и значок фильтра.
Отфильтровать отчет можно также по значениям в первом столбце.
Примеры макросов для автоматизации работы
Как выделить повторяющиеся значения в Excel разными цветами?.
Пример удобного макроса для автоматической подсветки добирающихся значений ячеек разными цветами. Как выделить разным цветом дубликаты ячеек?
Макрос для поиска ближайшего значения заданному на всех листах книги Excel.
Готовое решение для поиска на всех листах рабочей книги как точного, так и максимально приближенного исходного значения. VBA код макрос для нахождения и получения числа с любого листа книги.
Макрос для слияния данных при серийной печати рассылок в Excel.
Альтернатива инструменту слияния в Word для печати рассылок прямо из Excel. Исходный код макроса, который выполняет слияние данных для серийной печати рассылок.
Макросы для фильтра сводной таблицы в Excel.
Как автоматизировать фильтр в сводных таблицах с помощью макроса? Исходные коды макросов для фильтрации и скрытия столбцов в сводной таблице.
Макрос позволяет рассчитать процент в сводной таблице Excel.
Как быстро преобразовать значения сводной таблицы на доли в процентном соотношении к общим итогам по строкам и по столбцам? Исходные коды макросов для работы с процентами.
Макрос для настройки полей и форматирования сводной таблицы.
Управление полями сводной таблицы с помощью макроса. Исходный код VBA-макроса для настройки и изменения структуры в сводных таблицах.
Макрос для создания сводной таблицы в Excel.
Как автоматически сгенерировать сводную таблицу с помощью макроса? Исходный код VBA для создания и настройки сводных таблиц на основе исходных данных.
Макросы для изменения формата ячеек в таблице Excel.
Как форматировать ячейки таблицы макросом? Изменение цвета шрифта, заливки и линий границ, выравнивание. Автоматическая настройка ширины столбцов и высоты строк по содержимому с помощью VBA-макроса.
VBA макрос для поиска скрытых строк и столбцов на листе Excel.
Поиск всех скрытых строк и столбцов на рабочем листе с помощью VBA-макроса. Исходные коды макросов для получения сводной информации о скрытых строках и столбцах рабочего листа.
Макрос для копирования и переименования листов Excel.
Как одновременно копировать и переименовывать большое количество листов одним кликом мышкой? Исходный код макроса, который умеет одновременно скопировать и переименовать любое количество листов.
1234
Пример 4
Следующая процедура «Sub» читает содержимое ячеек из колонки А другого листа, имеющего название «Sheet2» и с этими значениями осуществляет арифметические операции. Результат вычислений пишется в колонке А текущего листа.
Этот пример показывает:
- Как объявлять переменные.
- Объекты Excel.
- Цикл Do Until.
- Доступ к листам электронных таблиц и диапазонам ячеек с текущей книги.
‘ Подпрограмма, запускающая цикл через значения в колонке А текущего листа
‘ «Sheet2», perform arithmetic operations on each value, and write the
‘ result into Column A of the current Active Worksheet («Sheet1»)
Sub Transfer_ColA()
Dim i As Integer
Dim Col As Range
Dim dVal As Double
‘ Установить переменную Col в колонку А листа 2
Set Col = Sheets(«Sheet2»).Columns(«A»)
i = 1
‘ Прохождение цикла через каждую ячейку колонки ‘Col’ до тех пор, пока
‘ не будет обнаружена пустая ячейка
Do Until IsEmpty(Col.Cells(i))
‘ Применение арифметических операций к значению текущей ячейки
dVal = Col.Cells(i).Value * 3 — 1
‘ Команда ниже копирует результат в колонку А
‘ текущего активного листа — без уточнения названия активного листа
Cells(i, 1) = dVal
i = i + 1
Loop
End Sub
Пример 2
Циклы VBA помогают создавать различные макросы в Excel.
Циклы VBA помогают создавать различные макросы. Предположим, что имеется функция y=x + x 2 + 3x 3 – cos(x). Требуется создать макрос для получения ее графика. Сделать это можно только, используя циклы VBA.
За начальное и конечное значение аргумента функции берут x1=0 и x2=10. Кроме того, необходимо ввести константу — значение для шага изменения аргумента и начальное значение для счетчика.
Все примеры макросов VBA Excel создаются по той же процедуре, которая представлена выше. В данном конкретном случае код выглядит, как:
Do While x1 0 Then Cells(1, 1).Value = 1
голоса
Рейтинг статьи
Фильтры
Иногда необходимо сфокусироваться на каком-то определенном сегменте данных. Фильтры могут быть использованы для того, чтобы сузить количество данных, отображаемых в сводной таблице Excel, позволяя видеть только необходимую информацию.
Добавление фильтра
В следующем примере мы применим фильтр к продавцам, чтобы посмотреть, каким образом они влияют на общую сумму продаж.
- Перетащите поле из списка полей в область Фильтры. В данном примере мы воспользуемся полем Продавец.
- Фильтр появится над сводной таблицей. Щелкните кнопку со стрелкой, а затем установите флажок Выделить несколько элементов.
- Снимите флажки с тех элементов, которые Вы не хотели бы включать в сводную таблицу. В нашем примере мы снимем флажки с 2-х продавцов, затем нажмем OK.
- Сводная таблица будет скорректирована с учетом изменений.
Сведение данных в Excel
Одно из лучших свойств сводных таблиц – это возможность быстро сводить и реорганизовывать данные, позволяя рассматривать их с «разных сторон». Сведение помогает ответить на самые различные вопросы и даже поэкспериментировать с данными, чтобы выявить новые тенденции и закономерности.
В нашем примере мы использовали сводную таблицу для ответа на вопрос: «Какова общая сумма продаж каждого из продавцов?» Но сейчас мы бы хотели ответить на новый вопрос: «Какова общая сумма продаж в каждом месяце?» Мы можем сделать это, просто изменив поле в области Строки.
Изменение строк
- Щелкните по любому полю в области Строки и перетащите его за пределы этой области. Поле исчезнет.
- Перетащите новое поле из списка полей в область Строки. В нашем примере мы воспользуемся полем Месяц.
- Сводная таблица будет скорректирована под новые данные. Теперь в ней отображаются общие суммы продаж по месяцам.
Добавление столбца
До настоящего момента в нашей сводной таблице отображался только один столбец. Чтобы отобразить несколько столбцов, необходимо добавить нужное поле в область Колонны.
- Перетащите поле из списка полей в область Колонны. В нашем примере мы воспользуемся полем Регион.
- В сводной таблице отобразятся еще несколько столбцов. В нашем примере в таблице появились столбцы с суммами продаж по каждому региону.
Написание кода макроса с нуля
Продвинутые пользователи могут выполнять не только редактирование и оптимизацию записанных макросов, но и записывать код макросов с нуля. Для того, чтобы приступить к этому, нужно нажать на кнопку «Visual Basic», которая расположена в самом начале ленты разработчика.
После этого, открывается знакомое нам окно редактора VBE.
Программист пишет там код макроса вручную.
Как видим, макросы в Microsoft Excel могут значительно ускорить выполнение рутинных и однообразных процессов. Но, в большинстве случаев, для этого больше подходят макросы, код которых написан вручную, а не автоматически записанные действия. Кроме того, код макроса можно оптимизировать через редактор VBE для ускорения процесса выполнения задачи.
Немногие знают, что первая версия популярного продукта Microsoft Excel появилась в 1985 году. С тех пор он пережил несколько модификаций и востребован у миллионов пользователей по всему миру. При этом многие работают лишь с малой толикой возможностей этого табличного процессора и даже не догадываются, как им могло бы облегчить жизнь умение программирования в Excel.
Создание сводной таблицы вручную
Иногда ни одна из сводных таблиц, предлагаемых инструментами быстрого анализа или кнопкой Рекомендуемые таблицы, не подходит. В подобных случаях можно либо выбрать готовый образец сводной таблицы, макет которого наиболее близок к требуемой вам сводной таблице, либо создать нужную таблицу “с нуля”. Создать сводную таблицу вручную не так уж и трудно, как может показаться на первый взгляд.
Чтобы создать сводную таблицу вручную на основе листа с анализируемыми данными, установите курсор ячейки в одной из ячеек списка данных и щелкните на кнопке Сводная таблица, находящейся на вкладке ленты Вставка.
На экране появится диалоговое окно создания сводной таблицы, и будут выделены все данные в списке, в котором находится курсор ячейки (вокруг списка появится мерцающая пунктирная рамка). Можете откорректировать этот диапазон в текстовом поле Таблица или диапазон, если рамка не включает какие-либо данные, которые следует консолидировать. По умолчанию Excel создает сводную таблицу на новом рабочем листе, добавляемом в книгу. Если хотите, чтобы сводная таблица была создана на том же листе, где находятся исходные данные, щелкните на кнопке На существующий лист, а затем в поле Диапазон укажите ячейки, в которых будет находиться сводная таблица. (Проверьте, не будет ли перекрывать создаваемая сводная таблица данные, уже существующие на рабочем листе.)
Если источник данных сводной таблицы представляет собой внешнюю базу данных, созданную в другой программе, такой как Access, установите переключатель Использовать внешний источник данных. Потом щелкните на кнопке Выбрать подключение, а затем в открывшемся диалоговом окне выберите требуемое подключение. Кроме того, Excel поддерживает анализ данных для нескольких связанных таблиц листа (так называемая “модель данных”). Если данные новой сводной таблицы будут анализироваться наряду с данными существующей сводной таблицы, то установите флажок Добавить эти данные в модель данных.
После того как будет определен источник данных и указано место расположения сводной таблицы, щелкните на кнопке ОК, и программа добавит пустую сетку для новой таблицы, а также откроет в правой части области рабочего листа панель Список полей сводной таблицы. Эта панель разделена на две части. Вверху находится список полей источника данных, которые можно добавить в сводную таблицу, а внизу — область, разделенная на четыре зоны: ФИЛЬТРЫ, СТРОКИ, СТОЛБЦЫ и ЗНАЧЕНИЯ.
Чтобы завершить создание сводной таблицы, осталось назначить поля, перечисленные в списке, различным частям таблицы. Эта задача осуществляется путем перетаскивания имени поля из списка в соответствующую зону нижней части панели задач Поля сводной таблицы.
- ФИЛЬТРЫ. Здесь содержатся поля, позволяющие фильтровать данные таблицы. Так, например, если перетащить сюда поле года, то можно будет отображать в таблице сводные данные для каждого конкретного года, представленного в списке данных.
- СТОЛБЦЫ. Здесь содержатся поля, определяющие данные, которые отображаются в столбцах сводной таблицы.
- СТРОКИ. Здесь находятся поля, определяющие данные, которые отображаются в строках сводной таблицы.
- ЗНАЧЕНИЯ. Здесь содержатся поля, определяющие, какие данные будут отображаться в ячейках таблицы, т.е. значения, консолидируемые в последнем столбце (по умолчанию суммируемые).
Чтобы лучше понять, как эти зоны связаны со сводной таблицей, посмотрите на готовую таблицу, показанную скриншоте ниже.
В этой сводной таблице в качестве фильтра из списка данных было выбрано поле Дата. Поле Категория я назначил меткам строк. В качестве значений были выбраны поля Расход и Доход.
В результате выполненного выбора в сводной таблице теперь отображается сумма расходов и доходов по категориям с возможностью выбора конкретной даты.
После создания новой сводной таблицы (или выбора ячеек существующей таблицы рабочего листа) программа отображает контекстную вкладку Анализ из группы контекстных вкладок Работа со сводными таблицами — последняя автоматически добавляется на ленту. Среди множества групп этой вкладки в правой части находится группа Показать, включающая следующие полезные команды.
- Список полей. Служит для сокрытия и отображения списка полей на панели задач в правой части области рабочего листа.
- +/- Кнопки. Используется для сокрытия и отображения кнопок сворачивания (-) и разворачивания (+) конкретных строк и столбцов, позволяющих временно удалять и отображать в сводной таблице конкретные значения.
- Заголовки полей. Служит для сокрытия и отображения полей, назначаемых меткам строк и столбцов сводной таблицы.
Фильтрация данных в Excel
В Excel предусмотрено три типа фильтров:
- Автофильтр – для отбора записей по значению ячейки, по формату или в соответствии с простым критерием отбора.
- Срезы – интерактивные средства фильтрации данных в таблицах.
- Расширенный фильтр – для фильтрации данных с помощью сложного критерия отбора.
Автофильтр
- Выделить одну ячейку из диапазона данных.
- На вкладке Данные найдите группу Сортировка и фильтр .
- Щелкнуть по кнопке Фильтр .
- В верхней строке диапазона возле каждого столбца появились кнопки со стрелочками. В столбце, содержащем ячейку, по которой будет выполняться фильтрация, щелкнуть на кнопку со стрелкой. Раскроется список возможных вариантов фильтрации.
- Выбрать условие фильтрации.
Варианты фильтрации данных
- Фильтр по значению – отметить флажком нужные значения из столбца данных, которые высвечиваются внизу диалогового окна.
- Фильтр по цвету – выбор по отформатированной ячейке: по цвету ячейки, по цвету шрифта или по значку ячейки (если установлено условное форматирование).
- Можно воспользоваться строкой быстрого поиска
- Для выбора числового фильтра, текстового фильтра или фильтра по дате (в зависимости от типа данных) выбрать соответствующую строку. Появится контекстное меню с более детальными возможностями фильтрации:
- При выборе опции Числовые фильтры появятся следующие варианты фильтрации: равно, больше, меньше, Первые 10… и др.
- При выборе опции Текстовые фильтры в контекстном меню можно отметить вариант фильтрации содержит. , начинается с… и др.
- При выборе опции Фильтры по дате варианты фильтрации – завтра, на следующей неделе, в прошлом месяце и др.
- Во всех перечисленных выше случаях в контекстном меню содержится пункт Настраиваемый фильтр… , используя который можно задать одновременно два условия отбора, связанные отношением И – одновременное выполнение 2 условий, ИЛИ – выполнение хотя бы одного условия.
Если данные после фильтрации были изменены, фильтрация автоматически не срабатывает, поэтому необходимо запустить процедуру вновь, нажав на кнопку Повторить в группе Сортировка и фильтр на вкладке Данные.
Отмена фильтрации
Для того чтобы отменить фильтрацию диапазона данных, достаточно повторно щелкнуть по кнопке Фильтр.
Чтобы снять фильтр только с одного столбца, достаточно щелкнуть по кнопке со стрелочкой в первой строке и в контекстном меню выбрать строку: Удалить фильтр из столбца.
Чтобы быстро снять фильтрацию со всех столбцов необходимо выполнить команду Очистить на вкладке Данные
Срезы
Срезы – это те же фильтры, но вынесенные в отдельную область и имеющие удобное графическое представление. Срезы являются не частью листа с ячейками, а отдельным объектом, набором кнопок, расположенным на листе Excel. Использование срезов не заменяет автофильтр, но, благодаря удобной визуализации, облегчает фильтрацию: все примененные критерии видны одновременно. Срезы были добавлены в Excel начиная с версии 2010.
Создание срезов
В Excel 2010 срезы можно использовать для сводных таблиц, а в версии 2013 существует возможность создать срез для любой таблицы.
Для этого нужно выполнить следующие шаги:
- Выделить в таблице одну ячейку и выбрать вкладку Конструктор .
- В диалоговом окне отметить поля, которые хотите включить в срез и нажать OK.
Форматирование срезов
- Выделить срез.
- На ленте вкладки Параметры выбрать группу Стили срезов , содержащую 14 стандартных стилей и опцию создания собственного стиля пользователя.
- Выбрать кнопку с подходящим стилем форматирования.
Чтобы удалить срез, нужно его выделить и нажать клавишу Delete.
Расширенный фильтр
Расширенный фильтр предоставляет дополнительные возможности. Он позволяет объединить несколько условий, расположить результат в другой части листа или на другом листе и др.
Задание условий фильтрации
- В диалоговом окне Расширенный фильтр выбрать вариант записи результатов: фильтровать список на месте или скопировать результат в другое место .
- Указать Исходный диапазон , выделяя исходную таблицу вместе с заголовками столбцов.
- Указать Диапазон условий , отметив курсором диапазон условий, включая ячейки с заголовками столбцов.
- Указать при необходимости место с результатами в поле Поместить результат в диапазон , отметив курсором ячейку диапазона для размещения результатов фильтрации.
- Если нужно исключить повторяющиеся записи, поставить флажок в строке Только уникальные записи .
Выполнение макроса в Excel
Прежде чем раскрыть все возможности созданного Вами макроса, считаю правильным обратить внимание на пару важных моментов, касающихся макросов в целом:
- Макрос может нанести вред.
- Ещё раз прочти предыдущий пункт.
VBA-код обладает очень большими возможностями. В частности, он может выполнять операции с файлами за пределами текущего документа. Например, макрос может удалять или изменять любые файлы в папке Мои документы. По этой причине запускайте и разрешайте выполнение макросов только из источников, которым Вы доверяете.
Чтобы запустить наш макрос, форматирующий данные, откройте файл шаблона, который мы создали в первой части этого урока. Если у Вас стандартные настройки безопасности, то при открытии файла сверху над таблицей появится предупреждение о том, что запуск макросов отключен, и кнопка, чтобы включить их выполнение. Так как шаблон мы сделали самостоятельно и себе мы доверяем, то нажимаем кнопку Enable Content (Включить содержимое).
Следующим шагом, мы импортируем последний обновлённый набор данных из файла CSV (на основе такого файла мы создавали наш макрос).
При выполнении импорта данных из CSV-файла, возможно, Excel попросит Вас настроить некоторые параметры для правильной передачи данных в таблицу.
Когда импорт будет закончен, зайдите в меню Macros (Макросы) на вкладке View (Вид) и выберите команду View Macros (Макросы).
В открывшемся диалоговом окне мы увидим строку с именем нашего макроса FormatData. Выберите его и нажмите Run (Выполнить).
Когда макрос начнёт работать, Вы увидите, как табличный курсор прыгает с ячейки на ячейку. Через несколько секунд с данными будут проделаны те же операции, что и при записи макроса. Когда всё будет готово, таблица должна выглядеть так же, как и оригинал, который мы форматировали вручную, только с другими данными в ячейках.
Пример 3
Следующий пример подпрограммы читает значения с ячейки в колонке A активного листа, пока не найдет пустую ячейку. Вся полученная информация сохраняется в массиве. Это простой пример макросов в электронных таблицах, который показывает:
- Как объявлять переменные.
- Работу динамического массива.
- Цикл Do Until.
- Ссылки на ячейки в текущем листе Excel.
- Встроенную функцию Ubound, которая предназначена для определения размера массива.
‘ Подпрограмма, которая хранит значения колонки А текущего листа
‘ в массиве
Sub GetCellValues()
Dim iRow As Integer ‘ сохраняется текущий номер строки
Dim dCellValues() As Double ‘ массив, в котором хранятся значения ячеек
iRow = 1
ReDim dCellValues(1 To 10)
‘ Цикл Do Until, который извлекает значение каждой ячейки в столбце А
‘ активного листа до тех пор, пока ячейка не окажется пустой
Do Until IsEmpty(Cells(iRow, 1))
‘ Проверка, достаточно ли большой массив dCellValues
‘ Если нет, используется ReDim, чтобы увеличить размер массива на 10 элементов.
If UBound(dCellValues) < iRow Then
ReDim Preserve dCellValues(1 To iRow + 9)
End If
‘ Сохраняется текущая ячейка в массиве CellValues
dCellValues(iRow) = Cells(iRow, 1).Value
iRow = iRow + 1
Loop
End Sub
Настройка: данные конвейера продаж CRM
В этом примере мы собираемся использовать данные о продажах. Таблица данных содержит еженедельные снимки или экспорт данных из системы CRM (Salesforces.com, Dynamics CRM, HubSpot и т.д.).
Для обновления данных мы экспортируем конвейерный отчет каждую неделю и вставляем данные в конец существующей таблицы. Есть и другие способы автоматизации этого процесса, но мы не будем вдаваться в подробности.
В наборе данных есть столбец «Дата отчета», в котором содержится дата запуска отчета для каждой строки. Вы можете видеть на изображении, что есть 4 набора данных, добавленных (сложенных) вместе, чтобы создать одну большую таблицу.
Сводная таблица показывает сводку доходов по этапам конвейера, а поле «Дата отчета» находится в области «Фильтры». Это позволяет нам фильтровать по любой дате отчета, чтобы увидеть сводную информацию о конвейере за эту неделю.
Когда новые данные добавляются в таблицу данных, мы хотим автоматически фильтровать все связанные сводные таблицы, диаграммы и срезы на последнюю дату отчета.
Работа с книгами
Макрос 1. Создание новой рабочей книги с нуляМакроc 2. Сохранение книги при изменении определенной ячейки/диапазонаМакрос 3. Сохранение рабочей книги перед закрытиемМакрос 4. Защита рабочего листа в книге перед закрытиемМакрос 5. Снятие защиты с листа при открытии Excel-файлаМакрос 6. Открыть книгу на нужном листеМакрос 7. Открытие конкретной книги, определенной пользователемМакрос 8. Определяем, открыта ли книгаМакрос 9. Определяем, существует ли книга в папкеМакрос 10. Обновляем все связи в открытых книгахМакрос 11. Закрываем сразу все книгиМакрос 12. Открыть все рабочие книги в папкеМакрос 13. Распечатать все книги в папкеМакрос 14. Не даем закрыть книгу до тех пор, пока не заполнит ячейкуМакрос 15. Создаем резервную копию текущей книги с сегодняшней датой
Обращение к данным модели бизнес-архитектуры
Из отчета можно напрямую обращаться к данным модели бизнес-архитектуры. Это делается двумя способами:
- Через обращение к параметрам объекта, от которого был вызван отчет.
- Через использование механизма OLE.
Обращение к параметрам объекта
Обращение к параметрам объекта, от которого был вызван отчет, происходит таким образом:
ob.<СистемноеНазваниеПараметра>,
где
«ob» — объект, от которого был вызван отчет;
− это системное название параметра объекта, которое можно просмотреть в Объектной модели (см. Руководство пользователя → Объектная модель).
Например, при выводе отчета от единицы деятельности получить данные названия единицы деятельности можно таким образом:
Name = ob.Название 'получаем Название объекта, от которого вызвали отчет
Использование механизма OLE
Механизм OLE предоставляет более широкие возможности по обращению к данным модели бизнес-архитектуры и выводу этих данных в отчетах по сравнению с обращением просто как данным объекта, от которого был вызван отчет.
Описание механизма OLE подробно описано в главе Руководство технического специалиста → Работа с Business Studio через OLE.
Для задействования OLE в отчетах конкретной базы нет необходимости во включении опции «Разрешено использование OLE».
Внимание! В отчетах при работе с OLE недоступны все методы класса «Система.OleApplication», поскольку в макросе «ПослеВыполненияОтчета» есть аргумент «app», который является приложением Business Studio, а не «Система.OleApplication».