Excel 2016: ссылка на последний лист в формуле - PullRequest
0 голосов
/ 14 сентября 2018

Итак, у меня есть эта формула здесь (которая работает)

=SUM(SUMIF('Inventory 11.09.2018'!$B$2:$B$47;B2;'Inventory 11.09.2018'!$C$2:$C$47);SUMIF($H:$H;B2;$I:$I))

и я хотел бы добиться, чтобы вместо фактического имени рабочего листа (Инвентарь 11.09.2018) формула всегда ссылалась на последний рабочий лист таблицы. Каждый раз, когда выполняется инвентаризация, в таблицу добавляется рабочая таблица.

Я провел небольшое исследование и нашел это решение: Как мне заставить мою формулу всегда ссылаться на последний лист?

Что я сделал с этим решением, так это определил два имени диапазона.

wshNames

=RIGHT(GET.WORKBOOK(1),LEN(GET.WORKBOOK(1))-FIND("]",GET.WORKBOOK(1)))

wshNameLast

=INDEX(wshNames,COUNTA(wshNames)+RAND()*0)

Затем я перешел к следующей формуле:

=SUM(SUMIF(wshNameLast&"!$B$2:$B$47";B2;wshNameLast&"!$C$2:$C$47");SUMIF($H:$H;B2;$I:$I))

Но выдает это сообщение об ошибке при нажатии return: Excel_error_in_formula

Так как это немецкий, в основном говорится:

Есть проблема с этой формулой.

Вы не хотите вводить формулу?

А затем объясняет, что делает апостроф перед формулой.

Если я использую определенные имена исключительно в формуле, например

=wshNameLast

они работают. Если я уберу «SUM» вокруг формулы, как это, просто чтобы проверить, будет ли она работать без «SUM»

SUMIF('Inventory 11.09.2018'!$B$2:$B$47;B2;'Inventory 11.09.2018'!$C$2:$C$47)

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

Вопрос: что я делаю не так и как я могу добраться до работы? Кроме того, я хотел бы решить эту проблему без VB / VBA, если это возможно.

1 Ответ

0 голосов
/ 14 сентября 2018

Вы должны использовать функцию INDIRECT для преобразования строки wshNameLast&"!$B$2:$B$47" в диапазон. Вот так INDIRECT(wshNameLast&"!$B$2:$B$47").

Полная формула:

=SUM(SUMIF(INDIRECT(wshNameLast&"!$B$2:$B$47");B2;INDIRECT(wshNameLast&"!$C$2:$C$47"));SUMIF($H:$H;B2;$I:$I))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...