Функция проверяет, равно ли выражение, функция, формула или отдельная ячейка заданному значению. Если равно - записывает в ячейку указанное значение(аргумент ВернутьЗначение). Если не выполняется - в ячейку возвращается результат Выражения.
Зачем данная функция? По сути, она похожа на встроенную ЕСЛИОШИБКА(IFERROR). Например, есть таблица клиентов, в которой формула ВПР(VLOOKUP) ищет в большой таблице заказов указанного клиента. При нахождении возвращает тип оплаты, в котором может быть пустая ячейка(если оплата была наличными) или конкретный номер банковской карты. И необходимо, чтобы при нахождении пустой ячейки в качестве результата было записано "наличные", а в ином случае - найденный номер карты. Да, это можно сделать при помощи простой формулы ЕСЛИ(IF). Что-то вроде: =ЕСЛИ(ВПР(A2;Заказы!A$1:F$189000;3;0)="";"наличные";ВПР(A2;Заказы!A$1:F$189000;3;0))
Но. Если таблица заказов большая, то выполнение формулы ВПР может занять значительное время. А в случае с приведенной ЕСЛИ и не выполнении условия(=""), формула ВПР будет выполняться ДВА раза: один для проверки условия, а другой для возврата если условие не выполняется. А это может быть почти в 2 раза дольше в зависимости от данных.
Именно в таких случаях и может пригодиться функция MULTEX_ЕслиУСЛОВИЕ: =MULTEX_ЕслиУСЛОВИЕ(ВПР(A2;Заказы!A$1:F$189000;3;0);"";"наличные")
Она выполнит функцию ВПР, запомнит возвращенное ей значение и сравнит его с заданным. Если условие выполняется - запишет указанное для этого случая значение("наличные"). Если условие не выполняется(результат ВПР не пустая ячейка) - запишет запомненное значение, которое вернула ВПР. Т.е. в случае невыполнения условия ВПР выполнится только один раз, а не два. Да и итоговая формула выглядит короче и читабельнее.
Плюс последним аргументом функции можно указать обратную ситуацию - если надо определить, отличается ли результат выражения от заданного нами. Это может пригодиться, если функция должна обработать множество строк, но в определенной группе ячеек нужно именно отличие от заданного значения. Тогда можно признак сравнения записать в отдельный столбец и ссылаться на него.
Вызов команды через стандартный диалог:
Мастер функций-Категория "MulTEx"- MULTEX_ЕслиУСЛОВИЕ
Вызов с панели MulTEx:
Сумма/Поиск/Функции - Специальные - MULTEX_ЕслиУСЛОВИЕ
Выражение(A2) - любое выражение, функция или ссылка на ячейку, выполнение которой необходимо проверить. Если это функция, формула или выражение - они будут сначала вычислены для сравнения.
Сравнить_С(10) - произвольное значение или ссылка на ячейку со значением, с которым необходимо сравнить Выражение.
ВернутьЗначение("наличные") - значение или ссылка на ячейку со значением, которое необходимо записать, если заданное Выражение равно(или не равно - в зависимости от аргумента ЕслиВыполняется) значению Сравнить_С.
ЕслиВыполняется(ЛОЖЬ) - не обязательный. Допускается указание значений ИСТИНА(TRUE) или 1 и ЛОЖЬ(FALSE) или 0. Если указано ИСТИНА(TRUE) или 1, то функция проверяет, равно ли значение, полученное аргументом Выражение аргументу Сравнить_С и если равно - возвращает значение, заданное аргументом ВернутьЗначение.
Если указано ЛОЖЬ(FALSE) или 0, то функция проверяет обратное - отличается ли значение, полученное аргументом Выражение от аргумента Сравнить_С и если отличается(не равно) - возвращает значение, заданное аргументом ВернутьЗначение.