Создание диаграммы Excel с динамическими датами из выпадающего меню - PullRequest
0 голосов
/ 01 ноября 2018

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

 Date    (Total Funding Before) (Total Funding During) (Total Funding After)
 8/2017    150                          160                  150
 9/2017    160                          160                  160
 10/2017   170                          170                  150
 11/2017   180                          180                  170
 12/2017   190                          180                  160

Может кто-нибудь дать мне представление о том, как это создать?

1 Ответ

0 голосов
/ 02 ноября 2018

Да, это возможно: D.

С некоторыми динамическими диапазонами и большим терпением вы можете создать что-то вроде этого результата:

enter image description here

Пошаговое руководство:

Сначала мы превращаем всю таблицу в «таблицу Excel». Перейдите в «Домой» -> «Формат в виде таблицы».

enter image description here

Следующая часть, нам нужно создать пару «именованных диапазонов». Перейдите: «Формулы» -> «Диспетчер имен» -> «Новый ...»

enter image description here

Мы делаем дату начала «Именованным диапазоном». Я называю это «Start_Date». И это относится к ячейке $B$3. Меня зовут Sheet1.

Мы делаем то же самое для «End_Date». Мы ссылаемся на ячейку ниже, $ B $ 4.

enter image description here

Затем мы создаем диапазон имен для столбца «Дата». Мы называем наш диапазон "Dates". Убедитесь, что «Относится к:» в этом формате «= TableX[Column Name]». В нашем случае =Table1[Date]. Обратите внимание, что менеджер имен не использует «B7: B16», а является ссылкой на область столбца таблицы. Последний шаг очень важен! , так как мы хотим сделать все ссылки динамическими.

enter image description here

Время создания выпадающего списка для начальной и конечной даты.

Перейти к: «Данные» -> «Проверка данных» -> Выбрать: «Список» -> «Источник»: =Dates, который является нашим диапазоном, который мы назвали на предыдущем шаге.

enter image description here

Время создать динамический диапазон для оси X. Я называю это "XAxis"

=OFFSET(Sheet1!$B$7,MATCH(Start_Date,Dates,0)-1,0, MATCH(End_Date,Dates,0)- MATCH(Start_Date,Dates,0)+1,1)

Эта формула будет искать, где первая строка для первой даты (Start_Date). Затем он увидит, где находится дата окончания (End_Date). Эти два вместе создадут диапазон, который нам нужен. У меня есть ";" в качестве разделителя, в то время как в США есть ",".

enter image description here

Теперь мы создаем все нужные вам Y-диапазоны. Один на каждую серию, которую мы хотим построить.

Мы начинаем с колонки «Общее финансирование до». Я называю это: YTotalFundingBefore и применяю следующую формулу.

=OFFSET(XAxis,0,1)

Таким образом, мы используем тот же диапазон, что и XAxis, и смещаем его на один столбец вправо.

enter image description here

Мы делаем то же самое для следующих двух серий.

Обратите внимание, что для каждой новой серии мы создаем диапазон имен, мы меняем смещение столбца. Таким образом, последняя серия, которую я назвал "YTotalFundingAfter", и формула почти такая же, за исключением 3.

=OFFSET(XAxis,0,3)

enter image description here

Время применять эти диапазоны для графика. Я выбираю всю таблицу и создаю линейный график. Затем я выбираю первую серию чартов: «Total Funding Before». В строке формул (помеченной на рисунке желтым цветом) мне нужно изменить ссылки.

enter image description here

Здесь я хочу дать трюк, чтобы сэкономить время.

Когда я переписываю формулы, я начинаю так: так как именованные диапазоны появятся автоматически (как вы можете видеть на рисунке):

=SERIES(Sheet1!$C$6,Xaxis,YTotalFundingBefore,1)

enter image description here

Затем я добавляю имя листа перед всеми переменными. В моем случае "Лист1". Полная формула будет:

=SERIES(Sheet1!$C$6,Sheet1!Xaxis,Sheet1!YTotalFundingBefore,1)
=SERIES(HeaderCell , XAxis Range , Y-Axis Range , Serie Number)

И затем мы нажимаем Enter.

enter image description here

То же самое для других серий, поэтому второй будет:

=SERIES(Sheet1!$D$6,Sheet1!Xaxis,Sheet1!YTotalFundingDuring,2)

enter image description here

И то же самое для последней серии. Обратите внимание, что я изменяю ячейку заголовка ($E$6) и серийный номер (3):

=SERIES(Sheet1!$E$6,Sheet1!Xaxis,Sheet1!YTotalFundingAfter,3)

enter image description here

Наконец, у нас есть динамический график, основанный на наших значениях начальной и конечной даты.

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

enter image description here

У этой настройки есть один важный недостаток. Когда пользователь применяет всю первую дату в диапазоне дат (2017-08) И последняя дата в диапазоне дат 2018 -07, серия диаграмм удалит диапазоны имен и перейдет к абсолютным значениям, например: (=SERIES(Sheet1!$E$6,Sheet1!$B$7:$B$18,Sheet1!$C$7:$C$18,1)). Мое решение состояло в том, чтобы иметь одну или две дополнительные даты в начале диапазона дат. Даты, которые мы, вероятно, никогда не будем использовать, и поэтому никогда не будем использовать полный диапазон дат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...