#Руководства
- 25 июл 2022
-
0
Как с помощью массивов ускорить расчёты в таблицах с тысячами значений? Как поменять местами столбцы и строки? Разбираемся на примерах.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Часто новичкам в Excel кажется, что массивы — это высший пилотаж в работе с таблицами. На деле всё гораздо проще.
Массивы в Excel — это данные из двух и более смежных ячеек таблицы, которые используют в расчётах как единую группу, одновременно. Массивом может быть одна строка или столбец, несколько строк или столбцов и даже целые таблицы.
Операции с массивами — не основная функциональность Excel, но они делают работу с большими диапазонами значений удобнее и быстрее. С помощью массивов можно проводить расчёты не поочерёдно с каждой ячейкой диапазона, а со всем диапазоном одновременно. Или создать формулу, которая выполнит сразу несколько действий с любым количеством ячеек.
В статье разберёмся:
- какие виды массивов есть в Excel;
- что такое формула массива и как она работает.
Подробно покажем на примерах, как выполнить четыре базовые операции с помощью формул массивов и операторов Excel:
- построчно перемножить значения двух столбцов;
- умножить одно значение сразу на весь столбец;
- выполнить два действия одной формулой;
- поменять местами положение столбцов и строк таблицы.
В конце расскажем, как создать формулу массива в «Google Таблицах».
Массивы в Excel бывают одномерными и двумерными.
В одномерных массивах все данные расположены в одной строке или в одном столбце. В зависимости от этого их делят на горизонтальные и вертикальные.
Скриншот: Excel / Skillbox Media
Скриншот: Excel / Skillbox Media
В двумерных массивах данные расположены сразу в нескольких столбцах и строках. Такие массивы могут образовывать целые таблицы, а иногда занимают даже несколько листов.
Скриншот: Excel / Skillbox Media
Работа с массивами в Excel похожа на стандартную работу с одиночными ячейками. Отличие в том, что расчёты и операции проводят одновременно для всех значений диапазонов, а не для одного. Для этого используют формулы массивов.
Формула массива — формула, где в качестве входящих параметров используют диапазоны значений, а не одиночные ячейки. Диапазоны значений обозначаются через двоеточие :. Например, A1:A10 или А1:В10.
С формулами массива можно выполнить несколько математических действий одновременно. Например, чтобы перемножить значения двух столбцов и затем суммировать полученные числа, понадобится одна формула массива и одно действие.
В целом формулы массивов работают так же, как и обычные формулы. В них можно использовать любые математические действия.
Формулы массивов можно использовать как для одной ячейки, так и для нескольких одновременно. Например, можно посчитать в одной ячейке сумму значений из нескольких столбцов. Такая формула массива называется одноячеечной. Или можно перемножить значения двух столбцов построчно, а результат вывести в третий. Формула массива будет называться многоячеечной.
В следующих разделах покажем четыре примера, как создавать и использовать формулы массивов.
Допустим, нужно рассчитать смету устройства фундаментов. У нас есть перечень необходимых работ, их объёмы и цена единиц измерения объёмов.
Скриншот: Excel / Skillbox Media
Определим стоимость каждой работы.
Можно пойти классическим путём — перемножить первые ячейки столбцов «Количество» и «Цена ед., руб.», а затем растянуть результат вниз на все остальные виды работ. Но если видов будет несколько сотен или тысяч, этот вариант может быть неудобен.
Формула массивов выведет результаты одновременно для всего диапазона — никаких дополнительных действий выполнять не потребуется. Рассмотрим, как это сделать.
Шаг 1. Выделяем столбец, в котором хотим получить результат расчёта, — в нашем случае это диапазон E2:E9. В строке ссылок вводим знак равенства.
Скриншот: Excel / Skillbox Media
Шаг 2. Выделяем первый массив, который участвует в расчётах, — все значения столбца «Количество». Одновременно с этим в строке ссылок появляется выбранный диапазон: B2:B9.
Скриншот: Excel / Skillbox Media
Шаг 3. Ставим знак умножения в строке ссылок и выбираем второй массив — все значения столбца «Цена ед., руб.».
Строка ссылок принимает вид: fx=B2:B9*D2:D9. Это значит, что значения первого массива должны умножиться на значения второго массива.
Скриншот: Excel / Skillbox Media
Шаг 4. Нажимаем Enter — в столбце «Стоимость, руб.» появляется результат расчёта. Так, в один клик, формула сработала сразу для всех строк.
Скриншот: Excel / Skillbox Media
По такому же принципу можно проводить разные арифметические вычисления для одного массива.
Допустим, для нашей сметы нужно рассчитать дополнительные расходы, составляющие долю в общей стоимости работ.
Скриншот: Excel / Skillbox Media
Как и в первом случае, можно перемножить первую ячейку столбца «Доля от стоимости работ» и ячейку с общей стоимостью работ. Затем растянуть результат вниз на все остальные расходы. А можно, для удобства и ускорения процесса, воспользоваться формулой массивов. Она позволит одним действием посчитать сумму всех расходов.
Шаг 1. Выделяем столбец для результата расчёта: С13:С16. В строке ссылок вводим знак равенства.
Скриншот: Excel / Skillbox Media
Шаг 2. Выделяем массив, который участвует в расчётах, — все значения столбца «Доля от стоимости работ». В формуле строки ссылок появляется выбранный диапазон: B13:B16. Добавляем к нему знак умножения и выбираем ячейку с общей стоимостью работ: E10.
Скриншот: Excel / Skillbox Media
Шаг 3. Нажимаем Enter. Во всём столбце «Стоимость, руб.» появляются результаты расчётов.
Скриншот: Excel / Skillbox Media
Вернёмся к нашему первому примеру со сметой. Там мы рассчитывали стоимость каждой работы отдельно. Общую стоимость работ в этом случае было проще определить путём сложения всех полученных значений.
Скриншот: Excel / Skillbox Media
Предположим, нам нужно получить общую стоимость устройства фундаментов одним действием, а стоимость каждой работы отдельно при этом не важна.
Для этого воспользуемся формулой массивов и оператором СУММ. Они выполнят одновременно два математических действия: перемножат столбцы и суммируют полученные результаты.
Шаг 1. Выделяем ячейку, в которой хотим получить результат расчёта. В строке ссылок вводим знак равенства и оператор СУММ и открываем скобку.
Скриншот: Excel / Skillbox Media
Шаг 2. По аналогии с алгоритмом из предыдущего раздела, выделяем первый массив — значения столбца «Количество» и второй массив — значения столбца «Цена ед., руб.». Ставим между ними знак умножения и закрываем скобку.
Строка ссылок принимает вид: fx=СУММ(B2:B9*D2:D9). Это значит, что значения первого массива должны перемножиться со значениями второго массива, а все полученные результаты — суммироваться.
Скриншот: Excel / Skillbox Media
Шаг 3. Нажимаем Enter. В выбранной ячейке появляется результат расчёта. Формула рассчитала одновременно два действия: перемножила значения ячеек двух массивов и суммировала полученные результаты.
Скриншот: Excel / Skillbox Media
По такой же схеме в формулах массивов можно использовать и другие функции Excel. Отличие от их классического применения будет в том, что аргументами будут не отдельные ячейки, а массивы таких ячеек.
Иногда при работе в Excel нужно поменять положение столбцов или строк — транспортировать их. Например, перевести шапку таблицы из горизонтального положения в вертикальное. Делать это вручную долго — особенно, когда ячеек очень много. Ускорить процесс помогут массивы и оператор ТРАНСП:
Шаг 1. Выделяем ячейку, в которой хотим получить результат операции. В строке ссылок вводим знак равенства и оператор ТРАНСП и открываем скобку.
Скриншот: Excel / Skillbox Media
Шаг 2. Выделяем шапку таблицы и закрываем скобку. Строка ссылок принимает вид: fx=ТРАНСП(A1:E1).
Скриншот: Excel / Skillbox Media
Шаг 3. Нажимаем Enter — функция меняет положение шапки таблицы на вертикальное.
Скриншот: Excel / Skillbox Media
Как создать формулу массива в «Google Таблицах»? Всё точно так же, как в Excel, но нужно добавить оператор ARRAYFORMULA. Его ставят перед всей формулой массива в строке ссылок. Например, если вы хотите перемножить данные в двух столбцах, формула в готовом виде будет выглядеть так:
fx=ARRAYFORMULA(B2:B9*D2:D9).
Скриншот: Google Таблицы / Skillbox Media
Другие материалы Skillbox Media по Excel
- Как сделать сводные таблицы в Excel — детальная инструкция со скриншотами
- Руководство: как сделать ВПР в Excel и перенести данные из одной таблицы в другую
- Руководство по макросам для новичков — для чего нужны и как их сделать
- Инструкция: как закреплять строки и столбцы в Excel
- Руководство по созданию выпадающих списков в Excel — как упростить заполнение таблицы повторяющимися данными
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Содержание
MS Excel
27 сентября, 2017
Евгений Довженко о том, как можно эффективно работать даже с огромными массивами данных.
Любой сотрудник компании, работающий в отделе продаж, финансов, маркетинга, логистики, сталкивается с необходимостью работать с данными, анализировать их.
Excel — незаменимый помощник для достижения этих целей. Мы импортируем информацию, «подтягиваем» ее, систематизируем. На ее основе строим диаграммы, сводные таблицы, планируем, прогнозируем.
Однако в Excel до недавнего времени было 2 важных ограничения:
Мы не могли разместить на рабочем листе Excel более миллиона строк (а наши данные о продажах за 2 года занимают, например, 10 млн строк).
Мы знали, как создать и настроить интерактивные и обновляемые отчеты, но это отнимало много времени.
Единственный инструмент в Excel — сводные таблицы — позволял быстро обрабатывать наши данные.
С другой стороны, есть категория пользователей, которые работают со сложными BI-системами. Это системы бизнес-аналитики (business intelligence), которые дают возможность быстро визуализировать, «крутить» данные и извлекать из них ценную информацию (data mining). Однако внедрение и поддержка таких систем требует значительного участия IT-специалистов и больших финансовых вложений.
До Excel 2010 было четкое разделение на анализ малого и большого объема данных: Excel с одной стороны и сложные BI-системы — с другой.
Начиная с версии 2010, в Excel добавили инструменты, в названиях которых присутствует слово power: Power Query, Power Pivot и Power View. Они позволили сгладить грань между пользователями Excel и комплексных BI-систем.
Power Query
Чтобы работать с данными, к ним нужно подключиться, отобрать, преобразовать или, другими словами, привести их к нужному виду.
Для этого и необходим Power Query. До версии Excel 2013 включительно этот инструмент был в виде надстройки, которую можно было установить бесплатно с сайта Microsoft.
В версии 2016 это уже встроенный в программу инструментарий, находящийся на вкладке «Данные» (Data) в разделе «Скачать и преобразовать» (Get and Transform).
Перечень источников информации, к которым можно подключаться — огромный: от баз данных (их в последней версии 10) до Facebook и Google таблиц (рис. 1).
Рис 1. Выбор источника данных в Power Query
Вот некоторые возможности Power Query по подготовке и преобразованию данных:
отбор строк и столбцов, создание пользовательских (вычисляемых) столбцов
преобразование данных с помощью числовых, текстовых функций, функций даты и времени
транспонирование таблицы, разворачивание по столбцам (Pivot) и наоборот — сворачивание данных, организованных по столбцам, в построчный вид (Unpivot)
объединение нескольких таблиц: как вниз — одну под другую, так и связывание по общей колонке (единому ключу)
Рис 2. Окно редактора Power Query
Ну и конечно, после выгрузки подготовленных данных в Excel они будут автоматически обновляться, если в источнике данных появятся новые строки.
Пример
Компания в своей аналитике использует текущие курсы трех валют, которые ежедневно обновляются на сайте Национального банка.
Таблица на сайте непригодна для прямого использования (рисунок 2-1):
все валюты не нужны
в колонке «Курс» в качестве разделителя целой и дробной частей используется точка (в наших региональных настройках — запятая)
в колонке «Курс» отображается показатель за разное количество единиц валюты: за 100, за 1000 и т. д. (указано в отдельной колонке «Количество единиц»)
Рис. 2-1. Так выглядит таблица с курсами валют на сайте Нацбанка.
С помощью Power Query мы подключаемся к таблице текущих курсов валют на сайте НБУ и в этом редакторе готовим запрос на извлечение данных:
В колонке «Курс» меняем точку на запятую (инструмент «Замена значений»).
Создаем вычисляемый столбец, в котором курсы валют в колонке «Курс» делятся на количество единиц валюты из колонки «Количество единиц».
Удаляем лишние столбцы и оставляем только строки валют, с которыми работаем.
Выгружаем полученную таблицу на рабочий лист Excel.
Результат показан на рисунке 2-2.
Рис. 2-2. Так выглядит результирующая таблица в нашем Excel файле.
Курсы валют на сайте Нацбанка меняются каждый день. Но при обновлении данных в документе Excel наш, один раз подготовленный, запрос пройдет через все шаги, и результирующая таблица всегда будет в нужном виде, но уже с актуальными курсами.
Power Pivot
У вас данные находятся в разрозненных источниках? Некоторые таблицы содержат больше 1 млн строк? Вам нужно все это объединить в одну модель данных и анализировать с помощью, например, сводной таблицы Excel? Здесь понадобится Power Pivot — надстройка Excel, которая по умолчанию включена в версии Pro Plus и выше (начиная с версии 2010).
В Power Pivot вы можете добавлять данные из разных источников, связывать таблицы между собой (рисунок 3). Таблицы при этом не обязательно должны находиться на рабочих листах Excel. Вместо этого они по-прежнему будут храниться в файле Excel, но просматривать их можно в окне Power Pivot (рис. 4). Поэтому нет ограничения на количество строк — в вашем файле Excel могут находиться таблицы и в сотни миллионов строк.
Рис. 3. Окно Power Pivot в представлении диаграммы
Рис. 4. Окно Power Pivot в представлении данных
Вот некоторые возможности Power Pivot, помимо описанных выше:
добавлять вычисляемые столбцы и поля (меры), в том числе основанные на расчетах из нескольких таблиц
создавать и мониторить в сводной таблице ключевые показатели эффективности (KPI)
создавать иерархические структуры (например, по географическому признаку — регион, область, город, район)
И обрабатывать все это с помощью сводной таблицы Excel, построенной на модели данных.
Пример. У предприятия в базе данных (или отдельных файлах Excel) в 5 таблицах хранится информация о продажах, клиентах, товаре и его классификации, менеджерах по продажам и закупочных ценах продукции. Необходимо провести анализ по объемам продаж и маржинальности по менеджерам.
С помощью Power Pivot:
добавляем все 5 таблиц в модель данных
связываем таблицы по общим ключам (столбцам)
в таблице «Продажи» создаем вычисляемый столбец «Продажи в закупочных ценах», умножив количество штук из таблицы «Продажи» на закупочную цену из таблицы «Цена закупки»
создаем вычисляемое поле (меру) «Маржа»
с помощью инструмента «Ключевые показатели эффективности» устанавливаем цель по маржинальности и настраиваем визуализацию — как выполнение цели будет визуализироваться в сводной таблице
Теперь можно «крутить» эти данные в сводной таблице или в отчете Power View (следующий инструмент) и анализировать маржинальность по товарам, менеджерам, регионам, клиентам.
Power View
Иногда сводная таблица — не лучший вариант визуализации данных. В таком случае можно создавать отчеты Power View. Как и Power Pivot, Power View — это надстройка Excel, которая по умолчанию включена в версии Pro Plus и выше (начиная с версии 2010).
В отличие от сводной таблицы, в отчет Power View можно добавлять диаграммы и другие визуальные объекты. Здесь нет такого количества настроек, как в диаграммах Excel. Но в том то и сила инструмента — мы не тратим время на настройку, а быстро создаем отчет, визуализирующий данные в определенном разрезе.
Вот некоторые возможности Power View:
— быстро добавлять в отчет таблицы, диаграммы (без необходимости настройки)
организовывать срезы и фильтры
уходить на разные уровни детализации данных
добавлять карты и располагать на них данные
создавать анимированные диаграммы
Пример отчета Power View — на рисунке 5.
Рис. 5. Пример отчета Power View
Даже самые внушительные массивы данных можно систематизировать и визуализировать — главное не ограничиваться поверхностными возможностями Excel, а брать из его функций все возможное.
Хотите получать дайджест статей?
Одно письмо с лучшими материалами за неделю. Подписывайтесь, чтобы ничего не упустить.
Спасибо за подписку!
Курс по теме:
«Advanced Excel»
Программы
Ведет
Никита
Свидло
16 мая
13 июня
Массив функций Excel позволяет решать сложные задачи в автоматическом режиме одновременно. Те, которые выполнить посредством обычных функций невозможно.
Фактически это группа функций, которые одновременно обрабатывают группу данных и сразу выдают результат. Рассмотрим подробно работу с массивами функций в Excel.
Виды массивов функций Excel
Массив – данные, объединенные в группу. В данном случае группой является массив функций в Excel. Любую таблицу, которую мы составим и заполним в Excel, можно назвать массивом. Пример:
В зависимости от расположения элементов различают массивы:
- одномерные (данные находятся в ОДНОЙ строке или в ОДНОМ столбце);
- двумерные (НЕСКОЛЬКО строк и столбцов, матрица).
Одномерные массивы бывают:
- горизонтальными (данные – в строке);
- вертикальными (данные – в столбце).
Примечание. Двумерные массивы Excel могут занимать сразу несколько листов (это сотни и тысячи данных).
Формула массива – позволяет обработать данные из этого массива. Она может возвращать одно значение либо давать в результате массив (набор) значений.
С помощью формул массива реально:
- подсчитать количество знаков в определенном диапазоне;
- суммировать только те числа, которые соответствуют заданному условию;
- суммировать все n-ные значения в определенном диапазоне.
Когда мы используем формулы массива, Excel видит диапазон значений не как отдельные ячейки, а как единый блок данных.
Синтаксис формулы массива
Используем формулу массива с диапазоном ячеек и с отдельной ячейкой. В первом случае найдем промежуточные итоги для столбца «К оплате». Во втором – итоговую сумму коммунальных платежей.
- Выделяем диапазон Е3:Е8.
- В строку формул вводим следующую формулу: =C3:C8*D3:D8.
- Нажимаем одновременно клавиши: Ctrl + Shift + Enter. Промежуточные итоги посчитаны:
Формула после нажатия Ctrl + Shift + Enter оказалась в фигурных скобках. Она подставилась автоматически в каждую ячейку выделенного диапазона.
Если попытаться изменить данные в какой-либо ячейке столбца «К оплате» — ничего не выйдет. Формула в массиве защищает значения диапазона от изменений. На экране появляется соответствующая запись:
Рассмотрим другие примеры использования функций массива Excel – рассчитаем итоговую сумму коммунальных платежей с помощью одной формулы.
- Выделяем ячейку Е9 (напротив «Итого»).
- Вводим формулу вида: =СУММ(C3:C8*D3:D8).
- Нажимаем сочетание клавиш: Ctrl + Shift + Enter. Результат:
Формула массива в данном случае заменила две простые формулы. Это сокращенный вариант, вместивший всю необходимую информацию для решения сложной задачи.
Аргументы для функции – одномерные массивы. Формула просматривает каждый из них по отдельности, совершает заданные пользователем операции и генерирует единый результат.
Рассмотрим ее синтаксис:
Функции работы с массивами Excel
Предположим, в следующем месяце планируется увеличение коммунальных платежей на 10%. Если мы введем обычную формулу для итога =СУММ((C3:C8*D3:D8)+10%), то вряд ли получим ожидаемый результат. Нам нужно, чтобы каждый аргумент увеличился на 10%. Чтобы программа поняла это, мы используем функцию как массив.
- Посмотрим, как работает оператор «И» в функции массива. Нам нужно узнать, сколько мы платим за воду, горячую и холодную. Функция: . Итого – 346 руб.
- Функция «Сортировки» в формуле массива. Отсортируем суммы к оплате в порядке возрастания. Для списка отсортированных данных создадим диапазон. Выделим его. В строке формул вводим . Жмем сочетание Ctrl + Shift + Enter.
- Транспонированная матрица. Специальная функция Excel для работы с двумерными массивами. Функция «ТРАНСП» возвращает сразу несколько значений. Преобразует горизонтальную матрицу в вертикальную и наоборот. Выделяем диапазон ячеек, где количество строк = числу столбцов в таблице с исходными данными. А количество столбцов = числу строк в исходном массиве. Вводим формулу: . Получается «перевернутый» массив данных.
- Поиск среднего значения без учета нулей. Если мы воспользуемся стандартной функцией «СРЗНАЧ», то получим в результате «0». И это будет правильно. Поэтому вставляем в формулу дополнительное условие: . Получаем:
Скачать примеры массива функций
Распространенная ошибка при работе с массивами функций – НЕ нажатие кодового сочетания «Ctrl + Shift + Enter» (никогда не забывайте эту комбинацию клавиш). Это самое главное, что нужно запомнить при обработке больших объемов информации. Правильно введенная функция выполняет сложнейшие задачи.
Управление массивами в Microsoft Excel
Смотрите также так — можно If Next RowСпасибо!4. (Фильтр+Range). Результат- так эта — так иАвтор: Антон АндроновКак видите, сумма до подсчитать количество различий рабочем листе, неНайти и выделить на их практическое (матрицы) и, наоборот,После того, как пользователь и он довольно
ячейки расположены поВо время работы с
Операции с массивами
выгрузить один одномерный Application.DisplayAlerts = True:Hugo121 этого алгоритма меня переменная и есть есть.master-artyom и после округления в двух диапазонах: меняя его размерность,выберите пункт применение. Итак, как количество ячеек в в прост диагонали друг от таблицами Excel довольно из двух одномерных: Application.ScreenUpdating = True
: Ну так если вообще убил. Суть
часть листа, т.е.Взяли одним действием: Всем привет! немного отличается. ВДанная формула сравнивает соответствующие просто переместите егоВыделить группу ячеек
же изменить уже строке должно равнятьсяМастере функцийЗакройте информационное окно, нажав друга. Например, адрес часто приходится оперироватьSheets(«Итог»).[a2].Resize(.Count, 2) = ‘:Application.Calculation = xlAutomatic умеете взять - его заключалась в
Создание формулы
невозможно сделать так, весь неразрывный диапазонРабота с большим нашем случае это значения двух диапазонов. как обычный диапазон.. существующую формулу массива их числу вили на ленте на кнопку одномерного массива может
с целыми диапазонами
Application.Transpose(Array(.keys, .items))А по Range(«J3»).Resize(j, 1) = можете ведь аналогично том, что сначала как Вам хочется.
в массив (данные объемом данных заставляет всего лишь одна Если они равны,Существует несколько подходов кОткроется диалоговое окно в Excel? столбце исходника. Синтаксис инструментов выберет наименование«OK» быть таким: данных. При этом горизонтали можно вообще
arr1 Range(«J2»).Value = и выгрузить, зачем на диапазон сА вот переложить диапазона), далее в
- задуматься над всевозможными копейка. функция редактированию размеров массива,Выделить группу ячеекКогда формула массива помещена оператора следующий:
- конкретного оператора, откроется.A2:A7 некоторые задачи подразумевают, не мудрить - Timer — t поячеечно заполняли? исходными данными устанавливается из одного виртуального цикле можно делать способами оптимизации алгоритма.На рисунке ниже представленЕСЛИ которые, возможно, Вам. Установите переключатель на в одну ячейку,
Изменение содержимого массива
=ТРАНСП(массив) окно аргументов функции,Затем нажмете на кнопку. что вся группа просто укажите диапазон/размер MsgBox «Готово!» EndТут я показал фильтр (Range(«$A:$A»).AutoFilter Field:=1, массива отобранные по с данными что Возьмем простой пример. фрагмент таблицы продаж,возвращает ноль, а пригодятся. Подходы приведены пункт текущий массив то ее редактированиеУрок: куда можно вводить«Отмена»А пример адреса двумерного ячеек должна быть выгрузки. SubСпасибо! ещё фишку для Criteria1:=»<>»), который выдает
критерию элементы в угодно. Скорость выше Допустим мне нужно в которой 1231 если не равны в данном уроке. и нажмите в Excel обычноТранспонирование матриц в Excel исходные данные для, которая расположена в диапазона выглядит следующим преобразована буквально в[a1:c1].Value = Array(234,Hugo121 экономии памяти - только непустые ячейки. другой массив (или перебора ячеек раз скопировать из одного позиция. Наша задача
- – единицу. ВИтак, сегодня Вы научилисьОК не представляет особой
- Урок: расчета. группе значков слева образом: один клик. В 46, 6789): Добрый день. не создаём для Затем полученный результат в этот же, так в 40. файла в другой посчитать максимальную продажу, итоге получается массив, выделять, удалять и. сложности. Здесь главное
Как перевернуть таблицу вПравила ввода и редактирования от строки формул,A2:D7 Экселе имеются инструменты,master-artyom
- Можно определить массив результата другой массив, заносится в диапазон но в егоWatcher_1 диапазон «A1:A100000». Далее которую осуществил заданный который состоит из редактировать формулы массива,Текущий массив будет выделен: не забыть закончить Экселе функций, если они
- и представляет собой. которые позволяют проводить: Hugo, где про
- такого же размера, а используем тот myRange, а далее начало, что удобнее): Можно так же удалить из этого продавец. нулей и единиц. а также узналиПри помощи комбинации клавиш редактирование комбинацией клавиш
- Функция выводят результат сразу пиктограмму в видеЧтобы рассчитать подобную формулу, подобные операции. Давайте
Функции массивов
это все можно чтоб точно всё же. двумя циклами (т.к. — нет проблем. одним SQL запросом диапазона все нулиПусть в ячейке G3 Затем функция несколько полезных правилCtrl+/Ctrl+Shift+EnterМОБР в несколько ячеек, крестика. Также можно нужно выделить на выясним, как можно почитать? Я много
поместилось в лоюбомWatcher_1 в результате фильтрацииmaster-artyom вывести на лист и работать с мы будем задаватьСУММ по работе с. Для этого выберите
.позволяет производить вычисление те же самые, нажать на кнопку листе область, в управлять массивами данных видел статей про случае, но не: SQL не вариант получаются разрывные области),: Не поленился, сделал нужный результат. оставшимися данными. Я фамилию продавца, тогдасуммирует значения данного
ними. Если желаете любую ячейку массива
Оператор СУММ
Если же формула многоячеечная, обратной матрицы. Все что и дляEsc которую будет выводиться в этой программе. массивы, но в так как в выдает от 17 первым по областям, 4 варианта обработкиmaster-artyom
могу это сделать
формула массива будет массива и возвращает получить еще больше и нажмите комбинацию. т.е. возвращает массив, правила ввода значений обычных формул массива.на клавиатуре. После результат, и ввестиСкачать последнюю версию них нет такой примере (зачем брать до 22 сек…
вторым по диапазону столбца, содержащего 1: Спасибо за ответы.
Оператор ТРАНСП
так: выглядеть следующим образом: результат. информации о массивахСамое простое, что Вы то сразу возникают у этого оператора То есть, после любой из этих в строку формул Excel детализации. с листа), аНО как быть внутри области, достаются 048 576 строк. Что касается массивов,Тупо ставить вВ данном случае функцияНеобходимо, чтобы оба сравниваемых в Excel, читайте можете сделать с определенные трудности, особенно точно такие же, ввода значения обязательно операций произойдет отмена выражение для вычисления.Массив – это группаHugo121 с помощью Redim:
например если в
значения. Общее время Задача состояла в
то на мой новую книгу скопированныйЕСЛИ
Оператор МОБР
диапазона имели одинаковый следующие статьи: массивом в Excel у начинающих пользователей. как и у нужно установить курсор действия, и выПосле ввода следует нажать данных, которая расположена: Так ведь ужеredim arr1(1 to исходно таблице не — около 400 том, чтобы выбрать взгляд, что работа диапазон, поставить фильтрсравнивает значения диапазона размер и ориентацию.Знакомство с формулами массива – это удалить Давайте рассмотрим несколько предыдущего. Но важно в строку формул сможете работать с не на кнопку на листе в прочитали
ubound(arr), 1 to
1 столбец а секунд. все значения, которые
массивом, что с
(выделив только нули), B3:B1234 c заданной
Вспомним предыдущий пример и в Excel его. Для этого правил, которые необходимо знать, что вычисление и набрать сочетание листом так, какEnter смежных ячейках. ПоЕсли серьёзно - 1)если столбцов неизвестно 50 например? ТакоеБольшая просьба к есть в непустых диапазоном — одно удалить нулевые строчки, фамилией. Если фамилии попробуем усложнить задачу.Многоячеечные формулы массива в достаточно выделить нужный усвоить, прежде чем обратной матрицы возможно клавиш и прежде., как обычно, а
большому счету, любую
lumpics.ru
Редактирование формул массива в Excel
не знаю где, сколько — можно уже не загонишь экспертам VBA. Если ячейках и записать и тоже. Я заглать в переменную совпадают, то возвращается К примеру, требуется Excel массив и нажать начать редактирование массива. исключительно в том
Правила редактирования формул массива
Ctrl+Shift+EnterНо что делать, если набрать комбинацию клавиш таблицу можно считать я на форумах использовать ubound(arr,2) в массив Out есть возможность, посмотрите результат в отдельный также могу сделать
Set myNewRange = сумма продажи, а сравнить диапазоны вОдноячеечные формулы массива в клавишуНельзя изменять содержимое одной случае, если она. действительно нужно удалить
- Ctrl+Shift+Enter массивом, но не читал.Но если данных of Memory…
- файл. Есть еще столбец. цикл по всем … и вот
- если нет – Excel, которые имеют ExcelDelete
- ячейки, содержащей формулу содержит равное количествоУрок: или изменить формулу
- . После этого выражение каждый из нихmaster-artyom много и массивыHugo121 способы сократить время
Результат тестирования - элементам диапазона и тогда уже начатьЛОЖЬ одинаковый размер, ноМассивы констант в Excel. массива. Но к строк и столбцов,Мастер функций в Excel
Выделение массива в Excel
массива? В этом в строке формул является таблицей, так: Коллеги, начал пользоваться огромные — может: Можно брать частями на выполнения кода? поразил. То, что удалять из него
- работать с нужными. В итоге функция разную ориентацию –Применение формул массива вНа рисунке ниже представлена каждой ячейке можно
- и если еёОдной из наиболее востребованных случае следует выполнить будет автоматически взято как он может быстрой загрузкой и не хватить памяти. например по 10 (кроме фишек, типа по логике должно нулевые элементы. Но данными моего диапазона
ЕСЛИ один горизонтальный, а Excel формула массива, которая применить свое форматирование. определитель не равен функций в Экселе
нижеуказанные действия.
- в фигурные скобки, являться просто диапазоном. выгрузкой в массив,Другой вариант - столбцов, или по
Как удалить формулу массива
того, что вместо было сработать максимально мне кажется, что myNewRange.формирует одномерный вертикальный другой вертикальный. ВПодходы к редактированию формул складывает значения двухНельзя удалять ячейки, которые нулю. Если применять
Как отредактировать формулу массива
являетсяДля изменения формулы выделите а ячейки на По своей сущности и подсел на собирать данные в 10000 строк. <>»» лучше использовать быстро — работало
это не самоеНо проблема в
- массив, который состоит этом случае на массива в Excel диапазонов. Из рисунка входят в формулу
- данную функцию кСУММ курсором, зажав левую листе будут заполнены такие области могут это, так как коллекцию без ключаИли брать в Len()<>0, т.к. в
- очень долго. оптимальное решение, т.к.
- том, что так из сумм продаж помощь придет функцияУрок подготовлен для Вас видно, что при
Изменение размеров формулы массива
массива. Можно удалить области с разным. Её можно применять, кнопку мыши, весь данными, полученными в быть одномерными или реально все летает! (если как тут массив только то, другом примере критерии
Итак, были следующие элементов может быть делать муторно. Не указанного продавца и ТРАНСП, которая позволяет командой сайта office-guru.ru вводе формулы мы только весь массив. количеством строк и
как для суммирования диапазон на листе, результате вычисления, в двумерными (матрицы). В Появился еще вопрос. нужен всего один
что анализируем, а могут быть другие). алгоритмы решения задачи очень много. Такое хочется вставлять на
значений транспонировать массив. ТеперьАвтор: Антон Андронов допустили небольшую ошибку,Нельзя перемещать ячейки, которые столбцов, то вместо содержимого отдельных ячеек, куда выводится результат. пределах всего выделенного первом случае все Как осуществить быструю
- столбец). В финале остальное оставлять на
- Спасибо за ответы. (файл прилагаю):
- ощущение, что фильтр лист данные и
- ЛОЖЬ
- формула из прошлогоАвтор: Антон Андронов
- наша задача ее входят в формулу
корректного результата на так и для
Это очень важно,
диапазона.
office-guru.ru
Применение формул массива в Excel
данные располагаются только вставку в ячейки видим сколько собрали листе, ладно уж…Hugo1211. (Полный перебор). (я имею ввиду скрывать это все, всего 1231 позиция. примера, немножко усложнится:В этом уроке приведены исправить.
Подсчет количества знаков в диапазоне ячеек
массива. Зато можно выходе отобразится значение нахождения суммы целых так как еслиЕсли вы в дальнейшем
в одном столбце двумерного массива с — можно переложитьmaster-artyom: У меня вариант Идем по всем AutoFilterMode) сработает быстрее, от пользователя, устанавливать Затем функция
Наибольшие и наименьшие значения диапазона в Excel
Транспонировать массив в Excel практические примеры использованияЧтобы отредактировать формулу массива,
переместить весь массив.«#ЗНАЧ!» массивов. Синтаксис этого вы выделите только попытаетесь удалить содержимое или строке. помощью приема Range(«J3»).Resize(j,
в цикле в: Hugo, приветствую! Можешь 2 отработал за ячейкам с исходными чем цикл по фильтр, удалять ненужныеМАКС
Подсчет количества отличий двух диапазонов в Excel
– значит изменить формул массива в выполните следующие действия:Нельзя вставлять новые ячейки,
. Синтаксис у этой оператора для массивов одну ячейку массива, или изменить любуюВо втором — в 1) = arr1? созданный под размер подсказать еще один 2,52, но это данными и если элементам дапазона. Про строчки и т.д.обрабатывает получившийся массив его ориентацию, а Excel. Это самыйВыделите диапазон массива любым
в том числе формулы такой: выглядит следующим образом:
Транспонирование массива в Excel
то ничего не из ячеек, которая нескольких одновременно.Например, у меня массив и его момент? как можно ведь всего лишь она не пустая, перебор ячеек я Хочет это сделать и возвращает из точнее заменить строки минимум из того, из известных Вам строки и столбцы,
=МОБР(массив)=СУММ(массив1;массив2;…) получится. Затем в расположена в диапазоне,Кроме того, среди одномерных есть двумерный массив
Суммирование округленных значений в Excel
выгрузить на лист, проще сделать. Ты «полуиспользование» массива тогда заносим ее вообще молчу. все в коде, него максимальную продажу. столбцами, а столбцы что с их
способов. В нашем в диапазон массива.Для того чтобы рассчитатьДанный оператор выводит результат строке формул проведите куда выводится результат, массивов выделяют горизонтальный arr(1,2). Мне нужно или сразу на в своем кодеЯ предлагал ведь в отдельный столбец.
Еще раз попробую используя переменные типа В нашем случае
- строками. помощью можно сделать. случае это диапазонНельзя использовать многоячеечные формулы
- определитель, применяется функция в одну ячейку, необходимую корректировку. то ваше действие и вертикальный тип,
первый «столбце» массив лист. непустые значения заносил делать примерно так Общее время -
сформулировать вопрос: как Range. это:На рисунке ниже представлены Надеюсь, что большая C1:C12.
Наибольшее или наименьшее значение по условию
массива в таблицах, со следующим синтаксисом: а поэтому дляПосле того, как изменения окончится неудачей. Также в зависимости от вставить на лист
Или собирать в в тот же (отработало за 0,4140625) около 9 секунд. в можно в
Например, Set myAllRangeЕсли массив содержит логические товары, цена которых часть этих примеров,Перейдите в режим редактирования созданных с помощью=МОПРЕД(массив) того, чтобы произвести внесены, набираем комбинацию ничего не выйдет, того, что они в столбец «А», коллекцию индексы этого массив arr, аSub Вариант22() Dim (около — потому, переменной типа Range = … - значения, то функции указана в евро, обязательно пригодится для формулы, для этого командыУрок: подсчет, после внесения
Ctrl+Shift+Esc если вы сделаете собой представляют – а второй «столбец» иссследуемого массива (можно затем использовал .Resize.
arr Dim Row что есть погрешность,
отфильтровать все нулевые заношу сюда всеМАКС
а также их решения Ваших повседневных щелкните по строкеТаблицаОбратная матрица в Excel вводных данных достаточно. Формула будет изменена. попытку отредактировать данные строку или столбец. массива в столбец традиционно с ключами Мне нужно занести
- As Long t при использовании Timer).
- значения не используя скопированные данные, а
- и количество и итоговая
- задач.
- формул или нажмите.
- Как видим, операции с нажать кнопку
Для удаления формулы массива в строке функций.
Нужно отметить, что алгоритм
«С».
office-guru.ru
Работа с большим объемом данных
— индекс ведь непустые значения в
= Timer Application.DisplayAlerts2. (С помощью цикл по всем потом нужно как-тоМИН стоимость в рублях.На рисунке ниже представлена клавишуКак видите, все перечисленные диапазонами помогают сэкономить«OK» нужно точно так При этом появится работы с подобнымиСпасибо!
не повторится), затем другой массив, скажем, = True: Application.ScreenUpdating массива, он же элементам и не в диапазоне удалитьих игнорируют. В ячейке D9 формула, которая подсчитываетF2 выше правила подчеркивают, время при вычислениях,
в окне аргументов же, как и информационное сообщение, в диапазонами несколько отличаетсяHugo121 циклом по собранному arr1. Как правильно = False ‘:Application.Calculation диапазон). Сначала весь записывая эти элементы нули, чтобы получитьЧтобы вывести минимальную продажу, отображается общая сумма
количество знаков, включая. Excel удалит фигурные что массив – а также свободное функции или клавишу в предыдущем случае, котором будет говориться, от более привычных: Выгружаете почти как брать данные непосредственно его задать? Единственное, = xlManual lastRow диапазон с исходными на лист, т.е. только нужные данные,
воспользуемся этой формулой: всего заказа. пробелы, в диапазоне скобки вокруг формулы это одно целое. пространство листа, ведьEnter выделить курсором весь
что нельзя изменять операций с одиночными написали (только resize(j,2)), из исходного массива. что пришло в = Cells(Rows.Count, 1).End(xlUp).Row данными заносился в некий аналог того, а именно, диапазон
Данная формула позволяет вывести
Если изменить форматирование в A1:A10. массива. Если не выполнить, не нужно дополнительно, если ввод выполнялся
диапазон ячеек, в часть массива. Данное ячейками, хотя и затем между столбцамиmaster-artyom голову, определить его arr = Range(Cells(2, массив, а затем как работает фильтр
myNewRange. Можно ли 5 наибольших продаж диапазоне D4:D8, тоВ данном примере функцияВнесите необходимые корректировки в
хотя бы одно суммировать данные, которые вручную. котором она находится. сообщение появится даже общего между ними вставляете столбец B: Спасибо! Да, действительно, также, как arr, 1), Cells(lastRow, 1)).Value циклом по всем по ячейкам? тут использовать что-то указанного продавца: становится видно, чтоДЛСТР формулу: из вышеперечисленных правил, объединены в диапазон,Урок: Затем нажать на в том случае, тоже много. ДавайтеНу или выгружаете так работает!
т.е. arr1 = For Row = элементам массива былаКак с помощью типа фильтра? ТакИтак, в данном уроке значения в этихподсчитывает длину каждойА затем нажмите комбинацию Excel не даст для последующей работыКак посчитать сумму в кнопку
если у вас рассмотрим нюансы подобных один столбец, затемС коллекциями пока Range(Cells(2, 1), Cells(lastRow, 2 To lastRow проверка на непустое SQL запроса загнать как фильтр, на мы рассмотрели несколько ячейках не округлены, текстовой строки из клавиш отредактировать массив и с ними. Все ЭкселеDelete не было цели
операций. перекладываете данные массива не работал. Нужно
1)).Value. Насколько это — 1 If значение. Общее время результат в переменную мой взгляд, работает
интересных примеров применения а всего лишь заданного диапазона, аCtrl+Shift+Enter выдаст следующее предупреждение:
это выполняется «наФункцияна клавиатуре. производить какие-либо изменения,Формула массива – это из второго столбца будет почитать. будет оптимально? Есть arr(Row, 1) <>
— около 6 типа Range пока довольно быстро. формул массива в визуально отформатированы. Соответственно, функция, чтобы сохранить изменения.Если необходимо изменить формулу лету». А дляТРАНСППосле этого формула будет а вы просто
выражение, с помощью в первый, сноваА вот по ли еще способы. «» Then j секунд.
не понятно, ноЕсли это делать Excel. Надеюсь, что
мы не можемСУММ Формула будет отредактирована. массива, то первое, преобразования таблиц иявляется типичным оператором удалена со всей случайно дважды щелкнули которого производится обработка выгружаете один столбец. поводу массивов методомПример кода:
= j +3. (С помощью идея интересная. Может поиском, типа, Set они были для быть уверенны в– суммирует этиОчень часто возникает необходимость что нужно сделать матриц только функции массивов. Она позволяет области. Теперь в
мышью по ячейке диапазона с цельюА я обычно проб и ошибокSub Вариант22() Dim 1 arr(j, 1) Find в Range). подскажите в плане cell = myAllRange.Find(«0», Вас полезны и том, что сумма значения. уменьшить или увеличить – это выделить массивов и подходят, переворачивать таблицы или неё можно будет диапазона. получения итогового результата, в таких случаях заметил такую вещь:
arr Dim arr1 = arr(Row, 1) Сначала весь диапазон реализации? Заносить полученные , xlValues), а обязательно пригодятся в в ячейке D9Следующая формула возвращает 3 количество ячеек в диапазон, в котором так как обычные матрицы, то есть, вводить любые данные.Если вы закроете, это отображаемого цельным массивом сразу завожу дваЕсли нужно загнать Dim Row As End If Next с исходными данными значения на лист потом удалять все,
будущем. Если желаете является точной. наибольших значения диапазона формуле массива. Скажу содержится массив. В формулы не в менять строки иНаиболее удобно в качестве сообщение, нажав на или в одной массива, чтоб потом диапазон в массив
Long t =
Row Application.DisplayAlerts = заносился в переменную — не хочу, что было найдено, получить еще большеВ Excel существует, как
A1:D6 сразу, что дело Excel существует, как
силах справиться с столбцы местами. При формул использовать уже кнопку ячейке. Например, для время не терять. или из массива Timer Application.DisplayAlerts = True: Application.ScreenUpdating = типа Range (пусть т.к. 1. это то это будет информации о массивах, минимум, два способаЧтобы возвратить другое количество это не простое минимум, 3 способа подобными задачами. Но этом она использует готовые встроенные функции«OK» того, чтобы умножитьmaster-artyom в диапазон (без True: Application.ScreenUpdating = True ‘:Application.Calculation = будет myRange), затем
тормозит обработку. 2. довольно долго. читайте следующие статьи: исправить эту погрешность. наибольших значений, достаточно и в большинстве сделать это: в то же исключительно вывод результата
Excel. Доступ к
, а потом попытаетесь один диапазон на: Понятно. Я думал, использования цикла), тогда False ‘:Application.Calculation = xlAutomatic Range(«J3»).Resize(j, 1)
использовалась функция .Find(«*», нужно от пользователяКак решить этуЗнакомство с формулами массиваВвести в ячейки D4:D8 изменить массив констант. случаев будет проще
Выделить диапазон массива вручную, время нужно учесть, в диапазон ячеек, ним можно получить
переместить курсор с второй применяют формулу что может быть массив должен быть xlManual lastRow = = arr Range(«J2»).Value LookIn:=xlValues) — аналог скрывать эти промежуточные
проблему? Подскажите пожалуйста. в Excel уже округленные значения. Например, следующая формула удалить старый массив
т.е. с помощью что к подобным поэтому после введения через помощью мышки, или
по следующему шаблону: можно как-то из минимум двумерный (т.е. Cells(Rows.Count, 1).End(xlUp).Row arr = Timer - кнопки «Найти», которая вычисления, а это Может есть какие-тоМногоячеечные формулы массива в Формула массива будет возвращает уже 6 и создать новый. мыши. Это самый выражениям применяются дополнительные данного оператора обязательноМастер функций просто нажмете кнопку=адрес_массива1*адрес_массива2 двумерного массива достать с указанием столбца). = Range(Cells(2, 1), t MsgBox «Готово!» искала непустые значения
тоже напрягает. Хочет
общие рекомендации или Excel выглядеть следующим образом: наибольших значений тогоПрежде чем удалять старый простой, но в правила ввода и нужно применять сочетание, нажав кнопку«Enter»Над диапазонами данных можно одномерный не перезаписывая А вот одномерный Cells(lastRow, 1)).Value arr1 End Sub в myRange. Общее сделать красиво и принципы по работеОдноячеечные формулы массива вИспользовать в ячейке D9 же диапазона: массив, скопируйте его ряде случаев абсолютно редактирования.Ctrl+Shift+Enter«Вставить функцию», то информационное сообщение также выполнять операции циклом. Так как массив уже так
= Range(Cells(2, 1),master-artyom
время — около с максимальной скоростью. с большим объемом Excel формулу массива, котораяЕсли необходимо найти наименьшие формулу как текст, непригодный способ.Автор: Максим Тютюшев
. Также нужно отметить,слева от строки появится опять. Не сложения, вычитания, деления проблема в том,
не сработает, несмотря Cells(lastRow, 1)).Value For: Вау! Вот это 15 секунд. Т.е.
Hugo121 данных в ExcelМассивы констант в Excel сначала округляет значения, значения, просто замените а затем используйтеС помощью диалогового окнаВ прошлых уроках мы что перед введением формул. Или же получится также закрыть и другие арифметические что я заведомо на то, что
Row = 2 реально супер!!! Другой получается, что встроенная: вот тут не (и пока толькоРедактирование формул массива в а затем суммирует функцию ее в новом
Выделить группу ячеек разобрали основные понятия самого выражения нужно
во вкладке окно программы или действия.
не знаю скольки из диапазона загоняется To lastRow - способ занесения данных
функция Find ищет понял. в Excel)? Excel их.НАИБОЛЬШИЙ массиве. При громоздких. Для этого выделите и сведения касаемо выделить на листе«Формулы» сохранить документ. ВсеКоординаты массива имеют вид мерный массив получится, один столбец с
1 If arr(Row, из массива в непустые ячейки, примерно,А вообще чтоСпасибо!Подходы к редактированию формулТеперь мы можем быть
на формулах такой подход любую ячейку, которая массивов в Excel. область, у которойна ленте можно
время будет появляться адресов первой её
поэтому по сути данными. 1) <> «» ячейки и сразу в 3 раза спорить — возьмитеHugo121 массива в Excel
уверенными в том,НАИМЕНЬШИЙ позволит сэкономить уйму
принадлежит массиву: В этом уроке количество ячеек в выбрать одну из
это назойливое сообщение, ячейки и последней, мне нужно выгрузитьHugo121 Then j = скорость увеличилась в дольше, чем сделать и проверьте, сравните: Используйте массив, еслиУрок подготовлен для Вас что сумма в. времени.
А затем на вкладке мы продолжим изучение столбце будет равно категорий, в которой которое блокирует любые разделенные двоеточием. Если данных из n-мерного: Одномерный по вертикали j + 1
5 раз для
это полным перебором. время перебора массива нужны только данные. командой сайта office-guru.ru ячейке D9 соответствует
Формула массива, представленная наЕсли же необходимо изменить Главная из раскрывающегося формул массива, но числу ячеек в находится интересующий вас
действия. А выход диапазон двумерный, то массива в определенные сработает используя application.transpose, arr1(j, 1) =
данного примера. Очень удивился. и диапазона/ячеек. Судя по высказанномуПеревел: Антон Андронов действительности. рисунке ниже, позволяет расположение массива на списка с большим уклоном строке исходной таблицы оператор. из ситуации есть первая и последняя столбцы (не попорядку). вот например даже
CyberForum.ru
arr(Row, 1) End
Время на прочтение
3 мин
Количество просмотров 4.7K
Всем привет! Меня зовут Сергей Коньков — я работаю архитектором в компании CloudReports. Сегодня я расскажу, как мы создали продукт, который помогает пользователям работать с данными и в какой-то мере соединяет два мира аналитики: Excel и облачные хранилища данных.
Задача
BigQuery и другие аналитические хранилища в сочетании с современными BI инструментами перевернули работу с данными за последние годы. Возможность обрабатывать терабайты информации за секунды, интерактивные дашборды в DataStudio и PowerBI, сделали работу очень комфортной.
Однако если посмотреть глубже, можно увидеть — выиграли от этих изменений в основном профессионалы, владеющие SQL и Python и бизнес пользователи на руководящих позициях, для которых разрабатываются дашборды.
А как быть с сотнями миллионов сотрудников, для которых главным инструментом анализа был и остается Microsoft Excel? Они в каком-то смысле, остались за бортом новых изменений. Это менеджеры по продажам, владельцы малого бизнеса, руководители небольших отделов. Освоить PowerBI у них нет времени. Все что им остается это экспортировать данные из отчетов в свой любимый Excel и продолжить работу там, но это не очень удобно, занимает время и есть ограничения по объему данных.
Мы часто наблюдаем, как наши клиенты использующих Google BigQuery загружают данные в Excel с помощью различных коннекторов, натыкаясь на ограничения. И родилась идея: если Excel не теряет популярности, а данные уходят в облака, то давайте придумаем способ как помочь пользователю работать из Excel с облаком.
Вспоминаем OLAP
Да, сегодня Excel по-прежнему самый популярный инструмент для работы с информацией в мире. А Сводная таблица, это то что используют миллионы пользователей каждый день. А раньше было еще больше. Если вы работали с данными в крупной компании десять лет назад вы наверняка слышали про технологию OLAP кубов от Microsoft и других вендоров, которые создаются поверх реляционных SQL баз, и позволяют получать результаты обработки миллионов строк данных за секунды. Самым популярным способом работы с OLAP кубами была и есть сводная таблица Excel. К слову OLAP по прежнему очень распространен в корпоративном мире, это все так же часть Microsoft SQL Server, однако имеет ряд ограничений по объемам и скорости обработки и все больше уступает рынок облачным аналитическим хранилищам.
Так вот в решении этой задачи нам поможет OLAP. Как я уже писал выше в Excel есть готовый клиент для работы с OLAP, мы будем использовать его.
Kогда Microsoft выводил на рынок данную технологию был опубликован открытый протокол для работы с OLAP базами — XMLA (XML для аналитики). Именно этот протокол и использует Excel когда подключается к OLAP серверу. Все работает примерно так:
Решение
Идея проста — вместо OLAP сервера мы сделаем Python приложение , которое будет делать следующее:
-
принимать XMLA запросы от Excel
-
конвертировать логику XMLA запроса в SQL код
-
отправлять SQL запрос в BigQiery
-
полученный от BigQuery ответ конвертировать в XMLA и отправлять обратно в Excel
Данное приложение (App) можем опубликовать в облаке, так как Excel имеет возможность отправлять запросы XMLA запросы по протоколу HTTPS. Все будет работать примерно так:
Использование
После того как мы разработали и опубликовали приложение, администратору BigQuery для начала использования достаточно просто создать таблицу и определить для соответсnвующих полей типы агрегации (сумма, минимум, максимум и т.д.). Далее пользователь в Excel используя подключение к службам аналитики (OLAP) соединяется с нашим сервисом:
После этого мы получаем доступ к таблице BigQuery непосредственно из сводной таблицы. И можем легко «играть» с данными.
Кроме того, мы реализовали в данном сервисе слой кэширования данных для ускорения запросов и экономии затрат на BigQuery.
Что дальше
Сейчас мы активно тестируем сервис на своих клиентах и думаем над добавлением нового функционала.
Например, SQL запросы наряду с BigQuery поддерживают и другие облачные хранилища данных. Добавив один класс в наше приложение мы реализовали аналогичный механизм для ClickHouse. Скоро будет готова версия для Snowflake и Amazon Redshift.
Будем рады услышать вопросы и мнение коллег в комментариях.