Devolve uma de duas partes, dependendo da avaliação de uma expressão.
Pode utilizar ISe em qualquer lugar onde possa utilizar expressões. Utilize ISe para determinar se outra expressão é verdadeira ou falsa. Se a expressão for verdadeira, ISe devolve um valor; se for falso, ISe devolve outro. Especifique os valores devolvidos por ISe .
Sintaxe
ISe ( expr , parteverdadeira , partefalsa )
A sintaxe da função ISe tem os seguintes argumentos:
Argumento |
Descrição |
expr |
Obrigatório. Expressão que pretende avaliar. |
parteverdadeira |
Obrigatório. Valor ou expressão devolvida se expr for Verdadeiro. |
partefalsa |
Obrigatório. Valor ou expressão devolvida se expr for Falso. |
Observações
ISe avalia sempre a parteverdadeira e a partefalsa, apesar de devolver apenas uma destas. Por esta razão, deverá ter em atenção os efeitos secundários indesejáveis. Por exemplo, se avaliar a partefalsa resulta num erro de divisão por zero, ocorre um erro mesmo se expr seja Verdadeiro.
Exemplos
Utilizar a função ISe num formulário ou relatório Suponha que tem uma tabela Clientes que contém um campo com o nome PaísRegião. Num formulário, quer assinalar se a língua materna do contacto é o italiano. Pode adicionar um controlo e utilizar ISe na respetiva propriedade da Origem do Controlo, da seguinte forma:
=ISe([PaísRegião]="Itália", "Italiano", "Outro idioma")
Quando abre o formulário na vista Formulário, o controlo apresenta "Italiano" sempre que o valor de PaísRegião é Itália, e "Outro idioma" sempre que PaísRegião for outro valor.
Utilizar a função ISe em expressões complexas Pode utilizar qualquer expressão como qualquer parte de uma instrução ISe. Também pode aninhar expressões ISe, o que o permite avaliar uma série de expressões dependentes. Para continuar com o exemplo anterior, recomendamos que teste vários valores de PaísRegião e, em seguida, apresente o idioma adequado dependendo do valor existente:
=ISe([PaísRegião]="Itália", "Italiano", ISe([PaísRegião]="França", "Francês", ISe([PaísRegião]="Alemanha", "Alemão", "Outro idioma")))
O texto "Outro idioma" é o argumento partefalsa da função ISe mais recôndita. Visto que cada função aninhada ISe é o argumento partefalsa da função ISe que a contém, o texto "Outro idioma" apenas é devolvido se todas as expressões expr de todas as funções ISe forem avaliadas como Falso.
Outro exemplo: suponha que trabalha numa biblioteca. A base de dados da biblioteca tem um tabela com o nome Requisições, que contém um campo com o nome Data de Devolução, que contém a data do prazo de entrega de um determinado livro. Pode criar um formulário que indica o estado de item requisitado num controlo ao usar a função ISe na propriedade Origem do Controlo desse controlo, da seguinte forma:
=ISe([Data de Devolução]<Data(),"EM ATRASO",ISe([Data de Devolução]=Data(),"Devolução","Dentro do Prazo"))
Quando abre o formulário na vista Formulário, o controlo mostra "EM ATRASO" se o valor da Data de Devolução for menor que a data atual, "Devolução" se for igual à data atual, e "Dentro do Prazo" caso contrário.
Nota: Para utilizar operadores lógicos como "E" ou "Ou" no argumento expr da função ISe, tem de colocar a expressão lógica na função Aval. Veja os exemplos na tabela seguinte.
Utilize a função ISe numa consulta
A função ISe é frequentemente utilizada para calcular campos em consultas. A sintaxe é a mesma, com a exceção de que, numa consulta, tem de preceder a expressão com um alias do campo e dois pontos (:) em vez de um sinal de igual (=). Para utilizar o exemplo anterior, teria de escrever o seguinte na linha Campo na grelha de estrutura da consulta:
Idioma: ISe([PaísRegião]="Itália", "Italiano", "Outro Idioma")
Neste caso, "Idioma:" é o alias do campo.
Para obter mais informações sobre como criar consultas e campos calculados, consulte o artigo Criar uma consulta selecionar simples.
Utilize a função ISe em código VBA
Nota: Os seguintes exemplos demonstram a utilização desta função no módulo VBA (Visual Basic for Applications). Para obter mais informações sobre trabalhar com o VBA, selecione Referência para Programadores na lista pendente junto a Procurar e introduza um ou mais termos na caixa de pesquisa.
Este exemplo utiliza a função ISe para avaliar o parâmetro TestMe do procedimento CheckIt e devolve a palavra "Large" se o montante for maior que 1000. Caso contrário, devolve a palavra "Small".
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small") End Function
Mais exemplos
Expressão |
Resultados |
=ISe([CódigoAeroporto]="ORD","Chicago",ISe([CódigoAeroporto]="ATL","Atlanta",ISe([CódigoAeroporto]="SEA","Seattle","Outro"))) |
Se o [CódigoAeroporto] for "ORD", devolve "Chicago". Caso contrário, se o [CódigoAeroporto] for "ATL", devolve "Atlanta". Caso contrário, se o [CódigoAeroporto] for "SEA", devolve "Seattle". Caso contrário, devolve "Outro". |
=ISe([DataEnvio]<Data(),"Enviado",ISe([DataEnvio]=Data(),"A Enviar","Por Enviar")) |
Se [DataEnvio] for anterior à data de hoje, devolve "Enviado". Caso contrário, se [DataEnvio] for igual à data de hoje, devolve "A Enviar". Caso contrário, devolve "Por Enviar." |
=ISe([DataCompra]<#1/1/2008#,"Antigo","Novo") |
Se [DataCompra] for anterior a 1/1/2008, devolve "Antigo". Caso contrário, devolve "Novo." |
=ISe(Aval([Volts] Entre 12 E 15 E [Amps] Entre 0,25 E 0,3),"OK","Fora de Calibração") |
Se [Volts] está entre 12 e 15 e [Amps] está entre 0,25 e 0,3, devolve "OK". Caso contrário, devolve "Fora de Calibração." |
=ISe(Aval([PaísRegião] Em ("Canadá","EUA","México")),"América do Norte","Outro") |
Se [PaísRegião] é "Canadá", "EUA" ou "México", devolve "América do Norte". Caso contrário, devolve "Outro". |
=ISe([Média]>=90,"A",ISe([Média]>=80,"B",ISe([Média]>=70,"C",ISe([Média]>=60,"D","F")))) |
Se [Média] é 90 ou maior, devolve "A". Caso contrário, se [Média] é 80 ou maior, devolve "B". Caso contrário, se [Média] é 70 ou maior, devolve "C". Caso contrário, se [Média] é 60 ou maior, devolve "D". Caso contrário, devolve "F". |
Nota: Se estiver a utilizar a função ISe para criar um campo calculado numa consulta, substitua o sinal de igual (=) por um alias do campo e dois pontos (:). Por exemplo, Estado: ISe([DataEnvio]<Data(),"Enviado",ISe([DataEnvio]=Data(),"A Enviar","Por Enviar"))