Здравствуйте, может кто-то сможет объяснить начинающему пользователю почему нужно ставить ; в конце между скобками в формуле. {=ИНДЕКС('Справочник '!H$3:H$28;ПОИСКПОЗ(1=1;ЕЧИСЛО(ПОИСК('Справочник '!B$3:B$28;B2));))} Заранее извиняюсь за глупый вопрос
Здравствуйте, может кто-то сможет объяснить начинающему пользователю почему нужно ставить ; в конце между скобками в формуле. {=ИНДЕКС('Справочник '!H$3:H$28;ПОИСКПОЗ(1=1;ЕЧИСЛО(ПОИСК('Справочник '!B$3:B$28;B2));))} Заранее извиняюсь за глупый вопрос sonytsatsa
Сообщение отредактировал sonytsatsa - Четверг, 02.11.2023, 21:26
- ну можно и не ставить. Но читаем хелп: Тип_сопоставления. Необязательный аргумент. Число -1, 0 или 1. Аргумент тип_сопоставления указывает, каким образом в Microsoft Excel искомое_значение сопоставляется со значениями в аргументе просматриваемый_массив. По умолчанию в качестве этого аргумента используется значение 1. Т.е. если не ставить - то будет что по умолчанию. А нам обычно нужно ставить 0! Это как и с ВПР - если нет ; то не будет искать точное соответствие.
- ну можно и не ставить. Но читаем хелп: Тип_сопоставления. Необязательный аргумент. Число -1, 0 или 1. Аргумент тип_сопоставления указывает, каким образом в Microsoft Excel искомое_значение сопоставляется со значениями в аргументе просматриваемый_массив. По умолчанию в качестве этого аргумента используется значение 1. Т.е. если не ставить - то будет что по умолчанию. А нам обычно нужно ставить 0! Это как и с ВПР - если нет ; то не будет искать точное соответствие.Hugo
Как я в свое время для себя понял (не помню, вычитал где-то или как-то "само пришло"), точка с запятой без явного указания последующего параметра подразумевает этот параметр равным нулю или пустой строке - в зависимости от контекста:
Код
=ЕСЛИОШИБКА(1/0;)
возвращает 0.
Код
=ПОДСТАВИТЬ(234;3;)
возвращает "24", т.е. тройка заменяется на пустую строку "".
К значению по умолчанию, в общем случае, это отношения не имеет. Значение по умолчанию может быть и 1, как в типе сопоставления в ПОИСКПОЗ.
[p.s.]Подобная точка с запятой, подразумевающая 0 или "" после себя или ПЕРЕД собой, может быть в любом месте формулы - и в начале, и в середине, т.е. не обязательно только в конце[/p.s.], например:
Код
=СМЕЩ(A1;;;3)
означает то же самое, что и
Код
=СМЕЩ(A1;0;0;3;1)
Или вот занятный комплексный (еще и двойной минус!) пример:
Про двойной минус только на моей памяти спрашивали уже не раз, можно погуглить - как по Форуму, так и в мировом масштабе. Собственно, как и про обсуждаемую точку с запятой и пропущенные параметры.
Как я в свое время для себя понял (не помню, вычитал где-то или как-то "само пришло"), точка с запятой без явного указания последующего параметра подразумевает этот параметр равным нулю или пустой строке - в зависимости от контекста:
Код
=ЕСЛИОШИБКА(1/0;)
возвращает 0.
Код
=ПОДСТАВИТЬ(234;3;)
возвращает "24", т.е. тройка заменяется на пустую строку "".
К значению по умолчанию, в общем случае, это отношения не имеет. Значение по умолчанию может быть и 1, как в типе сопоставления в ПОИСКПОЗ.
[p.s.]Подобная точка с запятой, подразумевающая 0 или "" после себя или ПЕРЕД собой, может быть в любом месте формулы - и в начале, и в середине, т.е. не обязательно только в конце[/p.s.], например:
Код
=СМЕЩ(A1;;;3)
означает то же самое, что и
Код
=СМЕЩ(A1;0;0;3;1)
Или вот занятный комплексный (еще и двойной минус!) пример:
Про двойной минус только на моей памяти спрашивали уже не раз, можно погуглить - как по Форуму, так и в мировом масштабе. Собственно, как и про обсуждаемую точку с запятой и пропущенные параметры.Gustav