2013-04-18 19 views
1

У меня есть две даты рабочих дней, first_date и second_date.Обновление таблицы с формулой Excel

У меня есть таблица данных с уменьшением рабочей даты:

second_date  value 1  
second_date - 1 value 2  
second_date - 2 value 3  
    ....    ....  
first_date   value n  
first_date -1  value n + 1  
    ....    .... 

таблица не останавливается после первого свидания.

Я хотел бы построить значение между first_date и second_date. Я нашел способ динамически выбирать значения X/Y: Excel variables X values

Однако теперь у меня есть другая проблема, когда я выбираю дату из границы таблицы данных, она не отображает, что я спросил (что нормально). Я хотел бы обновить таблицу данных в зависимости от моих дат.

Дата в моей таблице данных просто построена: =second_date в первом ряду (D4), =+WORKDAY(D4,-1) во втором ряду, и я использовал щелчок и тащу инструмент для создания других строк рекурсивны.

Есть ли способ остановить эту рекурсию до моего первого свидания без VBA? Как бы вы построили такую ​​таблицу только с формулами?

+2

Было бы предпочтительнее ** запретить ** пользователю выбирать дату вне пределов времени? Это можно сделать довольно легко, я думаю, используя списки проверки и другой Named Range. –

+0

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

+0

Точка, о которой я забыл: у меня много столбцов ценности, некоторые трудоемкие функции.Я хочу динамическую таблицу данных также потому, что не хочу строить 10-летнюю историю, когда мне нужны только 3 месяца данных. –

ответ

0

Без использования VBA единственный способ генерировать данные динамически, что я могу думать, заключается в том, чтобы генерировать данные условно при падении внутри временного интервала между двумя датами. Как вы сказали, вам нужны только данные за 3 месяца, тогда лишние «пустые» ячейки не будут сильно влиять на производительность.

В частности изменить формулу из D5 и далее к следующей (предполагая, что D4 = second_date):

= IF (IFERROR (Трудодень (D4, -1)> = first_date, FALSE), РАБДЕНЬ (D4, -1), # N/A)

Используйте аналогичную условную логику для генерации ваших значений во втором столбце. Вы хотите убедиться, что если условие даты не выполнено, оно выдает значение # N/A. Это важно при создании графика (подробнее об этом ниже).

Вы можете сгенерировать график изначально, как обычно, включая максимальные размеры вашей таблицы (максимум 3 месяца: ~ 60 рабочих дней). Когда вы меняете даты, он будет включать оператор # N/A в датах вне вашего диапазона. График будет игнорировать эти наборы данных, а также адаптировать масштаб, эффективно создавая график только с диапазонами дат, которые пользователь хочет.

Если включение № N/A является предметом озабоченности, есть некоторые дополнительные варианты. Вы можете создать условное форматирование, которое делает шрифт белым для # N/A для косметического разрешения. Или вы можете настроить диаграмму, чтобы игнорировать пустые ячейки и заменить в приведенной выше формуле «» на # N/A, достигнув того же результата.

Надеюсь, это поможет. Пожалуйста, дайте мне знать, требуется ли дополнительное разъяснение или если это не отвечает вашим конкретным потребностям. Cheers

Смежные вопросы