Без примера сложно сказать, что вам в сущности надо, но для меня
=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);
""
)
})
Обратите внимание, что заполняется две колонки для всего диапазона дат. Очень удобно. Т.о. вам нужно просто копировать формулу во второй строке для каждого диапазона только один раз. "Протягивать" ничего не нужно.
Мой пример.