Táboa de contidos
O titorial explica como usar a función IF aniñada en Excel para comprobar varias condicións. Tamén aprenderá algunhas outras funcións que poderían ser boas alternativas ao uso dunha fórmula aniñada en Excel.
Como adoita implementar unha lóxica de toma de decisións nas súas follas de cálculo de Excel? Na maioría dos casos, usarías unha fórmula IF para probar a túa condición e devolver un valor se a condición se cumpre, outro valor se a condición non se cumpre. Para avaliar máis dunha condición e devolver valores diferentes dependendo dos resultados, aniña varios IF uns dentro dos outros.
Aínda que é moi popular, a instrución IF aniñada non é a única forma de comprobar varias condicións en Excel. Neste titorial, atoparás un puñado de alternativas que paga a pena explorar.
Instrucción IF aniñada de Excel
Aquí está a fórmula clásica IF aniñada de Excel nunha forma xenérica :
SE( condición1, resultado1, SE( condición2, resultado2, SE( condición3, resultado3, resultado4)))Podes ver que cada función IF posterior está incrustada no argumento value_if_false da función anterior. Cada función IF está encerrada no seu propio conxunto de parénteses, pero todos os parénteses de peche están ao final da fórmula.
A nosa fórmula IF aniñada xenérica avalía 3 condicións e devolve 4 resultados diferentes (devólvese o resultado 4). se ningún doslibro de traballo para descargar
Instrucción If anidada de Excel - exemplos (ficheiro .xlsx)
condicións é VERDADEIRA). Traducida a unha linguaxe humana, esta instrución IF aniñada di a Excel que faga o seguinte:Proba condición1, se VERDADERO - devolve resultado1, se FALSO -proba condición2 , se VERDADERO - devolve r resultado2 , se FALSO -
proba condición3 , se VERDADERO - devolve resultado3 , se FALSO -
devolver resultado4
A modo de exemplo, descubramos comisións para un número de vendedores en función da cantidade de vendas que realizaron:
Comisión | Vendas |
3 % | $1 - $50 |
5 % | $51 - $100 |
7% | $101 - $150 |
10% | Máis de $150 |
En matemáticas, cambiar a orde dos sumandos non cambia a suma. En Excel, cambiar a orde das funcións IF cambia o resultado. Por que? Porque unha fórmula IF aniñada devolve un valor correspondente á primeira condición TRUE . Polo tanto, nas súas instrucións IF aniñadas, é moi importante organizar as condicións na dirección correcta: de alta a baixa ou de baixa a alta, dependendo da lóxica da súa fórmula. No noso caso, comprobamos primeiro a condición "máis alta", despois a "segunda máis alta", e así sucesivamente:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
Se colocamos o condicións na orde inversa, de abaixo cara arriba, os resultados serían todos erróneos porque a nosa fórmula pararía despois da primeira proba lóxica (B2>=1) para calquera valor maior que 1. Digamos que temos $100nas vendas: é maior que 1, polo que a fórmula non comprobaría outras condicións e devolvería o 3 % como resultado.
Se prefire organizar as condicións de menor a maior, use o "menor de " e avalía primeiro a condición "máis baixa", despois a "segunda máis baixa", e así por diante:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
Como ves, hai que pensar moito para construír a lóxica dunha instrución IF aniñada correctamente ata o final. E aínda que Microsoft Excel permite aniñar ata 64 funcións IF nunha soa fórmula, non é algo que realmente queiras facer nas túas follas de traballo. Polo tanto, se ti (ou outra persoa) estás mirando a túa fórmula IF aniñada de Excel intentando descubrir o que fai realmente, é hora de reconsiderar a túa estratexia e probablemente escoller outra ferramenta no teu arsenal.
Para obter máis información. , consulte a declaración IF aniñada de Excel.
IF aniñada con condicións OU/AND
No caso de que necesite avaliar algúns conxuntos de condicións diferentes, pode expresar esas condicións usando OU así como AND, aniña as funcións dentro de instrucións IF e, a continuación, aniña as instrucións IF entre si.
IF aniñadas en Excel con instrucións OR
Ao usar a función OR pode comprobar dúas ou máis diferentes condicións na proba lóxica de cada función IF e devolve VERDADEIRO se algún (polo menos un) dos argumentos OU é VERDADEIRO. Para ver como funciona realmente, considere oseguinte exemplo.
Supoño que tes dúas columnas de vendas, digamos vendas de xaneiro na columna B e vendas de febreiro na columna C. Queres comprobar os números das dúas columnas e calcular a comisión en función dun número superior. Noutras palabras, constrúe unha fórmula coa seguinte lóxica: se as vendas de xaneiro ou febreiro son superiores a $ 150, o vendedor recibe unha comisión do 10 %, se as vendas de xaneiro ou febreiro son superiores ou iguais a $ 101, o vendedor recibe unha comisión do 7 % , e así sucesivamente.
Para facelo, escribe algunhas instrucións OF como OR(B2>150, C2>150) e aniñalas nas probas lóxicas das funcións IF comentadas anteriormente. Como resultado, obtén esta fórmula:
=IF(OR(B2>150, C2>150), 10%, IF(OR(B2>=101, C2>=101),7%, IF(OR(B2>=51, C2>=51), 5%, IF(OR(B2>=1, C2>=1), 3%, ""))))
E ten a comisión asignada en función da cantidade de vendas máis alta:
Para máis exemplos de fórmulas, consulte a declaración IF OR de Excel.
SE anidado en Excel con instrucións AND
Se as súas probas lóxicas inclúen varias condicións e todas esas condicións deben ser VERDADEIRAS, exprésaas mediante a función AND.
Por exemplo, para asignar as comisións en función dun número de vendas inferior, tome a fórmula anterior e substitúa OU por declaracións AND. Para dicilo doutro xeito, dille a Excel que devolva un 10 % só se as vendas de xaneiro e febreiro son superiores a 150 USD, o 7 % se as vendas de xaneiro e febreiro son superiores ou iguais a 101 USD, etc.
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, ""))))
Como resultado, a nosa fórmula IF aniñada calcula a comisiónbaseándose no número inferior das columnas B e C. Se calquera das columnas está baleira, non hai comisión porque non se cumpre ningunha das condicións AND:
Se estás d gusta devolver 0% en lugar de celas en branco, substitúe unha cadea baleira ("'") no último argumento por 0%:
=IF(AND(B2>150, C2>150), 10%, IF(AND(B2>=101, C2>=101), 7%, IF(AND(B2>=51, C2>=51), 5%, IF(AND(B2>=1, C2>=1), 3%, 0%))))
Pódese atopar máis información aquí: Excel IF con varias condicións E/OU.
BUSCAR V en lugar de IF aniñado en Excel
Cando se trata de "escalas", é dicir, intervalos continuos de valores numéricos que en conxunto cobren todo o intervalo, na maioría dos casos podes usar a función BUSCAR V en lugar de IF anidados.
Para comezar, fai unha táboa de referencia como se mostra na captura de pantalla a continuación. E despois, crea unha fórmula de Busca V con coincidencia aproximada , é dicir, co argumento range_lookup definido como TRUE.
Supoñendo que o valor de busca está en B2 e a táboa de referencia é F2:G5, a fórmula é a seguinte :
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Ten en conta que arranxamos o table_array con referencias absolutas ($F$2:$G$5) para que a fórmula se copie correctamente noutras celas:
Ao establecer o último argumento da túa fórmula Vlookup como VERDADEIRO, dis a Excel que buscar a coincidencia máis próxima : se non se atopa unha coincidencia exacta, devolve o seguinte valor máis pequeno que sexa menor que o valor de busca. Como resultado, a súa fórmula coincidirá non só cos valores exactos da táboa de busca, senón tamén con calqueravalores que se sitúan no medio.
Por exemplo, o valor de busca en B3 é de 95 $. Este número non existe na táboa de busca, e Vlookup con coincidencia exacta devolvería un erro #N/A neste caso. Pero Vlookup con coincidencia aproximada continúa a busca ata que atopa o valor máis próximo que é menor que o valor de busca (que é de $ 50 no noso exemplo) e devolve un valor da segunda columna da mesma fila (que é 5%).
Pero que pasa se o valor de busca é menor que o número máis pequeno da táboa de busca ou a cela de busca está baleira? Neste caso, unha fórmula Vlookup devolverá o erro #N/A. Se non é o que realmente quere, aniña VLOOKUP dentro de IFERROR e fornece o valor para saír cando non se atope o valor de busca. Por exemplo:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")
Nota importante! Para que funcione correctamente unha fórmula de Vlookup con coincidencia aproximada, a primeira columna da táboa de busca debe estar ordenada en orden ascendente , de menor a maior.
Para obter máis información, consulte Correspondencia exacta. BUSCAR V vs. coincidencia aproximada BUSCAR V.
Instrucción IFS como alternativa á función IF aniñada
En Excel 2016 e versións posteriores, Microsoft introduciu unha función especial para avaliar varias condicións: a función IFS.
Unha fórmula IFS pode manexar ata 127 pares proba_lóxica / valor_se_verdadero , e a primeira proba lóxica que avalía como VERDADERO "gaña":
IFS(proba_lóxica1,value_if_true1, [logical_test2, value_if_true2]...)De acordo coa sintaxe anterior, a nosa fórmula IF aniñada pódese reconstruír deste xeito:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Por favor, preste atención a que o A función IFS devolve o erro #N/A se non se cumpre ningunha das condicións especificadas. Para evitar isto, pode engadir unha proba_lóxica / valor_se_verdadero máis ao final da súa fórmula que devolverá 0 ou cadea baleira ("") ou calquera valor que desexe se ningún dos as probas lóxicas anteriores son VERDADEIRAS:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
Como resultado, a nosa fórmula devolverá unha cadea baleira (cela en branco) en lugar do erro #N/A se unha cela correspondente na columna B é baleiro ou contén texto ou número negativo.
Nota. Do mesmo xeito que IF anidado, a función IFS de Excel devolve un valor correspondente á primeira condición que se avalía como VERDADEIRO, polo que é importante a orde das probas lóxicas nunha fórmula IFS.
Para obter máis información, consulte a función IFS de Excel. de IF anidado.
ESCOLLE en lugar da fórmula IF aniñada en Excel
Outra forma de probar varias condicións dentro dunha única fórmula en Excel é usar a función ESCOLLER, que está deseñada para devolver un valor de a lista baseada nunha posición dese valor.
Aplicada ao noso conxunto de datos de mostra, a fórmula toma a seguinte forma:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
No primeiro argumento ( index_num ), avalía todas as condicións e suma os resultados. Dadoque TRUE equivale a 1 e FALSE a 0, deste xeito calculas a posición do valor a devolver.
Por exemplo, o valor en B2 é de 150 $. Para este valor, as 3 primeiras condicións son VERDADEIRAS e a última (B2 > 150) é FALSA. Entón, número_índice é igual a 3, o que significa que se devolve o terceiro valor, que é o 7%.
Consello. Se ningunha das probas lóxicas é VERDADEIRA, número_índice é igual a 0 e a fórmula devolve o #VALOR! erro. Unha solución sinxela é envolver a función ESCOLLEIR na función IFERROR como esta:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Para obter máis información, consulte a función ESCOLLE de Excel con exemplos de fórmulas.
Función SWITCH como unha forma concisa de IF aniñado en Excel
En situacións nas que se trata dun conxunto fixo de valores predefinidos, non de escalas, a función SWITCH pode ser unha alternativa compacta a complexas instrucións IF aniñadas:
SWITCH(expresión, valor1, resultado1, valor2, resultado2, …, [predeterminado])A función SWITCH avalía expresión contra unha lista de valores e devolve o resultado correspondente á primeira coincidencia atopada.
No caso de que desexes calcular a comisión en función das seguintes notas, en lugar de cantidades de vendas, podes utilizar este compacto. versión da fórmula IF aniñada en Excel:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
Ou pode facer unha táboa de referencia como se mostra na captura de pantalla a continuación e usar referencias de cela en lugar de valores codificados:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
Por favorobserve que bloqueamos todas as referencias excepto a primeira co signo $ para evitar que cambien ao copiar a fórmula a outras celas:
Nota. A función SWITCH só está dispoñible en Excel 2016 e versións posteriores.
Para obter máis información, consulte Función SWITCH: a forma compacta da instrución IF aniñada.
Concatenación de varias funcións IF en Excel
Como se mencionou no exemplo anterior, a función SWITCH só se introduciu en Excel 2016. Para xestionar tarefas similares en versións anteriores de Excel, pode combinar dúas ou máis instrucións IF mediante o operador Concatenar (&) ou a función CONCATENAR .
Por exemplo:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Ou
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Como pode ter observado, multiplicamos o resultado por 1 en ambas fórmulas. Faise para converter unha cadea que devolve a fórmula Concatenar nun número. Se a túa saída esperada é texto, non é necesaria a operación de multiplicación.
Para obter máis información, consulta a función CONCATENAR en Excel.
Podes ver que Microsoft Excel ofrece un puñado de boas alternativas. a fórmulas IF aniñadas, e esperamos que este tutorial che dea algunhas pistas sobre como aproveitalas nas túas follas de traballo. Para ver os exemplos que se comentan neste tutorial, podes descargar o noso libro de exemplo a continuación. Grazas por ler e espero verte no noso blog a vindeira semana!