Taula de continguts
El tutorial explica com utilitzar la funció IF imbricada a Excel per comprovar diverses condicions. També aprendràs algunes altres funcions que podrien ser bones alternatives a l'ús d'una fórmula imbricada a Excel.
Com s'acostuma a implementar una lògica de presa de decisions als teus fulls de treball d'Excel? En la majoria dels casos, haureu d'utilitzar una fórmula SI per provar la vostra condició i retornar un valor si es compleix la condició, un altre valor si no es compleix la condició. Per avaluar més d'una condició i retornar diferents valors en funció dels resultats, anideu diversos IF els uns dins dels altres.
Tot i que és molt popular, la instrucció IF imbricada no és l'única manera de comprovar diverses condicions a Excel. En aquest tutorial, trobareu un grapat d'alternatives que, sens dubte, val la pena explorar.
Declaració IF imbricada d'Excel
Aquí teniu la fórmula IF imbricada d'Excel clàssica en una forma genèrica :
SI( condició1, resultat1, SI( condició2, resultat2, SI( condició3, resultat3, resultat4)))Podeu veure que cada funció IF posterior està incrustada a l'argument value_if_false de la funció anterior. Cada funció SI s'inclou en el seu propi conjunt de parèntesis, però tots els parèntesis de tancament es troben al final de la fórmula.
La nostra fórmula genèrica SI imbricada avalua 3 condicions i retorna 4 resultats diferents (es retorna el resultat 4). si cap delsllibre de treball per descarregar
Excel imbricat If statement - exemples (fitxer .xlsx)
condicions són VERTADES). Traduïda a un llenguatge humà, aquesta instrucció IF imbricada diu a Excel que faci el següent:Prova condició1, si TRUE - retorna resultat1, si FAL -prova condició2 , si TRUE - retorna r resultat2 , si FALSE -
prova condició3 , si TRUE - retorna resultat3 , si FALS -
retorn resultat4
A tall d'exemple, esbrinem les comissions per a diversos venedors en funció de la quantitat de vendes que han realitzat:
Comissió | Vendes |
3% | $1 - $50 |
5% | 51$ - 100$ |
7% | 101$ - 150$ |
10% | Més de 150 $ |
En matemàtiques, canviar l'ordre dels sumadors no canvia la suma. A Excel, canviar l'ordre de les funcions SI canvia el resultat. Per què? Perquè una fórmula IF imbricada retorna un valor corresponent a la primera condició TRUE . Per tant, a les vostres declaracions IF imbricades, és molt important organitzar les condicions en la direcció correcta: d'alt a baix o de baix a alt, depenent de la lògica de la fórmula. En el nostre cas, primer comprovem la condició "més alta", després la "segona més alta", i així successivament:
=IF(B2>150, 10%, IF(B2>=101, 7%, IF(B2>=51, 5%, IF(B2>=1, 3%, ""))))
Si col·loquem el condicions en ordre invers, des de baix cap amunt, els resultats serien equivocats perquè la nostra fórmula s'aturaria després de la primera prova lògica (B2>=1) per a qualsevol valor superior a 1. Diguem que tenim 100 $a les vendes: és més gran que 1, de manera que la fórmula no comprovarà altres condicions i retornaria un 3% com a resultat.
Si preferiu organitzar les condicions de baix a màxim, feu servir el "menys de " i avalueu primer la condició "més baixa", després la "segona més baixa", i així successivament:
=IF($B2<1, 0%, IF($B2<51, 3%, IF($B2<101, 5%, IF($B2<=150, 7%, 10%))))
Com veieu, cal pensar molt per construir la lògica d'una instrucció IF imbricada correctament fins al final. I tot i que Microsoft Excel permet niar fins a 64 funcions IF en una fórmula, no és una cosa que realment voldríeu fer als vostres fulls de treball. Per tant, si vostè (o algú altre) esteu mirant la vostra fórmula IF imbricada d'Excel intentant esbrinar què fa realment, és hora de reconsiderar la vostra estratègia i probablement triar una altra eina al vostre arsenal.
Per obtenir més informació. , si us plau, vegeu la declaració IF imbricada d'Excel.
SI imbricada amb condicions OR/AND
En cas que necessiteu avaluar uns quants conjunts de condicions diferents, podeu expressar aquestes condicions utilitzant OR així com AND, anideu les funcions dins de les declaracions IF i, a continuació, anideu les declaracions IF entre si.
SI imbricades a Excel amb sentències OR
En utilitzar la funció OR podeu comprovar-ne dues o més condicions diferents a la prova lògica de cada funció IF i retornen TRUE si algun (almenys un) dels arguments OR s'avalua com TRUE. Per veure com funciona realment, tingueu en compte elexemple següent.
Suposem que teniu dues columnes de vendes, per exemple les vendes de gener a la columna B i les vendes de febrer a la columna C. Voleu comprovar les xifres d'ambdues columnes i calcular la comissió a partir d'un nombre més alt. En altres paraules, creeu una fórmula amb la lògica següent: si les vendes de gener o febrer són superiors a 150 dòlars, el venedor rep una comissió del 10%, si les vendes de gener o febrer són superiors o iguals a 101 dòlars, el venedor rebrà una comissió del 7%. , i així successivament.
Per fer-ho, escriviu unes quantes declaracions OF com OR(B2>150, C2>150) i niu-les a les proves lògiques de les funcions IF comentades anteriorment. Com a resultat, obteniu aquesta 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%, ""))))
I s'assigna la comissió en funció de l'import de vendes més alt:
Per més exemples de fórmules, vegeu la declaració IF OR d'Excel.
Si imbricada a Excel amb declaracions AND
Si les vostres proves lògiques inclouen diverses condicions i totes aquestes condicions s'han de valorar com a TRUE, expresseu-les. utilitzant la funció AND.
Per exemple, per assignar les comissions en funció d'un nombre menor de vendes, agafeu la fórmula anterior i substituïu OR per les declaracions AND. Per dir-ho d'una altra manera, digueu a Excel que retorni el 10% només si les vendes de gener i febrer són superiors a 150 $, 7 % si les vendes de gener i febrer són superiors o iguals a 101 $, i així successivament.
=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%, ""))))
Com a resultat, la nostra fórmula IF imbricada calcula la comissióbasat en el nombre inferior a les columnes B i C. Si qualsevol de les columnes està buida, no hi ha cap comissió perquè no es compleix cap de les condicions AND:
Si" m'agradaria retornar 0% en lloc de cel·les en blanc, substituïu una cadena buida ("'") a l'últim argument per 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%))))
Podeu trobar més informació aquí: Excel IF amb múltiples condicions AND/OR.
VLOOKUP en comptes de IF imbricat a Excel
Quan es tracta d'"escales", és a dir, intervals continus de valors numèrics que en conjunt cobreixen tot l'interval, en la majoria dels casos podeu utilitzar la funció BUSCAR VOLTA en comptes de FI imbricats.
Per començar, feu una taula de referència com es mostra a la captura de pantalla següent. I després, creeu una fórmula de cerca V amb concordança aproximada , és a dir, amb l'argument range_lookup establert en TRUE.
Suposant que el valor de cerca és a B2 i la taula de referència és F2:G5, la fórmula és la següent :
=VLOOKUP(B2,$F$2:$G$5,2,TRUE)
Tingueu en compte que arreglem la table_array amb referències absolutes ($F$2:$G$5) perquè la fórmula es copiï correctament a altres cel·les:
En establir l'últim argument de la vostra fórmula Vlookup com a TRUE, digueu a Excel que cerqueu la concordança més propera : si no es troba una coincidència exacta, retorneu el següent valor més gran que sigui més petit que el valor de cerca. Com a resultat, la vostra fórmula coincidirà no només amb els valors exactes de la taula de cerca, sinó també amb qualsevolvalors que es troben entremig.
Per exemple, el valor de cerca a B3 és de 95 $. Aquest número no existeix a la taula de cerca, i Vlookup amb coincidència exacta retornaria un error #N/A en aquest cas. Però Vlookup amb concordança aproximada continua cercant fins que troba el valor més proper que és menor que el valor de cerca (que és de $ 50 en el nostre exemple) i retorna un valor de la segona columna de la mateixa fila (que és el 5%).
Però, què passa si el valor de cerca és menor que el nombre més petit de la taula de cerca o la cel·la de cerca està buida? En aquest cas, una fórmula Vlookup retornarà l'error #N/A. Si no és el que realment voleu, niu VLOOKUP dins de IFERROR i proporcioneu el valor a la sortida quan no es trobi el valor de cerca. Per exemple:
=IFERROR(VLOOKUP(B2, $F$2:$G$5, 2, TRUE), "Outside range")
Nota important! Perquè una fórmula de Vlookup amb concordança aproximada funcioni correctament, la primera columna de la taula de cerca s'ha d'ordenar en ordre ascendent , del més petit al més gran.
Per obtenir més informació, consulteu Concordança exacta. BUSCAR V vs. coincidència aproximada BUSCAR V.
Declaració IFS com a alternativa a la funció IF imbricada
A Excel 2016 i versions posteriors, Microsoft va introduir una funció especial per avaluar diverses condicions: la funció IFS.
Una fórmula IFS pot gestionar fins a 127 parells logical_test / value_if_true , i la primera prova lògica que avalua com a TRUE "guanya":
IFS(logical_test1,value_if_true1, [logical_test2, value_if_true2]...)D'acord amb la sintaxi anterior, la nostra fórmula IF imbricada es pot reconstruir d'aquesta manera:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%)
Presteu atenció que La funció IFS retorna l'error #N/A si no es compleix cap de les condicions especificades. Per evitar-ho, podeu afegir una prova_lògica / value_if_true més al final de la fórmula que retornarà 0 o una cadena buida ("") o qualsevol valor que vulgueu si cap dels les proves lògiques anteriors són VERTADES:
=IFS(B2>150, 10%, B2>=101, 7%, B2>=51, 5%, B2>0, 3%, TRUE, "")
Com a resultat, la nostra fórmula retornarà una cadena buida (cel·la en blanc) en lloc de l'error #N/A si una cel·la corresponent a la columna B és buit o conté text o número negatiu.
Nota. Igual que el SI imbricat, la funció IFS d'Excel retorna un valor corresponent a la primera condició que s'avalua com a TRUE, i per això és important l'ordre de les proves lògiques en una fórmula IFS.
Per obtenir més informació, consulteu la funció IFS d'Excel. de IF imbricat.
TRIA en lloc de la fórmula IF imbricada a Excel
Una altra manera de provar diverses condicions dins d'una sola fórmula a Excel és utilitzar la funció TRIAR, que està dissenyada per retornar un valor de la llista basada en una posició d'aquest valor.
Aplicada al nostre conjunt de dades de mostra, la fórmula pren la forma següent:
=CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%)
En el primer argument ( index_num ), avalueu totes les condicions i sumeu els resultats. Donatque TRUE equival a 1 i FALSE a 0, d'aquesta manera calculeu la posició del valor a retornar.
Per exemple, el valor de B2 és de 150 $. Per a aquest valor, les 3 primeres condicions són VERTADES i l'última (B2 > 150) és FALSA. Per tant, núm_índex és igual a 3, és a dir, es retorna el tercer valor, que és el 7%.
Consell. Si cap de les proves lògiques és TRUE, núm_índex és igual a 0 i la fórmula retorna el #VALOR! error. Una solució senzilla és embolicar COOSE a la funció IFERROR com aquesta:
=IFERROR(CHOOSE((B2>=1) + (B2>=51) + (B2>=101) + (B2>150), 3%, 5%, 7%, 10%), "")
Per obtenir més informació, vegeu la funció EXCEL CHOOSE amb exemples de fórmules.
Funció SWITCH com una forma concisa de SI imbricat a Excel
En situacions en què es tracta d'un conjunt fix de valors predefinits, no d'escales, la funció SWITCH pot ser una alternativa compacta a complexos. declaracions IF imbricades:
SWITCH(expressió, valor1, resultat1, valor2, resultat2, …, [per defecte])La funció SWITCH avalua expressió amb una llista de valors i retorna el resultat corresponent a la primera coincidència trobada.
En cas que vulgueu calcular la comissió en funció de les qualificacions següents, en comptes de les quantitats de vendes, podeu utilitzar aquest compacte versió de la fórmula IF imbricada a Excel:
=SWITCH(C2, "A", 10%, "B", 7%, "C", 5%, "D", 3%, "")
O podeu fer una taula de referència com es mostra a la captura de pantalla següent i utilitzar referències de cel·les en lloc de valors codificats:
=SWITCH(C2, $F$2, $G$2, $F$3, $G$3, $F$4, $G$4, $F$5, $G$5, "")
Si us plauobserveu que bloquegem totes les referències excepte la primera amb el signe $ per evitar que canviïn en copiar la fórmula a altres cel·les:
Nota. La funció SWITCH només està disponible a Excel 2016 i versions posteriors.
Per obtenir més informació, vegeu la funció SWITCH: la forma compacta de la instrucció IF imbricada.
Concatenació de diverses funcions IF a Excel
Com s'ha esmentat a l'exemple anterior, la funció SWITCH només es va introduir a Excel 2016. Per gestionar tasques similars en versions anteriors d'Excel, podeu combinar dues o més declaracions IF mitjançant l'operador Concatenar (&) o la funció CONCATENAR .
Per exemple:
=(IF(C2="a", 10%, "") & IF(C2="b", 7%, "") & IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
O
=CONCATENATE(IF(C2="a", 10%, ""), IF(C2="b", 7%, ""), IF(C2="c", 5%, "") & IF(C2="d", 3%, ""))*1
Com podeu tenir observat, multipliquem el resultat per 1 en ambdues fórmules. Es fa per convertir una cadena retornada per la fórmula Concatenar en un nombre. Si la sortida esperada és text, aleshores no cal l'operació de multiplicació.
Per obtenir més informació, vegeu la funció CONCATENAR a Excel.
Podeu veure que Microsoft Excel ofereix un grapat de bones alternatives. a fórmules IF imbricades, i esperem que aquest tutorial us hagi donat algunes pistes sobre com utilitzar-les als vostres fulls de treball. Per veure amb més detall els exemples tractats en aquest tutorial, us convidem a descarregar el nostre quadern de treball de mostra a continuació. Us agraeixo la lectura i espero veure-us al nostre blog la setmana vinent!