Função IIf

Retorna uma das duas partes, dependendo da avaliação de um expressão.

Você pode usar IIf em qualquer lugar que possa usar expressões. Use iIf para determinar se outra expressão é verdadeira ou false. Se a expressão for verdadeira, IIf retornará um valor; se for false, IIf retornará outro. Especifique os valores que IIf retorna.

Veja alguns exemplos

Sintaxe

IIf ( expr , truepart , falsepart )

A sintaxe da função IIf tem os seguintes argumentos:

Argumento

Descrição

expr

Obrigatório. Expressão que você deseja avaliar.

truepart

Obrigatório. Valor ou expressão retornado se expr for True.

falsepart

Obrigatório. Valor ou expressão retornado se expr for False.


Comentários

IIf sempre avalia truepart e falsepart, mesmo que ela retorne apenas uma delas. Por isso, você deve observar os efeitos colaterais indesejáveis. Por exemplo, se a avaliação de falsepart resulta em uma divisão por erro zero, ocorrerá um erro mesmo se expr for True.

Exemplos

Usar IIf em um formulário ou relatório    Suponha que você tenha uma tabela Customers que contém um campo chamado CountryRegion. Em um formulário, você deseja indicar se o italiano é o primeiro idioma do contato. Você pode adicionar um controle e usar iIf em sua propriedade Fonte de Controle, assim como:

=IIf([CountryRegion]="Itália", "Italiano", "Algum outro idioma")

Quando você abre o formulário no formato de exibição, o controle exibe "italiano" sempre que o valor para CountryRegion for Itália e "Algum outro idioma" sempre que CountryRegion for qualquer outro valor.

Usar IIf em expressões complexas    Você pode usar qualquer expressão como qualquer parte de uma instrução IIf. Você também pode "aninhar" expressões IIf, permitindo que você avalie uma série de expressões dependentes. Para continuar com o exemplo anterior, talvez você queira testar vários valores diferentes do CountryRegion e exibir o idioma apropriado, dependendo de qual valor existir:

=IIf([CountryRegion]="Itália", "Italiano", IIf([CountryRegion]="France", "French", IIf([CountryRegion]="Germany", "German", "Some other language")))

O texto "Algum outro idioma" é o argumento falsepart da função IIf mais interna. Como cada função IIf aninhada é o argumento falsepart da função IIf que a contém, o texto "Algum outro idioma" só será retornado se todos os argumentos expr de todas as funções IIf avaliarem como False.

Para outro exemplo, suponha que você trabalhe em uma biblioteca. O banco de dados de biblioteca tem uma tabela chamada Check-Outs que contém um campo, chamado Data de Vencimento, que contém a data em que um determinado livro deve voltar. Você pode criar um formulário que indica o status de um item de check-out em um controle usando a função IIf na propriedade Fonte de Controle desse controle, assim como:

=IIf([Due Date]<Date(),"OVERDUE",IIf([Due Date]=Date(),"Due today","Not Yet Due"))

Quando você abre o formulário no modo Formulário, o controle exibe "OVERDUE" se o valor de Data de Vencimento for menor que a data atual, "Due today" se for igual à data atual e "Not Yet Due" caso contrário.

Observação: Para usar operadores lógicos como "And" ou "Or" no argumento expr da função IIf, coloque a expressão lógica na função Eval. Consulte a tabela de exemplos a seguir.

Usar IIf em uma consulta    

A função IIf é frequentemente usada para criar campos calculados em consultas. A sintaxe é a mesma, com a exceção de que, em uma consulta, você deve prefigurar a expressão com um alias de campo e dois pontos (:) em vez de um sinal de igual (=). Para usar o exemplo anterior, digite o seguinte na linha Campo da grade de design de consulta:

Idioma: IIf([CountryRegion]="Itália", "Italiano", "Algum outro idioma")

Nesse caso, "Language:" é o alias do campo.

Para obter mais informações sobre como criar consultas e campos calculados, consulte o artigo Create a simple select query.

Usar IIf no código do VBA    

Observação: Exemplos a seguir demonstram o uso dessa função em um módulo Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione Referência do Desenvolvedor na listada ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.

Este exemplo usa a função IIf para avaliar o parâmetro TestMe do procedimento CheckIt e retorna a palavra "Grande" se a quantidade for maior que 1000; caso contrário, ele retornará a palavra "Pequeno".

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

Mais exemplos

Expressão

Resultados

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

Se [AirportCode] for "ORD", retorne "Chicago". Caso contrário, se [AirportCode] for "ATL", retorne "Atlanta". Caso contrário, se [AirportCode] for "SEA", retorne "Seattle". Caso contrário, retorne "Outros".

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

Se [ShipDate] for anterior à data de hoje, retorne "Enviado". Caso contrário, se [ShipDate] for igual à data de hoje, retorne "Envio hoje". Caso contrário, retorne "Unshipped".

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

Se [PurchaseDate] for anterior a 1/1/2008, retorne "Antigo". Caso contrário, retorne "Novo".

=IIf(Eval([Volts] entre 12 e 15 e [amps] entre 0,25 e 0,3),"OK","Fora de calibragem")

Se [Volta] estiver entre 12 e 15 e [Amps] estiver entre 0,25 e 0,3, retorne "OK". Caso contrário, retorne "Fora da calibragem".

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

Se [CountryRegion] for "Canadá", "EUA" ou "México", retorne "América do Norte". Caso contrário, retorne "Outros".

=IIf([Average]>=90,"A",IIf([Average]>=80,"B",IIf([Average]>=70,"C",IIf([Average]>=60,"D","F")))

Se [Média] for 90 ou superior, retorne "A". Caso contrário, se [Média] for 80 ou superior, retornará "B". Caso contrário, se [Média] for 70 ou superior, retornará "C". Caso contrário, se [Média] for 60 ou superior, retornará "D". Caso contrário, retorne "F".

Observação: Se você estiver usando a função IIf para criar um campo calculado em uma consulta, substitua o sinal de igual (=) por um alias de campo e dois pontos (:). Por exemplo, Status: IIf([ShipDate]<Date(),"Enviado",IIf([ShipDate]=Date(),"Shipping today","Unshipped"))

Precisa de mais ajuda?

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×