Las funciones SI y SI.CONJUNTO en Excel

De las funciones lógicas incluidas en Excel, probablemente la más usada sea la función SI. Esta permite evaluar una prueba lógica y generar un resultado de acuerdo si la prueba lógica es un valor booleano VERDADERO o FALSO.

Sintaxis

=SI(prueba lógica, valor si verdadero, [valor si falso])

El primer argumento es una prueba lógica que evalúa dos valores, referencias o expresiones mediante los siguientes operadores lógicos:

  • Igual a ( = )
  • Mayor que ( > )
  • Menor que ( < )
  • Mayor o igual a ( >= )
  • Menor o igual a ( <= )
  • Distinto a ( <> )

El resultado de dicha prueba tendrá siempre dos posibles valores: VERDADERO (1) o FALSO (0). Esto nos lleva a los siguientes dos argumentos.

Si el resultado de la prueba lógica es VERDADERO, se ejecutará el valor, expresión o referencia que hayamos incluido en el segundo argumento (valor si verdadero). En caso de ser FALSO, el tercer valor, expresión o referencia será ejecutado (valor si falso). Este tercer argumento es opcional, ya que, si es omitido, la función automáticamente devolverá el valor booleano FALSO.

Para ver lo anterior de forma práctica, en el siguiente ejemplo deseamos asignar el porcentaje de comisión correspondiente a cada vendedor. Si las ventas son mayores a $5,000 la comisión es de 5%, en caso contrario no existe comisión.

En este simple ejemplo podemos notar que la función aplica la prueba lógica que hemos establecido, logrando el objetivo de asignar la comisión sin errores.

Aparte de realizar pruebas lógicas sencillas, también podemos elaborar pruebas lógicas más complejas al anidar varias funciones SI.

Funciones SI anidadas

Las funciones SI anidadas siguen la misma sintaxis de la función SI simple. La diferencia está en que alguno de los argumentos para verdadero o falso, serán también una nueva función SI. Se pueden anidar hasta un máximo de 64 funciones, sin embargo, más adelante veremos por qué no debemos llegar a ese límite.

Si ampliamos un poco más nuestro ejemplo anterior, para incluir varios rangos de comisiones, podemos realizar la asignación al anidar tres funciones SI. Nuestros nuevos rangos son los siguientes:

De forma gráfica, la función puede estructurarse de la siguiente forma:

A continuación, veremos cómo incluir estas pruebas lógicas en nuestra función:

Es importante considerar que para lograr funciones SI anidadas robustas, debemos tener claro el proceso lógico que realizará la función. Debido a que el orden de las condiciones afecta el resultado de la función, en las primeras ocasiones que la utilicemos, es buena idea realizar un pequeño flujograma de referencia antes de insertarla en nuestra hoja. Esto nos evitará errores y correcciones futuras.

A pesar de su evidente utilidad para evaluar varias condiciones, no es recomendable abusar de esta característica, mucho menos llegar a anidar las 64 funciones posibles. La razón de esto es que las fórmulas SI anidadas con más de 3 condiciones pueden llegar a ser muy largas, difíciles de revisar y mantener.

En referencia a nuestro ejemplo, planteamientos similares también podrían resolverse de una forma más concisa y auto documentada con una función BUSCARV y un rango auxiliar.

Función SI.CONJUNTO

Excel 2016 y Office 365 incluyen una función llamada SI.CONJUNTO (en inglés sólo IFS), la cual permite incluir una sucesión de pruebas lógicas y resultados hasta un total de 127 argumentos.

Sintaxis

=SI.CONJUNTO (prueba lógica1, valor verdadero1, [prueba lógica2, valor verdadero2],... [prueba lógica127, valor verdadero127])

Las pruebas se ejecutan en el orden que se introducen, por lo tanto, el último par indica el resultado de la función en caso de que todas las pruebas lógicas anteriores hayan generado el valor booleano FALSO.

En nuestro ejemplo, la función SI.CONJUNTO quedaría como se ilustra debajo, generando el mismo resultado que las funciones SI anidadas utilizadas anteriormente.

De la misma forma que la función SI anidada, evaluar muchas condiciones en la función SI.CONJUNTO puede generar fórmulas muy largas. Aunque su edición y mantenimiento puede ser más sencillo que la función SI anidada, es una mejor práctica utilizar alternativas más concisas en casos donde se presenten más de 3 condiciones.

Como una última reflexión les comento que en muchas ocasiones he visto que se realizan consultas en foros, blogs y páginas de soporte sobre la aplicación de pruebas lógicas en Excel. Aunque es totalmente válido hacer consultas, muchas veces el usuario tiene muy claro el proceso lógico que quiere evaluar y lo plantea de forma correcta, sin embargo, parecen no estar al tanto de que pueden llevar su lógica a estas funciones. En pocas palabras, tienen la respuesta frente a sí mismos, pero no la ven.

Ahora que ya hemos visto estas funciones, cuando tengan situaciones donde Excel deba «decidir» con pruebas de tipo lógico, sólo piensen un poco cómo implementarlas con estas funciones, muchas veces es algo muy sencillo de hacer. Enfocar el problema de esa forma incrementará su comprensión de las funciones en lugar de consultar, cortar y pegar la respuesta que les sea dada.

En próximas entradas estaremos viendo más de las 41 funciones indispensables que debes dominar en Excel.

7 Comments

  1. Hola, necesito saber si existe alguna forma de poner una función lógica que me permita identificar que si dentro de un conjunto de filas, por ejemplo desde A:1 hasta A:15 aparece la palabra «claro» sume y multiplique dos columnas. Sería algo así como: Si(A1:A15=»Claro»;sumaproducto(B1:B15;C1:C15);0). Esa es la que se me ocurrió pero en sí, la primer parte (A1:A15=»Claro») no me la toma. Se puede hacer la misma cambiando algún tipo de signo o directamente se cambia la fórmula?

    Muchas gracias,
    Emilio

    Responder

    1. Hola Emilio,

      Si es posible. Entiendo que en el ejemplo que planteas, la suma y multiplicación seria sobre los ítems de las columnas B y C que coincidan con el indicador «Claro» de la columna A. Si es así, estabas muy cerca de la respuesta. Puede haber otras formas de lograr el resultado, pero para continuar con la idea de tu fórmula original yo usaría la función SUMAPRODUCTO así:

      =SUMAPRODUCTO(–($A$1:$A$15=»Claro»)*$B$1:$B$15 *$C$1:$C$15)

      La clave de esta en el resultado de la expresión –($A$1:$A$15=»Claro»). El resultado es una matriz de 1s y 0s donde el 1 representa las ocurrencias de «Claro» y el 0 representa la no ocurrencia. Al multiplicar esa matriz por las columnas restantes, solo obtendrás resultado donde existan la coincidencia con la palabra «Claro», el resto de resultados será 0. En todo caso te recomiendo que evalúes cada expresión de forma individual (selecciona la expresión dentro de la función y presiona F9) para que comprendas a cabalidad el resultado. Saludos!

      Responder

  2. Hola como estás? Quiero saber si es posible con la función si y sustituir, eliminar uno o mas termino dentro de una celda. Ejemplo: Si una celda es = 1 entonces sustituir «Perro,» por «Gato» o/y si una celda es = 1 sustituir «,Perro» por «Gato».

    Responder

    1. La respuesta corta es si, es posible. Ahora bien, la forma de plantear la fórmula dependerá de lo que quieras lograr. Si es una sustitución específica entre dos valores, probablemente con una fórmula sencilla SI y luego SUSTITUIR sea suficiente. Si quieres que la fórmula “intercambie” el resultado dependiendo de una entrada, probablemente necesites un SI y dos SUSTITUR, uno para resultados Verdaderos y el otro para los resultados Falsos.

      Responder

  3. Quisiera saber como puedo utilizar la funcion SI.CONJUNTO para saber cuales son los precios mas baratos de un listado de precio de proveedores.

    Responder

    1. Hay varias formas de lograr esto. Una cuestión importante es saber que consideras «más barato», pues es un argumento que debes incluir en tu fórmula. Por ejemplo, digamos que tengo un listado de productos y precios cuyo valor varía entre $3 y $10. Entonces la condición «más barato» sería aquellos productos cuyo precio es inferior a $5. Si intentamos hacer esto con la función SI.CONJUNTO, y asumiendo que tenemos una Tabla1 con dos columnas, productos y precios, quedaría algo así: =SI.CONJUNTO(Tabla1[Precio]<5;Tabla1;Tabla1[Precio]>=5;0). En la última versión de Excel, esta fórmula generaría una matriz donde los valores devueltos serían todos aquellos productos cuyo precio es menor a 5 y un valor cero para todos los productos con precio igual o mayor a $5. Ahora bien, aunque correcta, esta solución devuelve datos que no interesan (los valores en cero), por lo que si tienes la última versión de Excel, te recomendaría que le des una mirada a la función FILTRAR, con la cual podrás lograr el resultado de aplicar un filtro condicional a tus datos, pero haciéndolo vía fórmula. Con esa fórmula obtendrías la matriz de precios más baratos, según tu condición, de forma muy precisa. Saludos!.

      Responder

Responder a carlosmCancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.