Динамический диапазон выбора диаграммы Excel - PullRequest
2 голосов
/ 21 сентября 2010

У меня есть клиент, у которого есть простой, но сложный запрос на установку листа Excel, и я не могу понять, с чего начать.Я рисую пробел.

У нас есть диапазон данных.Пример:

Quarter     Data
2010Q1       1
2010Q2       3
2010Q3       4
2010Q4       1

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

То, что я хочу, чтобы произошло: Когда я добавляю следующий Q1 ниже Q4, график «автоматически» выбирает самый последний 4Q.Поэтому, когда я обновляю данные до:

Quarter     Data
2010Q1       1
2010Q2       3
2010Q3       4
2010Q4       1
2011Q1       7

На диаграмме будут отображаться данные за последние 4 квартала (с 2010 года по 2011 год).Цель: сохранить «старые» данные на том же листе, но обновить диаграммы до последних кварталов.

Я думаю: «фиксированные» местоположения данных, обратный ход данных (новые данные вверху)и просто вставляйте строку в каждый новый квартал:

Quarter     Data
2011Q2       9
2011Q1       7
2010Q4       1
2010Q3       4
2010Q2       3
2010Q1       1

Но это повлечет за собой множество изменений в уже существующих таблицах Excel, и я надеялся, что это может быть легче / лучше "исправить".


РЕДАКТИРОВАТЬ: @Lance Roberts ~ Запуск с вашим предложением:
- Немного подробнее ... Данные настроены таким образом, что информация столбца находится в A, но данные для нескольких таблиц в B +.Таблица 1 является B / C.Таблица 2 является D / E.И т.д.
- Данные также находятся на другом листе, чем таблицы.

Исходя из: Это описание смещения , что я пытался сделать, это настроить примерно так:

NAME       FORMULA OFFSET(range, rows, columns, height, width )
DATA0      =OFFSET('DATASHEET'!$A$2, COUNTA('DATASHEET'!$A:$A - 8, 0, 8, 1)
DATA1      =OFFSET('DATASHEET'!$A$2, COUNTA('DATASHEET'!$A:$A - 8, 1, 8, 1)
DATA2      =OFFSET('DATASHEET'!$A$2, COUNTA('DATASHEET'!$A:$A - 8, 2, 8, 1)

Цель состоит в том, чтобы связать длину / местоположение для B/ C / и т.д. для A. Поэтому, если я добавлю столбец на A, то содержимое, привязанное к Data1 / 2, будет соответствующим образом скорректировано (или 3/4/5 / и т. Д., Которые представляют собой разные диаграммы на разных листах)

IЯ хочу, чтобы ячейки данных были выбраны первой строкой, а затем смещением, чтобы получить данные x столбцов.Изменения в формуле, кажется, не работают.

1 проблема, которую я еще не решил: данные не выравниваются должным образом: Example

«Данные» всегда, последниестолбец от 2 до последней четверти.Последняя четверть всегда пуста.Данные сдвигаются вправо (в этом примере под 3Q10 - НЕ под правильным столбцом. 11 должно быть под 4Q10. 9.5 должно быть под 2Q10).

Я знаю, что получаю что-то простое неправильно ...


alt text

Кажется, работает.Первым, что я должен был изменить, был CountA - 9 (не CountA - 8).Далее было «смещение столбца» (0, 1, 2, 3, ...).Также разделите некоторые вещи, чтобы сделать их более разделенными (я должен обучить кого-то еще, как сделать это для ее нужд отчетности).

Спасибо Лэнс:)

Ответы [ 2 ]

3 голосов
/ 21 сентября 2010

Если диаграмма находится на том же листе, что и данные:

Назовите первую ячейку данных (A2) в качестве именованного диапазона, например, TESTRANGE.Создайте именованный диапазон MYDATA в следующей формуле:

=OFFSET(TESTRANGE, COUNTA($A:$A) - 5, 0, 4, 2)

Теперь перейдите на вкладку SERIES диалогового окна SOURCE DATA диаграммы и измените свой оператор VALUES на:

=Sheet1!MYDATA

Nowкаждый раз, когда вы добавляете новую строку, она меняет график.

0 голосов
/ 09 января 2017

Я знаю, что это старый вопрос, но я хотел бы поделиться альтернативой, которая может быть проще.

Измените диапазон квартальных данных на таблицу Excel.Выберите диапазон и нажмите Ctrl + T .В таблице вставки убедитесь, что выбран правильный диапазон данных, и что у моей таблицы есть заголовки, и нажмите ОК.Это преобразует простой диапазон в специальную структуру данных с магическими свойствами.

Затем создайте новый диапазон, который ссылается на последние четыре строки этой таблицы, и создайте диаграмму на основе этого нового диапазона.Это показано ниже.Таблица представляет собой специально отформатированный диапазон в A1: B9 (вы можете выбрать стиль «меньше в вашем лице»), а диапазон печати - D1: E5.

Range converted to Table, with plotting range and chart.

Формулы в ячейках с D2 по D5 приведены ниже.Скопируйте D2: D5 и вставьте в E2: E5, чтобы завершить формулы в нашем диапазоне печати. ​​

D2: = INDEX (Таблица1 [Квартал], ROWS (Таблица1 [Квартал]) - 3) D3: = ИНДЕКС (Таблица1 [Квартал], ROWS (Таблица1 [Квартал]) - 2) D4: = INDEX (Таблица1 [Квартал], ROWS (Таблица1 [Квартал]) - 1) D5: = ИНДЕКС (Таблица1 [Квартал], ROWS (Таблица1 [Квартал)]))

Таблица1 - это имя, присвоенное таблице, а Квартал - это имя первого столбца таблицы (а также заголовок столбца).Вам не нужно вводить все это, просто выберите столбец в таблице.Когда таблица расширяется или сжимается, Table1 [Quarter] отслеживает изменения.

Теперь добавьте новую точку данных.Таблица расширяется, и наша небольшая область подготовки в D1: E5 связывается с новыми последними четырьмя строками таблицы.

Table, plotting range, and chart, showing new last-four data points.

И по мере добавления летстоимость данных, формул и диаграммы продолжают.

Table, plotting range, and chart, again showing new last-four data points.

...