Использование косвенного для ведения годовой суммы из другого листа

Первый раз постер. Я пытаюсь суммировать ячейки с более ранней датированной рабочей таблицы, чтобы сохранить текущие значения для сравнения. То, как сейчас настраивается моя рабочая тетрадь, на каждом листе у меня есть данные за один год, а используемые данные представляют собой ежемесячные отчеты. Ежемесячные отчеты вставляются в мою таблицу "Шаблон". Данные из них затем организуются во временные ряды на отдельных листах, а название для каждого листа - это год, которому соответствуют данные. При добавлении новых данных в течение года я хотел собрать итоговые данные за предыдущий год, чтобы сравнить похожие временные рамки. Вот как выглядит моя формула в настоящее время.

=SUM(INDIRECT("'"&LEFT($A13,4)&"'!C17:OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))"))

LEFT($A13,4) ссылается на год, который я хочу получить для текущего листа, и MONTH(RIGHT(Template!C$3,10)) определяет номер месяца для текущего отчета. Итак, за май 2015 года Left($A13, 4) вернется "2014" а также MONTH(RIGHT(Template!C$3,10)) вернет значение 5,

Поскольку (я надеюсь) очевидно, я пытаюсь начать суммирование в начале годовой серии, найденной на листе предыдущего года, а затем использовать OFFSET Внесите только те месяцы, которые заканчиваются текущим отчетным месяцем для этого года, чтобы внести изменения с начала года. Это возвращается #REF! в Excel, когда я пытаюсь сделать это. Первые впечатления делают, кажется, что INDIRECT не признает OFFSET как функция, и рассматривает это как текст. Есть ли способ обойти это?

Я вижу, что нечто подобное было опубликовано ранее, но не смог перевести на мою ситуацию. Любая помощь будет принята с благодарностью.

2 ответа

Трудно копировать без данных, так что возьмите это за то, что оно стоит...

Разбивая вашу формулу (один отдельный аргумент на строку), мы имеем

=SUM(
  INDIRECT(
    "'"
    &
    LEFT($A13,4)
    &
    "'!C17:OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))"
  )
)

имеется в виду начало строки "'!C17:OFFSET(... вероятно, рассматривается как текст в Excel, так как он заключен в кавычки. Вы, вероятно, хотите

=SUM(
  INDIRECT(
    "'"
    &
    LEFT($A13,4)
    &
    "'!"
    &
    C17
    &
    ":"
    &
    OFFSET(C$16,MONTH(RIGHT(Template!C$3,10)))
  )
)

для того, чтобы кормить весь синтаксис (', !, :и т. д.) INDIRECT в виде строк и все значения ячеек в результате формулы.

Спасибо, что нашли время, чтобы опубликовать ответ на мой вопрос. Я думаю, что нашел гораздо более подходящее решение моей проблемы, чем я предполагал ранее. Вместо того, чтобы иметь только годовые таблицы с данными за один год, вместо этого я добавляю отчеты в конец новой таблицы со всеми временными рядами на листе под названием "Необработанные данные" со столбцом "А" новый лист, содержащий дату окончания месяца. Так выглядит моя формула для добавления новых отчетов в таблицу "Необработанные данные".

=IF(AND(YEAR($A2)=YEAR(Template!$F$4), MONTH('Raw Data'!$A2)=MONTH(Template!$F$4)),Template!C$35," ")

Template!$F$4 ссылается на дату, найденную в отчете.

Мои ежегодные рабочие листы затем ссылаются на лист "Сырые данные", чтобы исключить необходимость использования INDIRECT функция. Для поддержания сумм за текущий год для данных, найденных в столбце "C" "Необработанных данных", вот моя формула.

=SUM(INDEX('Raw Data'!C:C,(MATCH(EOMONTH($A17,-12),'Raw Data'!$A:$A,0))):OFFSET(INDEX('Raw Data'!C:C,(MATCH(EOMONTH($A17,-13),'Raw Data'!$A:$A,0))),MONTH(RIGHT(Template!$F$4,10)),0))

EOMONTH($A17, -12) настроен на постоянную привязку к январю предыдущего года. Это то есть OFFSET по номеру месяца, найденного в отчете, на который ссылается MONTH(RIGHT(Template!$F$4,10)) и подвела.

Другие вопросы по тегам