miércoles, 11 de febrero de 2009

Rangos en funcion SI de Excel

Hola.

Hace un rato un usuario ha preguntado en un foro, como poder comparar rangos de valores con alguna funcion de excel sin hacer una referencia circular y retornando un texto diferente dependiendo del valor ingresado.

La verdad parece complicado retornar un texto solamente ingresando un valor en una celda y que ese valor se encuentre entre un rango en especifico, pero la verdad no es tan complicado y se hace de la siguiente forma.

Tenemos una celda con el valor 6, (por ejemplo C3 = 6) y queremos designar el texto "Verde" cuando la celda tome un valor mayor a 3 y menor a 8. Osea C3 >3 y ademas C3 <=8.

Entonces para definir bien el problema, nos pondremos una meta y debemos llegar al siguiente resultado :

(C3 <= 1) = ROJO
(C3 > 1 y C3 <= 3) = AZUL
(C3 > 3 y C3 <= 8) = VERDE
(C3 >= 8) = NEGRO.

Debemos pensar primero en que posibilidades tenemos para resolver el problema, la funcion SI() de excel, parece una buena solucion, ya que nos permite evaluar operaciones y si se cumple alguna condicion retorna Verdadero o Falso. Pero no todo se queda ahi, ya que esta funcion permite evaluar una sola operacion a la vez. Asi es que, para hacer mas corta esta pequeña ayuda, te dire que no es la solucion optima, pero si lo es la funcion Y().

La funcion Y() se utiliza para retornar un valor segun las operaciones logicas que le pasemos, ella evaluara los datos y si se cumplen las condiciones, retornara un valor
Verdadero o Falso segun corresponda.

Por Ejemplo:

Si la celda C3 tiene el valor 6. ¿ Que valor deberia retornar esta funcion ?

=Y(C3>1;C3<=3)

Exacto, el valor que retorna es Falso, porque no se cumple ninguna condicion de las que le hemos pasado, y si a esto le anteponemos una funcion SI() , seguramente obtendremos el resultado esperado, como el que les muestro a continuacion.

=SI(C3<=1;"ROJO";SI(Y(C3>1;C3<=3);"AZUL";SI(Y(C3>3;C3<=8);"VERDE";SI(C3>=8;"NEGRO";FALSO))))
Con esta definicion le decimos al excel que tome el dato de la celda a examinar y retorne un texto de acuerdo a los resultados evaluados en la funcion
Y(), si los resultados son verdaderos este retornara un texto (ej:"ROJO") y si son falsos, seguiremos con el otro resultado, hasta que la condicion devuelta por la funcion Y() sea Verdadera.

Recordemos que las funciones O(), Y() y SI(), evaluan sus parametros y dependiendo de la cantidad, lo hara hasta que se cumpla la condicion de Verdadero, en caso de no cumplirse ninguna y si llego al final de los parametros, retornara Falso.

Si otra funcion retornara valores Verdadero o Falso, servirian tambien para anidarlos a sus formulas de excel.

Prueben uds. tambien con mas formulas a ver si les resulta!.

Espero les haya ayudado un poco.

Nos leemos.
Saludos!

15 comentarios:

  1. buen aporte, era lo que andaba buscando...gracias

    ResponderBorrar
  2. HOLA.. SOY DE COLOMBIA Y TENGO UN PROBLEMA CON UN EJERCICIOO DE EXCEL: SE TRATA DE HACER UNA FUNCION DE SIGNOS ZODIACALES CON LA FECHA DE NACIMIENTO PERO CREO QUE PARA EL SIGNO NO TENGO NECESIDAD DE UTILIZAR EL AÑO... LA VERDAD NO SE COMO HACERLO ¿ALGIEN PUEDE AYUDARME?

    ResponderBorrar
  3. gracias es un buen ejemplo y lo explicastes bien

    ResponderBorrar
  4. Muchas gracias era justo lo que necesitaba

    ResponderBorrar
  5. Muchas gracias me ha resuelto gran problema. Mi nombre Jose Luis.

    ResponderBorrar
  6. Muchas gracias, resolvi mi duda con el ejemplo, muy buen trabajo.

    ResponderBorrar
  7. excelente información.... me ahorre horas de trabajo...

    muchas gracias...

    ResponderBorrar
  8. Muchas gracias Amigo, me sacaste de una dificultad. Te felicito.

    ResponderBorrar
  9. Tengo una duda, se me dejo la tarea de elaborar una base de datos, la cual contiene diversos padecimientos, sin embargo en una celda con base a dichos padecimientos se dara el diagnostico, y es precisamente que en esta celda de diagnostico ya he agregado mi formula pero me indica que el profe que esta mal porque el sintoma de fiebre se repite en 3 enfermedades y me comenta que haga una funcion SI en rangos de Celdas para que me quede, pero la verda ya me hice bolas, esta fue la formula que use: =SI(Y(J2,K2="Sí"),"Gripe",SI(Y(L2,M2,N2="Sí"),"Diarrea",SI(Y(O2,P2,Q2="Sí"),"Apendicitis",SI(Y(R2,S2="Sí"),"Infecciones Urinarias",SI(Y(T2,U2="Sí"),"Hepatitis B",SI(Y(V2,W2="Sí"),"Salmonelosis",SI(Y(X2,Y2,Z2="Sí"),"Fiebre Tifoidea",SI(Y(AA2,AB2="Sí"),"Parotiditis",SI(Y(AC2="Sí"),"Cistecircosis",SI(Y(AD2,AE2,AF2="Sí"),"Neumonía"))))))))))

    ResponderBorrar
    Respuestas
    1. =SI(Y(J2="SI",K2="SI"),"GRIPE",SI(Y(L2="SI",M2="SI",N2="SI"),"Diarrea"))

      Prueba esto y anida las demás, solo te falta el indicador de que cada celda ="SI".

      Borrar