Дано: данные по продажам товарных позиций по месяцам. Много строк с товарами и столбцы-месяцы. Итоговых сумм у нас нет. Но при этом мы хотим посмотреть динамику визуально - по всем товарам по месяцам.
Выход - рассчитать суммы прямо в массиве, который будет аргументом функции SPARKLINE. Тогда никаких дополнительных ячеек использоваться не будет.
Сумма по каждому столбцу (месяцу) - СУММ(B2:B), СУММ(C2:C) и так далее.
После объединяем их в один массив:
{СУММ(B2:B) \ СУММ(C2:C) \ СУММ(D2:D) \ СУММ(E2:E) \ СУММ(F2:F) \ СУММ(G2:G)}
И остается этот виртуальный диапазон данных (массив) использовать как аргумент в функции, формирующей спарклайн. Вторым аргументом будет тип спарклайна (charttype) - столбчатый (column). Тип спарклайна тоже задаем в массиве, экономим место на рабочем листе 😉 =SPARKLINE({СУММ(B2:B) \ СУММ(C2:C) \ СУММ(D2:D) \ СУММ(E2:E) \ СУММ(F2:F) \ СУММ(G2:G)} ; {"charttype" \ "column"})
***Более сложный и универсальный вариант: когда вам не хочется перечислять много функций, а также менять этот набор при добавлении новых столбцов, можно создать универсальную формулу, которая будет возвращать сумму по всем имеющимся на листе столбцам (и менять возвращаемый массив, когда новые месяцы будут добавляться к данным).
Решить задачу можно разными способами, например, так:
- с помощью СЧЁТЗ определить, сколько у нас заполнено столбцов
- с помощью SEQUENCE затем сформировать номера этих столбцов, от первого столбца с данными (в примере это второй столбец на листе)
- подставить это все в АДРЕС, чтобы получить адреса ячеек вида B1, C1 и т.д.
- из АДРЕСа достать номера заголовков с помощью регулярного выражения (достаем только латинские прописные буквы).
- все это собрать в запрос для функции QUERY вида sum(B), sum(C), sum(D) и т.д.
- с помощью ИНДЕКСа взять только вторую строку из выдачи QUERY (так как спарклайн умеет отображать только числа, то заголовки из выдачи QUERY будут ему мешать).
- все это засунуть в функцию SPARKLINE.
Ух! Если у вас будут идеи альтернативных решений этой задачки - пишите, мы с радостью ими поделимся 😉 В файле с примером есть пошаговый разбор.
===
📕 НАШ КУРС НА SKILLBOX (Таблицы и скрипты)
📘 КАНАЛ: @google_sheets / оглавление
📗 ЧАТ: @google_spreadsheets_chat