Я пытаюсь заставить INDIRECT работать, чтобы заменить лист Transactions2 именем листа в A1, используя следующую формулу:

=IF(AND(Transactions2!$K2>=Periods!$B$3, Transactions2!$K2<=Periods!$C$3),Transactions2!$L2,"")

Периоды в порядке, как и без INDIRECT как я проверяю дату в транзакциях2!$ K2 против дат в таблице периодов, чтобы определить, попадает ли она в диапазон дат. Если в диапазоне я беру сумму в долларах в L2, иначе я оставляю это поле пустым.

Я старался

=IF(AND(INDIRECT("'"&A1&"'!"&$K2>=Periods!$B$3), INDIRECT("'"&A1&"'!"&$K2<=Periods!$C$3),INDIRECT("'"&A1&"'!"&$L2,"")

а также

=IF(AND(INDIRECT("'"&A1&"'!$K2>=Periods!$B$3"), INDIRECT("'"&A1&"'!&$K2<=Periods!$C$3"),INDIRECT("'"&A1&"'!"&$L2,"")

и оба дают ошибки #REF

2 ответа2

1

У вас правильная идея, просто нужна небольшая настройка:

=IF(AND(INDIRECT(A1 & "!$K2")>=Periods!$B$3, INDIRECT(A1 & "!$K2")<=Periods!$C$3),INDIRECT(A1 & "!$L2"),"")

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

1

Если я помню, вам нужно включить K2 в кавычки:

=IF(AND(INDIRECT("'"&A1&"'!$K2">=Periods!$B$3), INDIRECT("'"&A1&"'!$K2"<=Periods!$C$3),INDIRECT("'"&A1&"'!$L2","")

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .