DEJE QUE EXCEL HAGA EL TRABAJO SUCIO

Coaccionar valores en una fórmula I: Valores numéricos a valores lógicos

Por lo general, cuando usamos la función SI especificamos en ella una comparación con un operador lógico cuyo resultado evaluará VERDADERO o FALSO. Sin embargo, en algunos casos en concreto se puede omitir la comparación, aprovechando que Excel coacciona el cero como FALSO y cualquier otro valor numérico como VERDADERO cuando son introducidos en una función que espera un valor lógico.

Esto quiere decir que si ingresa el valor 0 en una función que espera un valor lógico (VERDADERO o FALSO), la función lo leerá como FALSO. Cualquier otro número que ingrese en la función lo leerá como VERDADERO.

Quizás la forma más fácil de comprobarlo sea ingresando la siguiente fórmula en una celda:

=O(0)

como verá, el resultado devuelto por la fórmula introducida es FALSO.

¿Qué provecho se puede sacar de esto?

Bueno, supongamos que usted quiere que una celda se muestre en blanco si el valor en otra es 0 y de lo contrario que muestre cualquier otro resultado. La forma 'tradicional' de hacerlo sería:

=SI(A1=0;"";"Prueba")

Lo que hará esta fórmula es mostrar "Prueba" en caso de que en la celda A1 haya un valor distinto de 0. Si el valor en A1 es 0, la fórmula mostrará como resultado "" (en blanco).

Ahora, aprovechando que Excel va a coaccionar el valor 0 como FALSO, no es necesario hacer la comparación y se podría reescribir la fórmula así:

=SI(A1;"Prueba";"")

En este caso, si el valor de A1 es 0 (FALSO), la función SI devolverá como resultado "", que es lo que queremos. En caso de que en A1 se introduzca cualquier otro valor, que será leído como VERDADERO, entonces la función arrojará como resultado "Prueba".

Importante, tenga en cuenta que Excel sólo coacciona valores numéricos a valores lógicos, no texto. Por lo que si el valor en A1 para el ejemplo anterior es algún texto, la fórmula arrojará ERROR. 

Avanzando un poco más con esta noción, vemos como podríamos reemplazar también las funciones O e Y por operaciones matemáticas. Es decir, en lugar de usar algo como:

=SI(O(A1=0;A2=0);"";"Prueba")

podríamos usar esto:

=SI(A1+A2;"Prueba";"")

En el primer caso la función evaluará el valor de A1, si el valor de A1 es igual a 0 arrojará VERDADERO. Luego evaluará A2, si el valor de A2 es 0 entonces arrojará verdadero. Luego usará la función O y ya que ambos valores son verdaderos, devolverá VERDADERO. Finalmente, al evaluar la función SI devolverá "" que es lo que queremos que la función arroje en caso de que el valor en A1 o en A2 sea igual a cero.

En el segundo caso el proceso es mucho más simple e igual de efectivo. Si tanto el valor en A1 como A2 es 0, la suma de ellos dará 0, que será evaluado como FALSO y por lo tanto devolverá "", que es lo mismo que buscábamos con la función original.

Siguiendo esta misma lógica vemos cómo la función Y puede ser reemplazada por la multiplicación:

=SI(Y(A1=0;A2=0);"";"Prueba")

arrojará el miso resultado que:

=SI(A1*A2;"Prueba";"")

pues con que una de las dos celdas contenga un 0, el resultado de la multiplicación será 0 y por lo tanto será evaluado como FALSO y la función devolverá "". Será necesario que en ambas celdas sean introducidos valores distintos a 0 para que el resultado de la multiplicación no sea 0 y por lo tanto evalúe como VERDADERO.

Continué leyendo la segunda parte: Valores lógicos a valores numéricos.

3 comentarios:

  1. Hola Mauricio,
    Muy explicito con este tema

    ResponderSuprimir
  2. César,

    gracias por visitar el blog y hacerme saber qué hay alguien leyendo :D.

    ResponderSuprimir
  3. Como siempre buena explicacion!

    Saludos a los dos

    ResponderSuprimir