Функция IIf

Возвращает одну из двух частей в зависимости от оценки выражение.

IIf можно использовать везде, где можно использовать выражения. С помощью IIf можно определить, истинно ли другое выражение. Если выражение истинно, то IIf возвращает одно значение; если это так, то IIf возвращает другой. Указывается значение, возвращаемая IIf.

Некоторые примеры

Синтаксис

IIf (expr, truepart, falsepart)

Функция IIf имеет аргументы, указанные ниже.

Аргумент

Описание

выражение

Обязательный аргумент. Выражение, для оценки.

Если_истина

Обязательный аргумент. Значение или выражение, возвращаемая, если выражение имеет значение "Истина".

Если_ложь

Обязательный аргумент. Значение или выражение, возвращаемая, если выражение имеет значение ЛОЖЬ.


Замечания

IIf всегда оценивает как если-то истина, так иесли-то ложь, хотя возвращает только одно из них. В связи с этим следует список нежелательных последствий. Например, если при проверке ложной части результатов происходит деление на ноль, даже если вы имеете значение "Истина",возникает ошибка.

Примеры

Использование IIf в форме или отчете    Предположим, у вас есть таблица "Клиенты" с полем "СтранаРегион". В форме вы хотите обозначить, является ли итальянский языком первого в контакте. Вы можете добавить управление и использовать IIf в его свойстве "Control Source", например:

=IIf([СтранаРегион]="Италия", "Итальянский", "Другой язык")

Когда вы открываете форму в представлении формы, каждый раз, когда значением "СтранаРегион" является Италия, и "Другой язык", если CountryRegion является любым другим значением.

Использование IIf в сложных выражениях    Любое выражение можно использовать в любой части выражения IIf. Вы также можете "вложенные" выражения IIf, позволяющие оценить ряд зависимых выражений. Чтобы продолжить предыдущий пример, вам может потребоваться проверить несколько различных значений "СтранаРегион", а затем отобразить нужный язык в зависимости от того, какое значение существует:

=IIf([СтранаРегион]="Италия", "Итальянский", IIf([СтранаРегион]="Франция", "французский", IIf([СтранаРегион]="Германия", "Немецкий", "Другой язык")))

Текст "Другой язык" является аргументом ложь в самой внутренней функции IIf. Так как каждая вложенная функция IIf является аргументом если вложенная функция IIf содержит ее, текст "Другой язык" возвращается только в том случае, если все аргументы выражения всех функций IIf возвращают результат "Ложь".

Например, предположим, что вы работаете в библиотеке. В базе данных библиотеки есть таблица "Out Outs" (ИД) с полем "Срок", в которой содержится дата, в которой должна быть отс00-я книга. Вы можете создать форму, которая указывает состояние иконки элемента управления, с помощью функции IIf в его свойстве "Данные":

=IIf([Срок]<Date(),"ПРОСрочено",IIf([Срок]=Date(),"Срок сегодня","Не просрочено"))

Когда вы открываете форму в представлении формы, отображается значение "ПРОСрочено", если значение "Срок" меньше текущей даты, "Срок сегодня" — для текущей даты, а "Не просрочено" — в противном случае.

Примечание: Чтобы использовать логические операторы, такие как "И" или "Или" в аргументе выражения функции IIf, необходимо включит логическое выражение в функцию Eval. См. пример таблицы ниже.

Использование IIf в запросе    

Функция IIf часто используется для создания вычисляемой области в запросах. Синтаксис тот же, за исключением того, что в запросе перед выражением необходимо в качестве псевдонима поля в качестве псевдонима и двоеточие(:),а не знака равного(=). Чтобы использовать предыдущий пример, введите в строку "Поле" на сетке запроса следующую строку:

Язык: IIf([СтранаРегион]="Италия", "Итальянский", "Другой язык")

В данном случае "Язык:" — это псевдоним поля.

Дополнительные сведения о создании запросов и вычисляемом поле см. в статье "Создание простого запроса на выборки".

Использование IIf в коде VBA    

Примечание: В примерах ниже показано, как использовать эту функцию в модуле Visual Basic для приложений (VBA). Чтобы получить дополнительные сведения о работе с VBA, выберите Справочник разработчика в раскрывающемся списке рядом с полем Поиск и введите одно или несколько слов в поле поиска.

В этом примере функция IIf используется для оценки параметра TestMeпроцедуры CheckIt и возвращает слово "Большой", если сумма превышает 1000; в противном случае возвращается слово "Маленький".

Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function

Другие примеры

Выражение

Результаты:

=IIf([AirportCode]="ORD","Chicago",IIf([AirportCode]="ATL","Chicago",IIf([AirportCode]="SEA","Seattle","Other")))

Если [AirportCode] — "ORD", возвращается "Чикаго". В противном случае, если [AirportCode] имеет "ATL", возвращается "Атланта". В противном случае, если [AirportCode] имеет "SEA", возвращается "Seattle". В противном случае возвращается "Другое".

=IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))

Если [ДатаОтправления] предстояла сегодняшняя дата, возвращается "Датагрузки". В противном случае, если [Дата Доставки] равна сегодняшней дате, возвращается "Отправка сегодня". В противном случае возвращается "Неподгрузка".

=IIf([PurchaseDate]<#1/01.2008#,"Old","New")

Если [PurchaseDate] предстоянет 01.01.2008, возвращается "Старый". В противном случае возвращается "Новый".

=IIf(Eval([Volts] Between 12 And 15 And [Amps] Between 0,25 And 0.3);"OK","Out of calibration")

Если [Томск] находится между 12 и 15 и [Amps] находится в порядке от 0,25 до 0,3, возвращается "ОК". В противном случае возвращается "Вне калибровки".

=IIf(Eval([CountryRegion] In ("Canada","USA","Mexico")),"North America","Other")

Если [СтранаРегион] — "Канада", "США" или "Мексика", возвращается "Северная Америка". В противном случае возвращается "Другое".

=IIf([Среднее]>=90;"A";IIf([Среднее]>=80;"B";IIf([Среднее]>=70;"C";IIf([Среднее]>=60;"D";"F"))))

Если [Среднее] больше 90, возвращается "A". В противном случае, если [Среднее] больше 80, возвращается "B". В противном случае, если [Среднее] больше 70, возвращается "C". В противном случае, если [Среднее] больше 60, возвращается "D". В противном случае возвращается "F".

Примечание: Если для создания вычисляемного поля в запросе используется функция IIf, замените знак равной(=)псевдонимом поля и двоеточием(:). Например, состояние: IIf([ShipDate]<Date(),"Shipped",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))

Нужна дополнительная помощь?

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

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

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

×