Primer ejemplo complejo de uso de función Si()

Hola jóvenes

En esta entrada y la siguiente,  se trabajara con dos ejemplos que requieren comparaciones más complejas para su solución.

Ya las comparaciones no son solo por igualdad (se pueden emplear otros operadores relacionales) y aun cuando en ambos ejemplos el tipo de datos de los valores sigue siendo entero, la complejidad radica en que es imposible tratar de darle solución con una función tan sencilla como lo es Elegir(), y por ello puede resolverse lo solicitado  empleando la función SI().

Comencemos con el primer ejemplo.


Primer ejercicio

Comparar las edades de tres niños (Valeria, Ludmila y Sebastián) de forma que se pueda determinar quién es más alto.

La estatura de Valeria se capturará en la celda C15, la de Ludmila se almacenará en la celda C16 y la estatura de Sebastián se guarda en la celda C17.

Existen dos formas de darle solución, una es trabajando las comparaciones de las estaturas de cada uno por separado (usar condición simple) y otra es usando condiciones complejas. Pero en ambos casos se necesitara de funciones SI() anidadas.

Primera solución: con condiciones simples

La idea es ir comparando una por una las estaturas de cada niño, el análisis que permite observar las comparaciones es el siguiente:

Comparar para saber si es mayor la estatura de Valeria que la estatura de Ludmila, de ser verdad, entonces debe
      Comparar para saber si es mayor la estatura de Valeria que la de Sebastián, si es verdad entonces
              “Valeria es más alta”
      De lo contrario (es decir es falso que es mayor la estatura de Valeria que la de Sebastián) resulta que
              “Sebastián es más alto”
De lo contrario (es decir es falso que la estatura de Valeria es mayor que la de Ludmila) entonces debe
       Comparar para saber si es mayor la estatura de Ludmila que la de Sebastián, Si es verdad entonces
              “Ludmila es más alta”
       De lo contrario (es decir es falso que es mayor la estatura de Ludmila que la de Sebastián) resulta que

              “Sebastián es más alto”

Como puede verse las condiciones resultantes de la comparación indican el uso del operador relacional (de comparación) “>” de forma que:

Para Usar la condición (con las referencias de celda)
Comparar si es mayor la estatura de Valeria que la de Ludmila
C15>C16
Comparar si es mayor la estatura de Valeria que la de Sebastián
C15>C17
Comparar si es mayor la estatura de Ludmila que la de Sebastián
C16>C17

Tomemos el análisis y sustituyamos las partes correspondientes a las condiciones, el ejercicio se transforma de la siguiente forma:
Si C15>C16 entonces
  Si C15>C17 entonces
         “Valeria es más alta”
De lo contrario (es decir es falso que C15>C17) resulta que
         “Sebastián es más alto”
De lo contrario (es decir es falso que C15>C16) debe
  Si C16>C17 entonces
         “Ludmila es más alta”
De lo contrario (es decir es falso que C16>C17) resulta que
         “Sebastián es más alto”

Con esto se hace más clara la forma en la que es posible comenzar a transformar el análisis para convertirlo en la función SI() anidada, obteniendo la fórmula que se muestra a continuación:

=Si(C15>C16; Si(C15>C17; “Valeria es más alta”; “Sebastián es más alto”); SI(C16>C17; “Ludmila es más alta”; “Sebastián es más alto”))

Cuando construya formulas con funciones anidadas, debe tener cuidado y cerrar cada paréntesis donde corresponde (al final de cada función), ya que cada función anidada representa un argumento de la función que la contiene. La función escrita arriba se usaron colores para hacer visible cada función, sin embargo, continuación usaré tamaños de letras mayor para evidenciar que partes corresponden a la función Si() externa, y letra menor para las funciones internas, de forma que sea posible observarlas, ya que el resultado que cada una devuelva será el argumento esperado por la función SI() externa. Observe:

=Si(C15>C16; Si(C15>C17; “Valeria es más alta”; “Sebastián es más alto”); SI(C16>C17; “Ludmila es más alta”; “Sebastián es más alto”))


Ahora bien, si se pone atención a ésta fórmula es posible deducir que funciona bien solo en el caso de que todas las estaturas sean diferentes. Y fallará en caso de que todas sean iguales, ya que en cascada caerían las comparaciones en falso y al final indicaría que “Sebastián es más alto” cuando en verdad todos midan lo mismo. Igual fallará en caso de que las dos estaturas mayores sean iguales, mostrando igualmente que “Sebastián es más alto” aun cuando tenga la misma estatura que Valeria o que Ludmila. Esto implicaría incluir una nueva condición simple en cada uno de los SI() internos, específicamente en la parte del argumento que corresponde a si da falsa la condición (es decir el tercer argumento de la función). Dejo esta última parte como un reto que podrán resolver….. anímense a resolverlo. A continuación podrá ver la solución al problema que todas las estaturas sean iguales.

La segunda solución: con condiciones complejas

Empecemos por solucionar el caso de que todos los niños puedan llegar a medir lo mismo, para ello podría usarse una condición inicial que compare las estaturas de todos por igualdad, el análisis general de dicha condicionante será:

Comparar para saber si es igual la estatura de Valeria a la de estatura de Sebastián y a la estatura de Ludmila

Esto implica comparar las estaturas por igualdad y el uso de la función Y(), obteniendo así la condición compleja en la que primero compara por igualdad la estatura de Valeria y la de Ludmila (C15=C16), y luego compara por igualdad la estatura de Valeria y la de Sebastian (C15=C17), obteniendo lo siguiente:
Y(C15=C16; C15=C17)

La fórmula obtenida en la solución anterior, se transforma un poco, al aplicar esta nueva condición compleja usándola en una nueva función Si(), la cual se colocara al inicio, así la formula resultante será:

=SI(Y(C15=C16; C15=C17);"Los tres miden lo mismo"; SI(C15>C16; SI(C15>C17;"Valeria es más alta"; "Sebastián es más alto");SI(C16>C17;"Ludmila es más alta"; "Sebastián es más alto")))

Observe como ahora la primera función SI() tiene como segundo argumento una cadena de caracteres ("Los tres miden lo mismo"), y como segundo argumento se tiene a una nueva función Si(), la cual a su vez tiene como segundo argumento otra función Si(), e igualmente como tercer argumento también tiene otra función Si().

Procedamos a realizar el análisis completo del ejemplo, pero ahora en las funciones SI() internas se procederá a hacer uso de la comparación de las estaturas de todos los niños a fin de crear las condicionantes complejas:

Comparar para saber si la estatura de Valeria a la de Sebastián son iguales,  y si además la estatura de Valeria es igual la de Ludmila; de ser verdad, entonces debe indicar
       “Los tres miden lo mismo”
De lo contrario (es decir, es falso que es igual la estatura de Valeria a la de estatura de Sebastián y a la estatura de Ludmila) por ello debe
        Comparar para saber si es mayor la estatura de Valeria que las estaturas de Sebastián y de Ludmila; de ser verdad entonces indicar
                  “Valeria es más alta”
        De lo contrario (es decir, es falso que la estatura de Valeria es mayor a las de Sebastián y Ludmila) por ello debe
                   Comparar para saber si la estatura de Ludmila es mayor que la estatura de Sebastián, de ser verdad, entonces debe indicar
                               “Ludmila es más alta”
                   De lo contrario (es decir, es falso que es mayor la estatura de Ludmila que la estatura de Sebastián) por ello debe indicar
                               “Sebastián es más alto”


Previamente se explicó la solución al caso de todas las estaturas iguales (“si es igual la estatura de Valeria a la de estatura de Sebastián y a la estatura de Ludmila.”). Así que procedemos a resolveremos el segundo caso:

Comparar para saber si es mayor la estatura de Valeria que las estaturas de Sebastián y de Ludmila

Esto implica comparar las estaturas con el operador “mayor que” (>), se tendrán que construir dos condiciones simples: en la primera comparar la estatura de Valeria contra la de Ludmila (C15>C16), y luego compara la estatura de Valeria contra la de Sebastián (C15>C17); teniendo ambas condiciones simples, los resultados que devuelven son valores de verdad (verdadero o falto), por ello para manejar estos valores de verdad y compararlos se tienen dos opciones: la función Y() y la función O(). En este caso, se espera que dé verdadero solo si en ambas comparaciones la estatura de Valeria es mayor; por lo tanto, si recordamos las tablas de verdad solo con la función Y() se obtiene Verdadero solo en caso de que se tengan dos valores verdaderos. Por lo tanto la condición compleja resultante es la siguiente:
Y(C15>C16; C15>C17)

Habiendo resuelto esta condicionante, es posible tomar el análisis e ir sustituyendo las partes que correspondan a las condiciones complejas encontradas y la condición simple (que permite determinar si la estatura de Ludmila es mayor que la de Sebastián (C16>C17):

Comparar para saber si Y(C15=C16; C15=C17), de ser verdad, entonces debe
       “Los tres miden lo mismo”
De lo contrario (es decir, es falso que Y(C15=C16; C15=C17)) entonces debe
            Comparar para saber si Y(C15>C16; C15>C17), de ser verdad entonces
              “Valeria es más alta”
            De lo contrario (es decir, es falso que Y(C15>C16; C15>C17)) entonces debe
                        Comparar para saber si C16>C17, de ser verdad, entonces debe
                           “Ludmila es más alta”
                        De lo contrario (es decir, es falso que C16>C17)
                           “Sebastián es más alto”

Con esto, se facilita en cierta medida la interpretación, de esta forma que sea posible terminar de construir la fórmula final (empleando la anidación de funciones), observe a continuación:

=SI(Y(C15=C16;C15=C17);"los tres miden lo mismo"; SI(Y(C15>C16;C15>C17);"Valeria es más alta"; SI(C16>C17;"Ludmila es más alta"; "Sebastián es más alto")))


Cabe hacer notar que no siempre existe una única solución, todo depende en cómo se piense el problema y cuál sea la lógica que se aplique para darle solución. Lo ideal siempre primero es ordenar las ideas, tener control de las posibles comparaciones, y comenzar a desglosar una a una a fin de poder contemplar todos los posibles casos; sobre todo siempre probar las fórmulas construidas empleando la función SI() utilizando para ellos valores que es sabido provocaran un error, así, cuando los casos de error se solucionan, entonces podremos pensar en que hemos terminado de dar solución al problema


  • NOTA: El pdf  con la información de la presente entrada, será proporcionado junto al contenido que se expondrá en la siguiente entrada (en donde se explicará un segundo ejemplo) a fin de proporcionar un solo documento.

Pruebe las fórmulas construidas. Animo que vamos a aprender, solo es necesario poner atención a los detalles y practicar.

Saludos

M.C. Bertha López Azamar



P.D. Alumno UNPA, si ya leíste la entrada, pon la letra de tu grupo y las iniciales de tus apellidos primero y luego de tu nombre en un comentario de esta entrada.