Я пытаюсь создать ссылку на отдельный лист с помощью INDIRECT. Я также хочу проверить это на наличие ошибок, поэтому я использую ISERROR перед этим.
- H1 - значение даты в формате «нн м.д.». В этом случае 42574 возвращает Сб, 7.23.
- "Сб, 7.23". D2 равно 100.
Допустим, есть вкладка «Сб, 7.23», и я хотел бы получить доступ к ячейке D2. Используя INDIRECT и преобразовав форматированную дату в текст, я создаю эту формулу:
=INDIRECT("'" & TEXT(H1, "nn m.d") & "'.D2")
Другими словами, НЕПРЯМОЙ говорит мне сделать следующую ссылку:
='Sat 7.23'.D2
Когда вкладка существует, она работает отлично (возвращает 100). Но ... что, если вкладки не существует? INDIRECT возвращает #REF!, чего и следовало ожидать. Итак, я бросаю перед ним ISERROR:
=ISERROR(INDIRECT("'" & TEXT(H1, "nn m.d") & "'.D2")
Это ничего не возвращает (или я предполагаю, что FALSE), хотя INDIRECT генерирует ошибку #REF! и, следовательно, должно быть TRUE < / сильный>. Не должно ли?
Чтобы пойти дальше:
=IF(ISERROR(INDIRECT("'" & TEXT(H1, "nn m.d") & "'.D2")),0,INDIRECT("'" & TEXT(H1, "nn m.d") & "'.D2"))
В этом случае ISERROR всегда истинно, поэтому этот IF всегда переходит к своему оператору "else". Поскольку ссылка недействительна, весь оператор IF возвращает #REF!
='Sat 7.23'!D2
? (обратите внимание на восклицательный знак, а не на точку) b) Разве это не должно быть ЕСЛИ ОШИБКА, а не=IF(ISERROR(...
? - person   schedule 13.07.2016