Использование функции IIf для отображения или вычисления значения

Важно :  Данная статья переведена с помощью машинного перевода, см. Отказ от ответственности. Используйте английский вариант этой статьи, который находится здесь, в качестве справочного материала.

Функция IIf имеет следующий синтаксис:

IIf(логический_тест, значение_если_истина, значение_если_ложь)

Например, для вычисления налога с продаж в текстовом поле на форме вы можете ввести следующее выражение в свойстве Данные текстового поля:

=IIf([ОбластьКрай] = "Московская",[ОбъемЗаказа] * 0,095, 0)

Значение: если поле "ОбластьКрай" содержит "Московская", вычислить налог с продаж как произведение ОбъемЗаказа и 0,095. В противном случае возвратить ноль.

Вложенные функции IIf

После ознакомления с функцией IIf вы поймете, что при использовании в качестве вложенной функции она может быть очень мощным инструментом. "Вложение" — это использование функции IIf внутри другой функции IIf в качестве аргумента "значение_если_истина" или "значение_если_ложь" (или обоих аргументов). Предположим, вы хотите, чтобы в столбце "Состояние" в отчете отображался текст "Просрочено", если дата выполнения для элемента уже прошла. Если дате выполнения соответствует текущая дата, нужно отобразить текст "Завершается сегодня", а если дата выполнения еще не наступила, столбец "Состояние" должен быть пустым. Если предположить, что сегодня 9 февраля 2012 года, вы бы хотели увидеть следующее:

Отчет по задачам со столбцом "Состояние", в котором для отображения сообщения используется функция IIF.

Этого можно добиться с помощью двух функций IIf, одна из которых вкладывается как аргумент "значение_если_истина" другой функции llf:

= IIf ([DueDate] < Дата (), "Срок действия", IIf ([DueDate] = (дата), "Выполнения сегодня"))

Внешняя функция IIf сравнивает поле "ДатаВыполнения" с текущей датой (которая возвращается функцией Date()). Для первых двух задач в отчете, показанном выше, срок выполнения наступает до текущей даты, поэтому логический тест внешней функции IIf формирует значение ИСТИНА и функция отображает "ПРОСРОЧЕНО". Для третьей задачи ("Покрасить гараж"), внешняя функция IIF формирует значение ЛОЖЬ, поэтому вложенная функция IIf проверяет, равна ли дата завершения текущей дате. Если это так, вложенная функция IIf отображает "Завершается сегодня". Для четвертой задачи ("Обрезать деревья") ни одна из функций IIf не формирует значение ИСТИНА, поэтому отображается пустая строка, так как для вложенной функции llf нет аргумента "значение_если_ложь". Конечно, при необходимости вы можете указать аргумент, который будет отображаться в таком случае.

Заключение

Вложенные функции IIf имеет эксперименты, но обычно не нужно перейти два или несколько уровней. Быстро станет затрудняет чтение и обслуживание выражения. Когда ваш вложенные функции IIF выходит из под контроля, можно использовать функции Switch, которая обеспечивает так же, "Если — нажмите" вида логики.

К началу страницы

Примечание : Отказ от ответственности относительно машинного перевода. Данная статья была переведена с помощью компьютерной системы без участия человека. Microsoft предлагает эти машинные переводы, чтобы помочь пользователям, которые не знают английского языка, ознакомиться с материалами о продуктах, услугах и технологиях Microsoft. Поскольку статья была переведена с использованием машинного перевода, она может содержать лексические,синтаксические и грамматические ошибки.

Совершенствование навыков
Перейти к обучению
Первоочередный доступ к новым возможностям
Присоединиться к программе предварительной оценки Office

Были ли сведения полезными?

Спасибо за ваш отзыв!

Благодарим за отзыв! Возможно, будет полезно связать вас с одним из наших специалистов службы поддержки Office.

×