miércoles, 22 de julio de 2009

Función lógica: O

Ejercitaremos de manera muy sencilla con otra de las funciones lógicas de Excel, la función O. Esta nos devolverá VERDADERO si alguno de los argumentos es VERDADERO y devolverá FALSO si todos los argumentos son FALSO.
Veamos la sintaxis:
= O(valor_lógico1;valor_lógico2; ...)
al igual que la función Y, en ésta podremos incluir hasta 30 pruebas lógicas.
Plantaremos un pequeño ejemplo con un listado de personas con Nombre y Apellido, y mediante la función O discriminaremos aquellas personas cuyo nombre comience con vocal, para posteriormente asignarles, mediante el SI condicional, un valor igual 5, y para los nombres que comiencen por consonante un valor igual a 1.
Nuestra lista podría ser:


aplicando la función O de la siguiente manera podremos averiguar si el nombre comienza con vocal. Para ello anidaremos la función:
=IZQUIERDA(nombre; 1)
para determinar con qué letra comienza cada nombre, dentro de la función lógica O:
=O(IZQUIERDA(nombre;1)="A";IZQUIERDA(nombre;1)="E";IZQUIERDA(nombre;1)="I";IZQUIERDA(nombre;1)="O";IZQUIERDA(nombre;1)="U")
Ahora para asignarles un valor 5 a los que comienzan con vocal, y un valor 1 con consonante, emplearemos la función SI; anidando la anterior función O descrita como argumento condicional, y seleccionando como valor de verdadero 5 y como valor de falso 1:


Un ejemplo muy breve, pero visual, de lo que podemos plantear con este tipo de funciones lógicas.
Adjunto fichero por si pudiera interesar.

funcion O
funcion O.xls
Hosted by eSnips

17 comentarios:

  1. exelen buscaba en otras paginas y no me sirvieron para nada graciasss

    ResponderEliminar
  2. Jaime Alejandro Moreno Ramosnoviembre 17, 2010

    Hola, ojala pudieran ayudarme con un problema:

    Se trata de encontrar la categoria de una actividad segun 3 fechas dadas, la tabla se encuentra asi:

    PARAMETROS Y SU UBICACION
    B13=HOY()=FECHA ACTUAL (LA QUE TENGA LA PC, PERO PODRA ALTERARSE)
    D11=F.INICIAL
    E11=F.PROGRAMADA DE TERMINO
    F11=F. REAL DE TERMINO

    CATEGORIAS Y SU UBICACION
    H2=Sin Comenzar
    H3=En curso
    H4=Finalizada
    H5=Retrasada
    H6=Adelantada
    H7=Suspendida


    CRITERIOS DADOS: (FUERON ESTABLECIDOS SEGUN LA LOGICA DE CUALQUIER PROGRAMADOR O CONOCEDOR DE EXCEL, CONTEMPLANDO LAS 4 FECHAS UNICAMENTE, ES POSIBLE QUE HAYA ALGUN ERROR, O COMBINACIONES NO CONTEMPLADAS CUANDO SE TRATA DE QUE ALGUNAS FECHAS NO ESTEN DETERMINADAS Y LAS CELDAS ESTEN VACIAS, O SEAN INCOHERENTES; EN ESTE CASO, ME AYUDARIA SI REVISAN Y CORRIGEN ESTOS DETALLES)

    Sin Comenzar: (si la fecha inicial es mayor que la fecha actual, y la fecha real este vacia, sin importar que tenga en fecha programada)
    SI(Y(D11>$B$9,F11="")

    En curso: (si la fecha de inicio es igual o menor que la fecha actual, y puede ser que la fecha programada se encuentre vacia o que sea mayor o igual que la fecha actual, y la fecha real de termino tiene que estar vacia)

    Finalizada: (si la fecha inicial es menor o igual que la fecha actual, y la fecha programada es mayor o igual que la fecha actual o esta vacía, y la fecha real es igual que la fecha programada)

    Retrasada: (si la fecha inicial es menor o igual que la fecha actual, y la fecha programada es menor que la fecha real de termino en caso de que esta ultima exista, porque si no hay fecha de termino solo debera validarse que la fecha programada sea mayor que la de inicio, pero menor que la fecha actual)

    Adelantada: (si la fecha inicial es menor o igual que la fecha actual, y la fecha real es menor que la fecha programada, y la fecha programada puede ser mayor o igual que la fecha actual pero no puede estar vacía)

    Suspendida: (si la fecha real de termino tiene la letra P o S

    ResponderEliminar
  3. Hola Jaime,
    para tu planteamiento, mejor que optar por la vía de funciones condicionales y lógicas, sería mejor desarrollaras una UDF con la intrucción SELECT CASE; ya que las combinaciones a definir son demasiado trabajosas mediante funciones estándar.
    De todas formas si no das con la forma, envíame el fichero planteado a
    excelforo@gmail.com
    Slds

    ResponderEliminar
  4. HOLA ESTA CHIDO TU BAINA....

    ResponderEliminar
  5. estoy haciendo una un archivo en excel y me tope con un problema en la funcion si necesito que me arroje unos valores ejemplo

    nesecito en el rango de (>=1 pero que sea <=365) que esta accion me arroje el numero 6

    que (>=365 pero que sea <1095)me arroje 8 quien me ayuda

    ResponderEliminar
  6. Hola,
    la función que buscas es SI, y la construcción tendría esta forma:
    =SI(Y(valor>=1;valor<365);6;SI(Y(valor>=365;valor<1095);8))
    siendo valor la celda a evaluar.
    Un saludo

    ResponderEliminar
  7. Hola,
    tengo un ejercicio de examen en el cuál me pone que convierta la siguiente expresión (no(a1>3)o a2<2) y b1<>a1 o no(b1>a2) en formato excel. Alguien me puede ayudar?
    Gracias!!!

    ResponderEliminar
    Respuestas
    1. Hola,
      la verdad es que no están nada claras las pruebas lógicas que se deben cumplir, pero tal cual parece que hablamos de una única expresión lógica, creo que es esto lo que buscas:
      =O(Y(NO(A1>3);A2<2);B1<>A1;NO(B1>A2))
      si no es el caso, al menos te servirá para hacerte una idea de cómo funciona en Excel.
      Un saludo

      Eliminar
  8. Hay algún tipo de prioridad u orden que seguir? estoy muy pez en esto y necesito aprobar esta asignatura!!
    Muchísimas gracias!!

    ResponderEliminar
    Respuestas
    1. Hola de nuevo,
      el orden o prioridad es la misma que si lo hicieras en papel siguiendo la estructura lógica de la expresión; si no lo tienes claro en la cabeza, será dificil expresarlo en Excel.
      Siento no poder ayudarte en eso, cuando tengas claro cuál es el orden de las condiciones y las relaciones Y(and)-O(or)-NO que las unen, házmelo saber y veremos si puedo solucionartelo.
      Slds

      Eliminar
    2. Hola!
      Se las condiciones y las relaciones, el problema es que todos los ejercicios que tengo son como el que te puse ayer y como has visto no se sabe muy bien lo que pide.
      Muchas gracias por tu ayuda y por la rapidez.
      Un saludo

      Eliminar
  9. Hola!!me podrías decir como se pasa de kb a gb, tengo un ejercicio que me dice que 2 exponenete 22 kb es igual a 4 gb y no se como lo ha hecho.
    Otra cosa, no tendras ejercicios resueltos de operaciones lógicas y cuadros de estas para ver si es verdadero o falso??
    Gracias!!
    Un saludo

    ResponderEliminar
    Respuestas
    1. Hola,
      bueno, pasar de Kb a Gb debería ser tan sencillo como conocer la equivalencia, esto es, si 1024 kb = 1 Mb, y 1024 Mb = 1 Gb, tu cuestión es que si 2^22 = 4194304 Kb, haces la regla de tres o divides para convertirlo en Mb (4194304 /1024 = 4096 Mb), de igual forma lo conviertes en Gb (4096 / 1024 = 4 Gb).
      Fijate que es un sistema de medida en base 2, donde 2^10 = 1024 Kb. Por tanto, te interesa emplear funciones tipo =POTENCIA(valor; exponente) o RAIZ(valor).
      En la categoría de funciones del blog, tienes bastantes ejercicios y ejemplos solucionados con operaciones lógicas.
      Slds

      Eliminar
  10. hola necesito calcular el riesgo cardiovascular de acuerdo a la escala de framingham de una lista de datos de excel pero no tengo ni idea de como armar la formula.
    Alguien me podria ayudar por favor

    ResponderEliminar
    Respuestas
    1. Hola, necesitaría conocer cuáles son los parámetros que componen dicha escala y fórmula...
      he buscado en Internet (algo rápido) y parece hay diferentes escalas y forma de calcularlo...

      Saludos

      Eliminar
  11. Y para hacer esto mismo pero con la funcion Y

    ResponderEliminar
    Respuestas
    1. Hola Mauricio,
      que tal estás?, espero te encuentres bien.

      No tiene sentido aplicar la función Y en este caso... una palabra no puede empezar al mismo tiempo por todas las vocales.

      un cordial saludo

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.