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.
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”))
=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”
=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.