@CREWbig

Как использовать «значение ячейки=названию листа» формулой в диапазоне VLOOKUP?

В B1 ячейке текст в виде промежутка дат.
B1="18.01-25.01"
Есть так же листы,которые названы в честь этих промежутков.
Лист1 = 18.01
Лист2 = 25.01

Хотел через VLOOKUP взять данные из этих листов и вывести разницу значений Листа2 и Листа1, но так как ячейка B1 динамическая,то в диапазон вставил формулу(LEFT и RIGHT), но она не работает...
Пример ниже:

=VLOOKUP(A3;"'"RIGHT(B1;5)"'!A:C";2;FALSE)-VLOOKUP(A3;"'"LEFT(B1;5)"'!A:C";2;FALSE)
"'"RIGHT(B1;5)"'!A:C" - диапазон A:C в листе 25.01 и в формуле он должен отображаться как '25.01'!A:C
Как реализовать это?
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Sheets
Google Products Expert
Без примера сложно сказать, что вам в сущности надо, но для меня

=VLOOKUP(A3;INDIRECT(INDEX(SPLIT(B1;"-");1;1) &"!A:C");2;FALSE)
-VLOOKUP(A3;INDIRECT(INDEX(SPLIT(B1;"-");1;2) &"!A:C");2;FALSE)


работает неплохо. INDEX можно заменить на ваши выражения LEFT/RIGHT.

ОБНОВЛЕНО

Спасибо за пример. Он очень сильно помог. Я бы выбрал следующий путь: добавлять формулу для всего диапазона дат сразу. Например,

=ARRAYFORMULA({
  VLOOKUP($A$2;INDIRECT(LEFT(B1;5)&"!A:C");{2\3};0);
  IFERROR(
    VLOOKUP($A$3:$A$40;INDIRECT(RIGHT(B1;5)&"!A:C");{2\3};0)-
    VLOOKUP($A$3:$A$40;INDIRECT(LEFT(B1;5)&"!A:C");{2\3};0);
    ""
  )
})


5e2e9686164d0145983130.png

Обратите внимание, что заполняется две колонки для всего диапазона дат. Очень удобно. Т.о. вам нужно просто копировать формулу во второй строке для каждого диапазона только один раз. "Протягивать" ничего не нужно.

Мой пример.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы