ISREF + INDIRECT не работает на одном конкретном имени листа - PullRequest
0 голосов
/ 26 июня 2018

Я создал листы в книге Excel.
Я проверяю, существуют ли рабочие листы, используя ISREF и INDIRECT.
Листы будут называться A01, A02 и т. Д. ... B01 и т. Д. ... C01 и т. Д. ... D01 и т. Д. Это работает, кроме как с именем листа C01. Я схожу с ума.
Я проверил это на разных компьютерах и в Office365 (браузер Excel).

Я включил файл сюда.

Я добавил файл. Кто-нибудь знает, в чем проблема? Image (dutch, ISVERWIJZING means ISREF

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

В зависимости от языковой версии Excel Названия листов, такие как "C01" или "R01", могут конфликтовать с обозначением R1C1.

Этого конфликта можно избежать, поместив имена листов в одинарные кавычки при использовании в INDIRECT:

=ISREF(INDIRECT("'"&B1&"'!A1"))

Кажется, не существует последовательного правила, какие имена листов приводят к таким проблемам. Это Когда Excel окружает имена листов одинарными кавычками в файлах workbook.xml (или других xml)? также может быть связано.

Таким образом, наилучшим подходом всегда будет использование одинарных кавычек вокруг имен листов, поскольку они не причиняют вреда, если присутствуют, только если нет.

0 голосов
/ 26 июня 2018

Вероятно, искусственное пространство, либо в ячейке, либо в имени листа!

Кроме того, измените формулу следующим образом, чтобы минимизировать вероятность того, что лишние пробелы испортят формулу. В качестве альтернативы ваш лист Excel может быть по какой-то неизвестной причине автоматически определять стиль R1C1. Чтобы применить стиль A1, добавьте TRUE к необязательному аргументу вашей функции INDIRECT. Таким образом, формула будет выглядеть так:

=ISREF(INDIRECT(TRIM(B1) & "!A1", TRUE))

У меня отлично работает

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...