Перейти к содержимому

Как автоматизировать таблицу в excel

  • автор:

Автоматизация ввода данных в таблицах Excel

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

Заполнение нескольких рабочих листов

Удерживая клавишу Ctrl, выделить группу рабочих листов.

1. Ввести данные на один из них. Данные появятся в соответствующих ячейках каждого из выделенных рабочих листов.

Способ 1. С помощью буфера временного хранения информации.

  • 1. Выделить ячейку, содержащую данные.
  • 2. Выбрать пункт меню Правка —» Копировать.
  • 3. Выделить ячейку, правее и ниже которой будет осуществляться вставка и выбрать пункт меню Правка —» Вставить.
  • 4. Можно осуществить операцию копирования сразу в несколько диапазонов: выделить с помощью кнопки Ctrl только левые верхние углы областей, в которые нужно поместить копии диапазона, или выделить ярлыки нескольких листов и выполнить команду Вставить на одном из них.

Способ 2. С помощью маркера заполнения.

  • 1. Выделить ячейку, содержащую исходные данные.
  • 2. Установить курсор в правый нижний угол ячейки так, чтобы он принял вид черного крестика — маркер заполнения.
  • 3. Не отпуская левую кнопку мыши, перетащить маркер заполнения так, чтобы заключить все заполняемые ячейки в широкую серую рамку.
  • 4. Отпустить кнопку мыши, диапазон будет заполнен скопированными данными, причем если копировалась формула, то в ячейках будет отображаться результат вычислений по этим формулам.

Вставка форматов, значений и преобразованных данных

Если требуется копировать только часть информации из ячеек, например, только формат или значения или заменить формулы их значениями, тем самым заморозив результаты, то используется

  • 1. Выделить ячейки, содержащие данные, предварительно сняв с них объединение.
  • 2. Поместить их в буфер обмена по команде Правка —» Копировать.
  • 3. Выделить ячейку в верхнем углу диапазона, куда следует скопировать данные.
  • 4. Выбрать пункт меню Правка —» Специальная вставка (рис. 7.6).

5. В диалоговом окне Специальная вставка выбрать нужную операцию (табл. 7.1).

Таблица 7.7. Выбор нужной операции

Копирует все исходное содержимое и характеристики

Копирует только формулы

Копирует только значения и результаты формул

Копирует только форматы ячеек

Копирует все, кроме любых рамок, выделенных в диапазоне

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

Вычитание изданных в ячейках значений копируемых данных

Умножение данных в ячейках на значения копируемых данных

Деление данных в ячейках на значения копируемых данных

Замена данных в ячейках на копируемые данные

Диапазон ячеек строки заменяется столбцами

Средство Автоввод (АВТ)

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

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

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

Средство Автозаполнение (АЗП)

АЗП используется для автоматизированного ввода различных последовательностей, определенных как список редактора Excel.

Алгоритм использования средства АЗП:

  • 1. Ввести один или несколько элементов списка (чисел или строк текста).
  • 2. Выделить заполненные ячейки.
  • 3. Установить указатель мыши в правый нижний угол выделенных ячеек. Когда он примет вид черного крестика — маркера заполнения, протащить его при нажатой левой кнопке мыши в нужном направлении: по строке или столбцу в пределах требуемого диапазона.
  • 4. При перетаскивании маркера каждая ячейка, в образовавшемся диапазоне, будет очерчена слабо выделенной рамкой. При движении мыши справа от ячейки будет отображаться ее значение.
  • 5. Отпустить кнопку мыши. При этом выделенный диапазон заполнится последовательностью данных.

Создание собственного списка АЗП

Стандартные последовательности АЗП можно просмотреть через пункт меню Сервис —» Параметры —»Списки (рис. 7.7).

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

  • 1. Ввести список в таблицу с клавиатуры.
  • 2. Выделить ячейки, содержащие список.
  • 3. Выбрать пункт меню Сервис —» Параметры —» Список.
  • 4. В появившемся диалоговом окне (рис. 7.7), в поле Импорт списка из ячеек появится адрес выделенного диапазона. Нажать кнопку Импорт —» ОК.
  • 5. При последующем вводе списка достаточно ввести его первый элемент, а для ввода остальных элементов использовать перетаскивание маркера заполнения.
  • 6. Если требуется заполнить блок ячеек одним и тем же словом или числом, входящим в список АЗП, то при перетаскивании маркера заполнения нужно удерживать кнопку С1т1.

Функции для автоматизации расчетов и вычислений в Excel

Обзор лучших функций для создания автоматических расчетов с эффективными формулами вычислений данных таблиц.

Функции для автоматических расчетов

primery-funkcii-mumnozh

Пример как пользоваться функцией МУМНОЖ в Excel.
Полезные примеры практического применения функции МУМНОЖ. Как использовать функцию МУМНОЖ при работе с матрицами и таблицами?

funkcii-srznach-i-srznacha

Примеры функций СРЗНАЧ и СРЗНАЧА для среднего значения в Excel.
Примеры работы функций СРЗНАЧ и СРЗНАЧА, а также обзор их особенностей и отличий между собой. К какой категории относится функция СРЗНАЧ и СРЗНАЧА?

primery-funkcii-mobr

Примеры использования функции МОБР в Excel матрицах.
Примеры вычислительного определения числовых матриц с помощью функции МОБР. Как использовать функцию МОБР для генерации обратных матриц?

primery-funkcii-dlstr

Примеры функции ДЛСТР для подсчета количества символов в Excel.
Примеры формул для практического использования текстовых функций ДЛСТР ПРАВСИМВ и ПОИСК. Как использовать функцию ДЛСТР в условном форматировании?

primery-funkcii-fisher

Функция ФИШЕР в Excel и примеры ее работы.
Практически анализы предприятий с примерами применения функций прогнозирования вероятностей и корреляции: ФИШЕР, КОРРЕЛ, СТЬЮДРАСПОБР, НОРМСТОБР, ФИШЕРОБР и FРАСПОБР.

funkciya-asch-raschet-amortizacii

Расчет амортизации по функции АСЧ в Excel с примерами.
Примеры практического применение функции АСЧ для вычисления годовой величины амортизации оборудования при конкретно указанном периоде.

funkciya-puo-raschet-amortizacii

Функция ПУО для расчета амортизации в Excel по формуле.
Практические примеры анализа и прогноза амортизационных расходов с помощью функции ПУО. Как посчитать расходы на амортизацию по формуле?

primer-funkcii-chps

Примеры использования функции ЧПС для финансового анализа Excel.
Разбор функции ЧПС на примере анализа инвестиционного проекта. Отличие и взаимодействие функций ВСД, ЧПС и ПС.

funkcii-radiany-v-gradusy

Функции Excel для перевода из РАДИАНЫ в ГРАДУСЫ и обратно.
Функции для преобразования единиц измерения углов РАДИАНЫ в ГРАДУСЫ и в обратном направлении. Как перевести градусы в радианы?

primer-funkcii-srznachesli

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

  • Excel Formula Examples
  • Создать таблицу
  • Форматирование
  • Функции Excel
  • Формулы и диапазоны
  • Фильтр и сортировка
  • Диаграммы и графики
  • Сводные таблицы
  • Печать документов
  • Базы данных и XML
  • Возможности Excel
  • Настройки параметры
  • Уроки Excel
  • Макросы VBA
  • Скачать примеры

Автоматизация рутины в Microsoft Excel при помощи VBA

В этом посте я расскажу, что такое VBA и как с ним работать в Microsoft Excel 2007/2010 (для более старых версий изменяется лишь интерфейс — код, скорее всего, будет таким же) для автоматизации различной рутины.

VBA (Visual Basic for Applications) — это упрощенная версия Visual Basic, встроенная в множество продуктов линейки Microsoft Office. Она позволяет писать программы прямо в файле конкретного документа. Вам не требуется устанавливать различные IDE — всё, включая отладчик, уже есть в Excel.

Еще при помощи Visual Studio Tools for Office можно писать макросы на C# и также встраивать их. Спасибо, FireStorm.

Сразу скажу — писать на других языках (C++/Delphi/PHP) также возможно, но требуется научится читать, изменять и писать файлы офиса — встраивать в документы не получится. А интерфейсы Microsoft работают через COM. Чтобы вы поняли весь ужас, вот Hello World с использованием COM.

Поэтому, увы, будем учить Visual Basic.

Чуть-чуть подготовки и постановка задачи

Итак, поехали. Открываем Excel.

Для начала давайте добавим в Ribbon панель «Разработчик». В ней находятся кнопки, текстовые поля и пр. элементы для конструирования форм.

Теперь давайте подумаем, на каком примере мы будем изучать VBA. Недавно мне потребовалось красиво оформить прайс-лист, выглядевший, как таблица. Идём в гугл, набираем «прайс-лист» и качаем любой, который оформлен примерно так (не сочтите за рекламу, пожалуйста):

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

Результат, которого хотим добиться, выглядит примерно так:

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

Кодим

Для начала требуется создать кнопку, при нажатии на которую будет вызываться наша програма. Кнопки находятся в панели «Разработчик» и появляются по кнопке «Вставить». Вам нужен компонент формы «Кнопка». Нажали, поставили на любое место в листе. Далее, если не появилось окно назначения макроса, надо нажать правой кнопкой и выбрать пункт «Назначить макрос». Назовём его FormatPrice. Важно, чтобы перед именем макроса ничего не было — иначе он создастся в отдельном модуле, а не в пространстве имен книги. В этому случае вам будет недоступно быстрое обращение к выделенному листу. Нажимаем кнопку «Новый».

И вот мы в среде разработки VB. Также её можно вызвать из контекстного меню командой «Исходный текст»/«View code».

Перед вами окно с заглушкой процедуры. Можете его развернуть. Код должен выглядеть примерно так:

Напишем Hello World:

Sub FormatPrice()
MsgBox «Hello World!»
End Sub

И запустим либо щелкнув по кнопке (предварительно сняв с неё выделение), либо клавишей F5 прямо из редактора.

Тут, пожалуй, следует отвлечься на небольшой ликбез по поводу синтаксиса VB. Кто его знает — может смело пропустить этот раздел до конца. Основное отличие Visual Basic от Pascal/C/Java в том, что команды разделяются не ;, а переносом строки или двоеточием (:), если очень хочется написать несколько команд в одну строку. Чтобы понять основные правила синтаксиса, приведу абстрактный код.

Примеры синтаксиса

‘ Процедура. Ничего не возвращает
‘ Перегрузка в VBA отсутствует
Sub foo(a As String , b As String )
‘ Exit Sub ‘ Это значит «выйти из процедуры»
MsgBox a + «;» + b
End Sub

‘ Функция. Вовращает Integer
Function LengthSqr(x As Integer , y As Integer ) As Integer
‘ Exit Function
LengthSqr = x * x + y * y
End Function

Sub FormatPrice()
Dim s1 As String , s2 As String
s1 = «str1»
s2 = «str2»
If s1 <> s2 Then
foo «123» , «456» ‘ Скобки при вызове процедур запрещены
End If

Dim res As sTRING ‘ Регистр в VB не важен. Впрочем, редактор Вас поправит
Dim i As Integer
‘ Цикл всегда состоит из нескольких строк
For i = 1 To 10
res = res + CStr(i) ‘ Конвертация чего угодно в String
If i = 5 Then Exit For
Next i

Dim x As Double
x = Val( «1.234» ) ‘ Парсинг чисел
x = x + 10
MsgBox x

On Error Resume Next ‘ Обработка ошибок — игнорировать все ошибки
x = 5 / 0
MsgBox x

On Error GoTo Err ‘ При ошибке перейти к метке Err
x = 5 / 0
MsgBox «OK!»
GoTo ne

ne:
On Error GoTo 0 ‘ Отключаем обработку ошибок

‘ Циклы бывает, какие захотите
Do While True
Exit Do

Loop ‘While True
Do ‘Until False
Exit Do
Loop Until False
‘ А вот при вызове функций, от которых хотим получить значение, скобки нужны.
‘ Val также умеет возвращать Integer
Select Case LengthSqr(Len( «abc» ), Val( «4» ))
Case 24
MsgBox «0»
Case 25
MsgBox «1»
Case 26
MsgBox «2»
End Select

‘ Двухмерный массив.
‘ Можно также менять размеры командой ReDim (Preserve) — см. google
Dim arr(1 to 10, 5 to 6) As Integer
arr(1, 6) = 8

Dim coll As New Collection
Dim coll2 As Collection
coll.Add «item» , «key»
Set coll2 = coll ‘ Все присваивания объектов должны производится командой Set
MsgBox coll2( «key» )
Set coll2 = New Collection
MsgBox coll2.Count
End Sub

Грабли-1. При копировании кода из IDE (в английском Excel) есь текст конвертируется в 1252 Latin-1. Поэтому, если хотите сохранить русские комментарии — надо сохранить крокозябры как Latin-1, а потом открыть в 1251.

Грабли-2. Т.к. VB позволяет использовать необъявленные переменные, я всегда в начале кода (перед всеми процедурами) ставлю строчку Option Explicit. Эта директива запрещает интерпретатору заводить переменные самостоятельно.

Грабли-3. Глобальные переменные можно объявлять только до первой функции/процедуры. Локальные — в любом месте процедуры/функции.

Еще немного дополнительных функций, которые могут пригодится: InPos, Mid, Trim, LBound, UBound. Также ответы на все вопросы по поводу работы функций/их параметров можно получить в MSDN.

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

Кодим много и под Excel

В этой части мы уже начнём кодить нечто, что умеет работать с нашими листами в Excel. Для начала создадим отдельный лист с именем result (лист с данными назовём data). Теперь, наверное, нужно этот лист очистить от того, что на нём есть. Также мы «выделим» лист с данными, чтобы каждый раз не писать длинное обращение к массиву с листами.

Sub FormatPrice()
Sheets( «result» ).Cells.Clear
Sheets( «data» ).Activate
End Sub

Работа с диапазонами ячеек

Вся работа в Excel VBA производится с диапазонами ячеек. Они создаются функцией Range и возвращают объект типа Range. У него есть всё необходимое для работы с данными и/или оформлением. Кстати сказать, свойство Cells листа — это тоже Range.

Примеры работы с Range

Sheets( «result» ).Activate
Dim r As Range
Set r = Range( «A1» )
r.Value = «123»
Set r = Range( «A3,A5» )
r.Font.Color = vbRed
r.Value = «456»
Set r = Range( «A6:A7» )
r.Value = «=A1+A3»

Теперь давайте поймем алгоритм работы нашего кода. Итак, у каждой строчки листа data, начиная со второй, есть некоторые данные, которые нас не интересуют (ID, название и цена) и есть две вложенные группы, к которым она принадлежит (тип и производитель). Более того, эти строки отсортированы. Пока мы забудем про пропуски перед началом новой группы — так будет проще. Я предлагаю такой алгоритм:

  1. Считали группы из очередной строки.
  2. Пробегаемся по всем группам в порядке приоритета (вначале более крупные)
    1. Если текущая группа не совпадает, вызываем процедуру AddGroup(i, name), где i — номер группы (от номера текущей до максимума), name — её имя. Несколько вызовов необходимы, чтобы создать не только наш заголовок, но и всё более мелкие.

    Для упрощения работы рекомендую определить следующие функции-сокращения:

    Function GetCol(Col As Integer ) As String
    GetCol = Chr(Asc( «A» ) + Col)
    End Function

    Function GetCellS(Sheet As String , Col As Integer , Row As Integer ) As Range
    Set GetCellS = Sheets(Sheet).Range(GetCol(Col) + CStr(Row))
    End Function

    Function GetCell(Col As Integer , Row As Integer ) As Range
    Set GetCell = Range(GetCol(Col) + CStr(Row))
    End Function

    Далее определим глобальную переменную «текущая строчка»: Dim CurRow As Integer. В начале процедуры её следует сделать равной единице. Еще нам потребуется переменная-«текущая строка в data», массив с именами групп текущей предыдущей строк. Потом можно написать цикл «пока первая ячейка в строке непуста».

    Глобальные переменные

    Option Explicit ‘ про эту строчку я уже рассказывал
    Dim CurRow As Integer
    Const GroupsCount As Integer = 2
    Const DataCount As Integer = 3

    FormatPrice

    Sub FormatPrice()
    Dim I As Integer ‘ строка в data
    CurRow = 1
    Dim Groups(1 To GroupsCount) As String
    Dim PrGroups(1 To GroupsCount) As String

    Sheets( «data» ).Activate
    I = 2
    Do While True
    If GetCell(0, I).Value = «» Then Exit Do
    ‘ .
    I = I + 1
    Loop
    End Sub

    Теперь надо заполнить массив Groups:

    На месте многоточия

    Dim I2 As Integer
    For I2 = 1 To GroupsCount
    Groups(I2) = GetCell(I2, I)
    Next I2
    ‘ .
    For I2 = 1 To GroupsCount ‘ VB не умеет копировать массивы
    PrGroups(I2) = Groups(I2)
    Next I2
    I = I + 1

    И создать заголовки:

    На месте многоточия в предыдущем куске

    For I2 = 1 To GroupsCount
    If Groups(I2) <> PrGroups(I2) Then
    Dim I3 As Integer
    For I3 = I2 To GroupsCount
    AddHeader I3, Groups(I3)
    Next I3
    Exit For
    End If
    Next I2

    Не забудем про процедуру AddHeader:

    Перед FormatPrice

    Sub AddHeader(Ty As Integer , Name As String )
    GetCellS( «result» , 1, CurRow).Value = Name
    CurRow = CurRow + 1
    End Sub

    Теперь надо перенести всякую информацию в result

    For I2 = 0 To DataCount — 1
    GetCellS( «result» , I2, CurRow).Value = GetCell(I2, I)
    Next I2

    Подогнать столбцы по ширине и выбрать лист result для показа результата

    После цикла в конце FormatPrice

    Sheets( «Result» ).Activate
    Columns.AutoFit

    Всё. Можно любоваться первой версией.

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

    Sub AddHeader(Ty As Integer , Name As String )
    Sheets( «result» ).Range( «A» + CStr(CurRow) + «:C» + CStr(CurRow)).Merge
    ‘ Чтобы не заводить переменную и не писать каждый раз длинный вызов
    ‘ можно воспользоваться блоком With
    With GetCellS( «result» , 0, CurRow)
    .Value = Name
    .Font.Italic = True
    .Font.Name = «Cambria»
    Select Case Ty
    Case 1 ‘ Тип
    .Font.Bold = True
    .Font.Size = 16
    Case 2 ‘ Производитель
    .Font.Size = 12
    End Select
    .HorizontalAlignment = xlCenter
    End With
    CurRow = CurRow + 1
    End Sub

    Осталось только сделать границы. Тут уже нам требуется работать со всеми объединёнными ячейками, иначе бордюр будет только у одной:

    Поэтому чуть-чуть меняем код с добавлением стиля границ:

    Sub AddHeader(Ty As Integer , Name As String )
    With Sheets( «result» ).Range( «A» + CStr(CurRow) + «:C» + CStr(CurRow))
    .Merge
    .Value = Name
    .Font.Italic = True
    .Font.Name = «Cambria»
    .HorizontalAlignment = xlCenter

    Select Case Ty
    Case 1 ‘ Тип
    .Font.Bold = True
    .Font.Size = 16
    .Borders(xlTop).Weight = xlThick
    Case 2 ‘ Производитель
    .Font.Size = 12
    .Borders(xlTop).Weight = xlMedium
    End Select
    .Borders(xlBottom).Weight = xlMedium ‘ По убыванию: xlThick, xlMedium, xlThin, xlHairline
    End With
    CurRow = CurRow + 1
    End Sub

    Осталось лишь добится пропусков перед началом новой группы. Это легко:

    В начале FormatPrice

    Dim I As Integer ‘ строка в data
    CurRow = 0 ‘ чтобы не было пропуска в самом начале
    Dim Groups(1 To GroupsCount) As String

    В цикле расстановки заголовков

    If Groups(I2) <> PrGroups(I2) Then
    CurRow = CurRow + 1
    Dim I3 As Integer

    В точности то, что и хотели.

    Надеюсь, что эта статья помогла вам немного освоится с программированием для Excel на VBA. Домашнее задание — добавить заголовки «ID, Название, Цена» в результат. Подсказка: CurRow = 0 CurRow = 1.

    Файл можно скачать тут (min.us) или тут (Dropbox). Не забудьте разрешить исполнение макросов. Если кто-нибудь подскажет человеческих файлохостинг, залью туда.

    Спасибо за внимание.

    Буду рад конструктивной критике в комментариях.

    UPD: Перезалил пример на Dropbox и min.us.

    UPD2: На самом деле, при вызове процедуры с одним параметром скобки можно поставить. Либо использовать конструкцию Call Foo(«bar», 1, 2, 3) — тут скобки нужны постоянно.

    • excel
    • автоматизация
    • visual basic
    • visual basic for applications
    • vba
    • microsoft office

    Автоматизируйте собственные рутинные задачи без VBA макросов

    Если вы частый пользователь MS Excel, вам наверняка приходится ежедневно выполнять однотипные операции. В этом случае макросы Excel помогут записать последовательность действий в виде набора VBA команд. Такой способ отлично подойдет для автоматизации простых задач. Если речь идёт о более сложных задачах, пользователи c навыками программирования могут автоматизировать операции с помощью VBA проектов.

    Инструмент «Автоматизация» предлагает принципиально новый подход к автоматизации рутинных задач в Excel:

    Создание команд в простой таблице Excel вместо объёмных VBA проектов
    Автоматизация даже сложных и многоэтапных операций
    Автоматизация операций XLTools: SQL запросы, Экспорт в CSV, Редизайн таблицы, т.д.
    Создание пользовательских кнопок на панели инструментов
    Для продвинутых пользователей и разработчиков

    Не обязательно быть гуру VBA. Если какие-то ваши бизнес-процессы в Excel отнимают слишком много времени, наша команда XLTools поможет их автоматизировать.

    Перед началом работы добавьте инструмент «Автоматизация» в Excel

    «Автоматизация» – это один из 20+ инструментов в составе надстройки XLTools для Excel. Работает в Excel 2019, 2016, 2013, 2010, десктоп Office 365.

    Начните работу с инструментами XLTools

    Скачать XLTools для Excel
    – пробный период дает 14 дней полного доступа ко всем инструментам.

    Как автоматизировать операции в Excel без VBA [Скачать пособие]

    Зачастую VBA макросы Excel разрастаются до сотен строк кода, очень неудобных в работе. XLTools «Автоматизация» позволяет писать команды в простых и компактных таблицах Excel. Табличное представление более информативно, наглядно и проще для редактирования. Вы также можете добавить собственные кнопки на панель инструментов Excel, привязав их к своим командам автоматизации.

    «Автоматизация» – это универсальный инструмент для автоматизации практически любых команд и их последовательностей:

    Автоматизация SQL запросов к таблицам Excel: SELECT, GROUP BY, JOIN ON, т.д.
    Автоматическое преобразование сводных таблиц в плоский список
    Автоматический экспорт таблиц Excel в файл CSV
    Автоматическое извлечение данных из других книг Excel или CSV файлов
    Автоматическая фильтрация таблиц, т.д.

    Команды автоматизации в таблице Excel создаются по следующему принципу:

    XLTools.SQLSelect – в точности напечатайте название команды; поместите в объединённую ячейку.

    XLTools.SQLSelect
    SQLQuery: Напишите запрос как обычно.
    ApplyTableName: Напишите название таблицы результата.
    OutputTo: Укажите, куда поместить результат.

    Совет: вместо того, чтобы печатать текст запроса вручную, используйте интуитивный редактор SQL Запросов и скопируйте скрипт в таблицу автоматизации.

    Внимание: чтобы Автоматизация или SQL Запросы распознавали все ссылки, не используйте пробелы в названиях рабочих листов, книг и таблиц.

    Мы подготовили пособие с примерами, синтаксисом и построчными комментариями.

    Просто напишите команду, используя пособие Нажмите Выполнить команды Готово!

    Скачать пособие (xlsx, 246 KB)

    Пример: как автоматизировать SQL запрос к таблицам Excel

    Рассмотрим пример розничного магазина. Предположим, вам необходимо подготовить отчёт о продажах за квартал. Вы можете воспользоваться надстройкой SQL Запросы и выполнить запрос к исходным данным. Но если вам приходится готовить подобный отчёт регулярно, этот SQL запрос можно автоматизировать.

    Выберете диапазон «Журнал данных прайс-листа и продаж».
    На вкладке «Главная» нажмите Форматировать как таблицу Примените стиль таблицы.
    На вкладке «Конструктор» присвойте таблице имя «Продажи2014».

    XLTools Автоматизация команд в Excel: формат таблицы

    Добавьте новый лист, напр., «АвтоКоманды», и создайте команду автоматизации SQL запроса.

    XLTools Автоматизация запросов SQL к данным таблиц Excel

    Выделите диапазон команды автоматизации Нажмите кнопку Выполнить команды на вкладке XLTools.
    Готово, результат сгенерируется в секунды.

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

    В этом примере SQL запрос извлёк данные о продажах за 3 квартал 2014.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *