Táboa de contidos
O titorial mostra como crear varias instrucións IF en Excel con lóxica AND e OU. Ademais, aprenderá a usar IF xunto con outras funcións de Excel.
Na primeira parte do noso tutorial IF de Excel, analizamos como construír unha instrución IF sinxela cunha condición para o texto, números, datas, espazos en branco e non espazos en branco. Non obstante, para unha análise de datos potente, é posible que moitas veces necesites avaliar varias condicións á vez. Os seguintes exemplos de fórmulas mostraranche as formas máis eficaces de facelo.
Como usar a función IF con varias condicións
En esencia, hai dous tipos de Fórmula SE con múltiples criterios baseados na lóxica E/OU . En consecuencia, na proba lóxica da túa fórmula IF, deberías usar unha destas funcións:
- función AND - devolve VERDADEIRO se se cumpren todas as condicións ; FALSO en caso contrario.
- Función OR - devolve VERDADEIRO se se cumpre calquera condición única ; FALSO en caso contrario.
Para ilustrar mellor o punto, investiguemos algúns exemplos de fórmulas da vida real.
Instrucción de Excel IF con varias condicións (E lóxica)
O A fórmula xenérica de Excel IF con dúas ou máis condicións é a seguinte:
IF(AND( condición1, condición2, …), valor_se_verdadeiro, valor_se_falso)Traducido a un humano lingua, a fórmula di: Se a condición 1 é verdadeira E a condición 2 é verdadeira, devolve valor_se_verdadeiro ; senón devolve valor_se_falso .
Supoñamos que tes unha táboa que enumera as puntuacións de dúas probas nas columnas B e C. Para aprobar o exame final, un alumno debe ter ambas puntuacións superiores a 50.
Para a proba lóxica, utiliza a seguinte instrución AND: AND(B2>50, C2>50)
Se ambas condicións son certas, a fórmula devolverá "Aprobar"; se algunha condición é falsa - "Fail".
=IF(AND(B2>50, B2>50), "Pass", "Fail")
Fácil, non é? A seguinte captura de pantalla demostra que a nosa fórmula de Excel IF /AND funciona correctamente:
De forma similar, podes usar a función de Excel IF con varias condicións de texto .
Para exemplo, para emitir "Bo" se tanto B2 como C2 son maiores de 50, "Malo" se non, a fórmula é:
=IF(AND(B2="pass", C2="pass"), "Good!", "Bad")
Nota importante! A función AND verifica todas as condicións , aínda que a(s) xa probada(s) avalíase como FALSA. Este comportamento é un pouco inusual xa que na maioría das linguaxes de programación, as condicións posteriores non se proban se algunha das probas anteriores devolveu FALSE.
Na práctica, unha instrución IF aparentemente correcta pode producir un erro debido a isto. especificidade. Por exemplo, a seguinte fórmula devolvería #DIV/0! Erro ("divide por cero") se a cela A2 é igual a 0:
=IF(AND(A20, (1/A2)>0.5),"Good", "Bad")
Para evitar isto, deberías usar unha función IF aniñada:
=IF(A20, IF((1/A2)>0.5, "Good", "Bad"), "Bad")
Para obter máis información, consulte a fórmula IF AND en Excel.
Función de Excel IF con múltiplescondicións (lóxica OU)
Para facer unha cousa se se cumpre calquera condición , se non fai outra cousa, use esta combinación das funcións SE e OU:
SE(OU( condición1 , condición2 , …), valor_se_verdadeiro, valor_se_falso)A diferenza coa fórmula SE/AND comentada anteriormente é que Excel devolve VERDADEIRO se algunha das condicións especificadas é verdadeira.
Entón, se na fórmula anterior usamos OU en lugar de AND:
=IF(OR(B2>50, B2>50), "Pass", "Fail")
Entón calquera que teña máis de 50 puntos en calquera dos exames obterá "Aprobado" en columna D. Con tales condicións, os nosos alumnos teñen máis posibilidades de aprobar o exame final (Yvette tivo a mala sorte de suspender só 1 punto :)
Consello. No caso de que estea a crear unha instrucción IF múltiple con texto e probando un valor nunha cela coa lóxica OU (é dicir, unha cela pode ser "isto" ou "aquilo"), entón pode construír un valor máis compacto. fórmula usando unha constante de matriz.
Por exemplo, para marcar unha venda como "pechada" se a cela B2 é "entregada" ou "pagada", a fórmula é:
=IF(OR(B2={"delivered", "paid"}), "Closed", "")
Pódense atopar máis exemplos de fórmulas na función SE OU de Excel.
SE con múltiples AND & Declaracións OR
Se a túa tarefa require avaliar varios conxuntos de condicións múltiples, terás que utilizar E & funcións OR á vez.
Na nosa táboa de mostra, supoña que tes os seguintes criterios para comprobar os resultados do exame:
- Condición 1:exame1>50 e exame2>50
- Condición 2: exame1>40 e exame2>60
Se se cumpre algunha das condicións, o exame final considérase aprobado.
A primeira vista, a fórmula parece un pouco complicada, pero de feito non o é! Só tes que expresar cada unha das condicións anteriores como unha instrución AND e aniñalas na función OR (xa que non é necesario cumprir ambas condicións, calquera das dúas será suficiente):
OR(AND(B2>50, C2>50), AND(B2>40, C2>60)
Entón, use a función OR para a proba lóxica de IF e proporcione os valores valor_se_verdadeiro e valor_se_falso desexados. Como resultado, obtén a seguinte fórmula SE con varias condicións E/OU:
=IF(OR(AND(B2>50, C2>50), AND(B2>40, C2>60), "Pass", "Fail")
A captura de pantalla a continuación indica que fixemos a fórmula correctamente:
Naturalmente , non está limitado a usar só dúas funcións E/OU nas súas fórmulas SE. Podes usar tantos como requira a túa lóxica empresarial, sempre que:
- En Excel 2007 e superior, non teñas máis de 255 argumentos e a lonxitude total da fórmula IF non supere 8.192 caracteres.
- En Excel 2003 e versións anteriores, non hai máis de 30 argumentos e a lonxitude total da súa fórmula IF non supera os 1.024 caracteres.
Instrucción IF aniñada a comprobar varias probas lóxicas
Se queres avaliar varias probas lóxicas dentro dunha única fórmula, podes aniñar varias funcións unhas noutras. Tales funcións chámanse aniñadasFuncións IF . Resultan especialmente útiles cando se desexa devolver valores diferentes dependendo dos resultados das probas lóxicas.
Aquí tes un exemplo típico: supoña que quere cualificar os logros dos estudantes como " Boa ", " Satisfactorio " e " Malo " segundo as seguintes puntuacións:
- Bo: 60 ou máis (>=60)
- Satisfactorio: entre 40 e 60 (>40 e <60)
- Malo: 40 ou menos (<=40)
Antes de escribir unha fórmula, considere a orde de funcións que vai aniñar. Excel avaliará as probas lóxicas na orde en que aparecen na fórmula. Unha vez que unha condición se avalía como VERDADEIRO, non se proban as condicións posteriores, o que significa que a fórmula detense despois do primeiro resultado VERDADEIRO.
No noso caso, as funcións organízanse de maior a menor:
=IF(B2>=60, "Good", IF(B2>40, "Satisfactory", "Poor"))
Por suposto, podes aniñar máis funcións se é necesario (ata 64 nas versións modernas).
Para obter máis información, consulte Como usar varias instrucións IF aniñadas en Excel.
Fórmula de matriz de Excel IF con varias condicións
Outra forma de obter un IF de Excel para probar varias condicións é mediante unha fórmula matricial.
Para avaliar condicións coa lóxica AND, use o asterisco:
IF( condición1 ) * ( condición2 ) * …, value_if_true, value_if_false)Para probar as condicións coa lóxica OU, use o signo máis:
IF( condición1 ) + ( condición2 ) + …,value_if_true, value_if_false)Para completar unha fórmula matricial correctamente, prema as teclas Ctrl + Maiús + Intro xuntos. En Excel 365 e Excel 2021, isto tamén funciona como unha fórmula normal debido á compatibilidade con matrices dinámicas.
Por exemplo, para obter "Pass" se B2 e C2 son maiores de 50, a fórmula é:
=IF((B2>50) * (C2>50), "Pass", "Fail")
No meu Excel 365, unha fórmula normal funciona ben (como podes ver nas capturas de pantalla anteriores). En Excel 2019 e versións anteriores, lembre de facelo unha fórmula matricial usando o atallo Ctrl + Maiús + Intro.
Para avaliar varias condicións coa lóxica OU, a fórmula é:
=IF((B2>50) + (C2>50), "Pass", "Fail")
Utilizar IF xunto con outras funcións
Esta sección explica como usar IF en combinación con outras funcións de Excel e os beneficios que lle proporciona.
Exemplo 1. Se #N /Un erro en BUSCARV
Cando BUSCARV ou outra función de busca non pode atopar algo, devolve un erro #N/A. Para que as túas táboas se vexan mellor, podes devolver texto cero, en branco ou específico se #N/A. Para iso, use esta fórmula xenérica:
IF(ISNA(BUSCARV(…)), valor_se_na , BUSCARV(…))Por exemplo:
Se #N/ Un retorno 0:
Se non se atopa o valor de busca en E1, a fórmula devolve cero.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), 0, VLOOKUP(E1, A2:B10, 2, FALSE))
Se #N/A devolve un espazo en branco:
Se non se atopa o valor de busca, a fórmula non devolve nada (unha cadea baleira).
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "", VLOOKUP(E1, A2:B10, 2, FALSE))
Se #N/A devolve un texto determinado:
Se o non se atopou o valor de busca, ofórmula devolve texto específico.
=IF(ISNA(VLOOKUP(E1, A2:B10, 2,FALSE )), "Not found", VLOOKUP(E1, A2:B10, 2, FALSE))
Para obter máis exemplos de fórmulas, consulte BUSCAR V con instrución IF en Excel.
Exemplo 2. SE con SUMA, MEDIA, MIN e MAX funcións
Para sumar os valores das celas en función de determinados criterios, Excel ofrece as funcións SUMIF e SUMIFS.
Nalgúns casos, a súa lóxica empresarial pode requirir incluír a función SUMA na proba lóxica de SE. Por exemplo, para devolver diferentes etiquetas de texto dependendo da suma dos valores en B2 e C2, a fórmula é:
=IF(SUM(B2:C2)>130, "Good", IF(SUM(B2:C2)>110, "Satisfactory", "Poor"))
Se a suma é maior que 130, o resultado é "bo "; se é superior a 110: "satisfactorio", se é 110 ou inferior, "malo".
De forma similar, pode inserir a función MEDIA na proba lóxica de SE e devolver etiquetas diferentes en función da puntuación media. :
=IF(AVERAGE(B2:C2)>65, "Good", IF(AVERAGE(B2:C2)>55, "Satisfactory", "Poor"))
Asumindo que a puntuación total está na columna D, podes identificar os valores máis altos e máis baixos coa axuda das funcións MAX e MIN:
=IF(D2=MAX($D$2:$D$10), "Best result", "")
=IF(D2=MAX($D$2:$D$10), "Best result", "")
Para ter as dúas etiquetas nunha columna, aniñe as funcións anteriores unha noutra:
=IF(D2=MAX($D$2:$D$10), "Best result", IF(D2=MIN($D$2:$D$10), "Worst result", ""))
Do mesmo xeito, podes usar IF xunto co teu personalizado funcións. Por exemplo, pode combinalo con GetCellColor ou GetCellFontColor para devolver resultados diferentes baseados nunha cor de cela.
Ademais, Excel ofrece unha serie de funcións para calcular datos en función das condicións. Para exemplos de fórmulas detalladas, consulte o seguintetitoriais:
- CONTARSE: contar as celas que cumpren unha condición
- CONTARSE: contar as celas con varios criterios
- SUMIF: sumar as celas condicionalmente
- SUMIFS - suma celas con varios criterios
Exemplo 3. IF con ISNUMBER, ISTEXT e ISBLANK
Para identificar texto, números e celas en branco, Microsoft Excel ofrece funcións especiais como ISTEXT, ISNUMBER e ISBLANC. Ao colocalos nas probas lóxicas de tres instrucións IF aniñadas, pode identificar todos os tipos de datos diferentes dunha soa vez:
=IF(ISTEXT(A2), "Text", IF(ISNUMBER(A2), "Number", IF(ISBLANK(A2), "Blank", "")))
Exemplo 4. IF e CONCATENATE
Para saia o resultado de IF e algún texto nunha cela, use as funcións CONCATENATE ou CONCAT (en Excel 2016 - 365) e IF xuntos. Por exemplo:
=CONCATENATE("You performed ", IF(B1>100,"fantastic!", IF(B1>50, "well", "poor")))
=CONCAT("You performed ", IF(B1>100,"fantastic!", IF(B1>50, "well", "poor")))
Mirando a captura de pantalla que aparece a continuación, case non necesitarás explicación sobre o que fai a fórmula:
SE ERRO / Fórmula ISNA en Excel
As versións modernas de Excel teñen funcións especiais para capturar erros e substituílos por outro cálculo ou valor predefinido: IFERROR (en Excel 2007 e posteriores) e IFNA (en Excel 2013 e posteriores). Nas versións anteriores de Excel, pode usar as combinacións IF ISERROR e IF ISNA no seu lugar.
A diferenza é que IFERROR e ISERROR xestionan todos os posibles erros de Excel, incluíndo #VALUE!, #N/A, #NAME?, #REF!, #NUM!, #DIV/0! e #NULL!. Mentres que IFNA e ISNA se especializan unicamente en erros #N/A.
Por exemplo, parasubstitúe o erro "dividir por cero" (#DIV/0!) co teu texto personalizado, podes usar a seguinte fórmula:
=IF(ISERROR(A2/B2), "N/A", A2/B2)
E iso é todo o que teño que dicir sobre o uso do Función SI en Excel. Grazas por ler e espero verte no noso blog a vindeira semana!
Practica para descargar
Excel IF varios criterios - exemplos (ficheiro .xlsx)