martes, 21 de julio de 2009

Una función lógica: Y.

Hemos incluido en nuestro blog algunas entradas con la función lógica SI(siguiendo la categorización propia de Excel para sus funciones). Hoy explicaremos otra de las funciones lógicas de Excel, función Y.
=Y(valor_lógico1;valor_lógico2; ...)
Esta función nos permitirá comprobar si distintas condiciones, o pruebas lógicas, se cumplen (son verdaderas) simultáneamente; hasta un máximo de treinta!!.
Replicaremos, empleando esta función Y, el ejercicio planteado en un post anterior. El modo de trabajo será muy similar.
Recordemos que diponemos de un listado de contactos con datos personales, y usando una tabla paralela con unas categorías comerciales, se les asignará a cada uno de ellos en función a su edad y sexo.


y la tabla auxiliar con datos de puntuación comercial:


Es entonces cuando aplicamos la función Y. La usaremos a modo de condición dentro de una función SI anidada. Así:
Y(edad<50;sexo="V")
preguntamos si es cierto que ese contacto tiene una edad inferior a 50 y sexo Varón al tiempo. Por tanto, es sin duda una prueba lógica que podemos utilizar dentr de la función SI
=SI(Y(edad<50;sexo="V");Puntuación 10)
puesto que tenemos una tabla de puntuaciones, con las distintas combinaciones posibles que necesitamos para nuestra clasificación, nos podría servir el uso del SI anidado para ir dirigiendo estas combinaciones a su puntuación concreta. Al usar el SI estamos diciendo realmente que si se cumple al tiempo que el contacto tiene una edad inferior a 50 y es Varón, entonces ejecutas o seleccionas la celda de Puntuación 10. Cuando no se cumplan las condiciones de edad y sexo marcadas, volvemos a preguntar con otro SI, que incluirá a su vez como prueba lógica, un Y que comprenda una nueva combincón de edad-sexo, y así sucesivamete hasta completar nuestra tabla de puntuaciones.


Podríamos plantear un árbol de ejecución de los SI anidado, combinado con la función Y:


Obviamente no es esta la solución más óptima para desarrollar este ejercicio, pero es una buena forma de practicar con estas dos funciones lógicas SI e Y.

22 comentarios:

  1. Amigos me gustaria me concedieran su apoyo para resolver el siguiente problema.
    Nombre Sexo Edad
    Javier M 11
    Pedro M 11
    Pablo M 13
    Juan M 12
    Chana F 14
    Petra F 15
    Petronila F 13
    DoroteO F 14
    Menelea M 12
    RAUL M 13

    Deseo llenar la siguiente tabla.
    11 12 13 14 15 16 ...
    H
    M

    agrdecere su ayuda

    ResponderEliminar
  2. Mi planteamiento para dar solucióna tu problema iría por emplear una Tabla dinámica sobre tu base de datos, este sería la más rápida de todas.
    También podrías emplear funciones del tipo SUMAR.SI o CONTAR.SI, tal vez en forma matricial.
    Una alternativa a las dos anteriores sería emplear el asistente de Suma condicional...
    En los próximos días publicaré una entrada desarrollando las soluciones mencionadas.
    Un saludo

    ResponderEliminar
  3. TENGO UN EJERCICIO QUE SE TRATA DE UNA LISTA DE 12 ALUMNOS LA CUAL SE SACA PROMEDIO DE CADA UNO DE ELLOS Y SACAR UN PROMEDIO GLOBAL DEL CURSO, SE OBTIENE LA NOTA MAXIMA Y LA MINIMA ,EL NUMERO DE ESTUDIANTES,SE USA UNA FORMULA PARA VER SI ESTA APROBADO O REPROBADO,TODO IBA BIEN HASTA QUE ME PIDE QUE "USE LA FUNCION LOGICA Y SEGUN LOS PARAMETROS 20-18 A, 17-16 B, 15-14 C, 13-12 D, 11-0 E. DE ABC SON APROBADOS PERO D E SON LOS REPROBADOS , MI PREGUNTA ES QUE FORMULA APLICO PARA QUE PUEDA PONER ESAS LETRAS SEGUN LA NOTA COMO SE HACE ESO POR FAVOR EXPLIQUENME

    ResponderEliminar
  4. Estimado amigo,
    yo probaría a desarrollar una función anidada del Y con el Si condicional, tienes un ejemplo desarrollado en la siguiente entrada:
    http://excelforo.blogspot.com/2009/11/funcion-definida-por-el-usuario-el-si.html
    puedes optar por la fórmula directa, o si te atreves (es muy fácil), te lo recomiendo, con la función personalizada.
    Si tienes algún problema, envíame un correo a excelforo@gmail.com y te remitiré la solución.
    Un saludo

    ResponderEliminar
  5. TENGO UN PROBLEMA DE FUNCION LOGICA , DISEÑAR UNA FUNCION LOGICA QUE PERMITA IDENTIFICAR A PARTIR DE TRES INDICADORES SI UN MEDICAMENTO ACTUA O NO CONTRA LA GRIPA :
    ESTOS SON LOS INDICADORES DE QUE DISPONE LOS ESTUDIANTES:
    EL INDICADOR A: EN SU ESTADO ACTIVO SE SEÑALA QUE EL MEDICAMENTO CONTIENE ANTIHISTAMINICO
    EL INDICADOR B: ES UN ESTADO ACTIVO SEÑALA QUE EL MEDICAMENTO NO CONTIENE ANALGESICO
    EL INDICADOR C: EN SU ESTADO ACTIVO SEÑALA QUE EL MEDICAMENTO CONTIENE ANTIPIRETICO

    SE CONSIDERA QUE UN MEDICAMENTO ACTUA CONTRA LA GRIPA CUANDO CONTIENE ANALGESICO O CONTIENE ATIHISTAMINICO Y ANTIPIRETICO

    LA CONVENCION A USAR ES LA SIGUIENTE

    FUNCION LOGICA =1 EL MEDICAMENTO SIRVE PARA LA GRIPA
    FUNCION LOGICA =0 EL MEDICAMENTO NO SIRVE PARA LA GRIPA

    A=1 INDICADOR A EN UN ESTADO ACTIVO
    INDICADOR A EN UN ESTADO NO ACTIVO

    A=0 IGUAL PARA LOS INDICADPORES B Y C

    ResponderEliminar
  6. Hola,
    suponiendo que en una columna tengas los tres indicadores (Antinistaminico, Analgesico y Antipiretico) y en la columna anexa tienes valores 1 y cero en función de si el medicamento tiene su estado activo. En esta segunda columna que refleja el medicamento incluirías la siguiente función:
    =SI(O(analgesico=1;Y(antihistaminico=1;antipiretico=1));"gripa";"no vale")
    si quieres que te devuelva un valor 1 (si sirve) y cero (si no sirve) la función sería:
    =SI(O(analgesico=1;Y(antihistaminico=1;antipiretico=1));1;0)
    Espero te sirva.
    Slds

    ResponderEliminar
  7. HOLA NECESITO COMPARAR 2 COLUMNAS, ORIGEN, DESTINO DE UN CUADRO CON LAS CELDAS DE ORIGEN Y DESTINO (CUADRO B) DE OTRO CUADRO EN LA MISMA HOJA DE CALCULO O EN OTRA. AHORA BIEN NECESITO QUE EN UNA TERCERA COLUMNA ME DIGA LOS KILÓMETROS DE DISTANCIA QUE INDICA EL CUADRO A
    EL PRIMER CUADRO ES DE LAS DISTANCIAS ENTRE UN LUGAR Y OTRO, LAS REFERENCIA DE LOS VIAJES
    EL SEGUNDO ES PARA CALCULAR KM QUE REALIZO EL CHOFER

    ResponderEliminar
    Respuestas
    1. Hola Maharaja,
      necesitaría me enviaras a
      excelforo@gmail.com
      un ejemplo del fichero con que trabajas para ver esa estructura de tablas de datos...
      Slds

      Eliminar
  8. hola me podrian ayudar con los enunciados de los problemas plis

    ResponderEliminar
    Respuestas
    1. Hola
      ¿El enunciado de qué problema???
      Slds

      Eliminar
  9. HOLA ME PODRIAN AYUDAR CON ESTE EJERCICIO

    NOMBRE NOTA FINAL RESULTADO
    JUAN
    PABLO
    NUBIA

    SI NOTA ENTRE 0.0 Y 2.9, ''NO APROBO''
    SI NOTA ENTRE 3.0 Y 3.9, ''APROBO SIN BECA''
    SI NOTA ESTRE 4.0 Y 5.0, ''APROBO CON BECA''

    ResponderEliminar
    Respuestas
    1. Hola,
      la función sería:
      =SI(Y(nota>0;nota<=2.9);"No aprobó";SI(Y(nota>=3;nota<=3.9);"Aprobó sin beca";SI(Y(nota>=4;nota<=5);"Aprobó con beca")))
      Espero te sirva
      Slds

      Eliminar
  10. ME PODRIAN AYUDAR NECESITO INGRESAR CODIGOS A UNA LISTA DE ACUERDO A SU NOMBRE APELLIDO Y SU NRO DE DNI Y NO SE COMO APLICAR LA FUNCION HALLAR PARA TODA LA LISTA EL CODIGO DEBE SALIR PARA LOS NOMBRES ASI POR EJEMPLO EN EL CASO DEL 1RO WILTITMA478 PERO DONDE DEBO APLICAR LA FUNCION HALLAR EN LOS DEMAS NOMBRES

    Wilson Tito, Manuel 47897654
    Stallon Martinez, Silvester 46546544
    Nuñez Fernandez, Carla 45033947
    Kidman Yauri, Nicole 46567876
    Berrios Juarez, Julia 42345456

    ResponderEliminar
    Respuestas
    1. Hola,
      habría que saber si toda la información está en una sola celda o en distintas(Apellido1, Apellido2, Nombre, DNI): También si es posible encontrarse con Nombres o Apellidos compuestos (por ejem, Juan Carlos, ó García-García)...
      Si todos los datos están en una sóla celda, habría que combinar la función HALLAR dentro de un EXTRAE, junto con otras funciones de texto tipo IZQUIERDA o DERECHA.
      Slds

      Eliminar
  11. hola necesito que me ayuden con este ejercicio.. la empresa caida fija vende pasajes a cartagena a 120000, santa marta 150000 san andres 180000 tambien hace descuento de la siguiente forma si la cantidad es mayor o igual a 12 hace un descuento de 50% del valor a pagar si la cantidad es mayor a 6 hace un descuento del 25% del valor a pagar de lo contrario no hace descuento.....

    ResponderEliminar
    Respuestas
    1. Parece bastante simple. No comprendo cuál es la dificultad que planteas.
      Supongo que ya tienes una planilla con una columna en donde está el Nº de pasajes a vender, otra con el destino de los mismos y otra en donde van a aparecer los montos totales de la compra combinada, ¿no?.

      Eliminar
    2. Hola,
      bueno, como dice Rodolfo, tendrás la plantilla ya compuesta, por lo que tendrás una columna A con el número de viajes, y otra B con el precio pasaje (supongo); si quieres determinar el precio final con descuento, en otra columna C, incluirías la función
      =SI(A1>=12;B1*0.5;SI(Y(A1>6;A1<12);B1*(1-0.25);B1))
      Slds

      Eliminar
  12. hola como estan todos bueno tengo una pregunta tengo datos en las celdas estos son datos aparte para una planilla y como ej en una celda "1" y otra celda " 1.235321"
    "2" "3.21313"
    "3" "5.253" y mi problema es que cuando en la planilla anotas cualquiera de los 3 datos en una celda en otra tiene que aparecer el resultado
    como ej si yo anoto "2" automaticamente en la otra celda tiene que aparecerme "3.21313"
    y cuando pongo otro dato en la MISMA celda como "1" tiene que aparecer en la otra celda su resultado "1.235321" y no entiendo como puedo hacer la formula que me aconsejan por fa estare muy agradecido:

    ResponderEliminar
    Respuestas
    1. Hola,
      por lo que entiendo tienes un listado de datos en dos columnas, en la primera columna A tienes los valores 1,2,3, etc y en la columna B sus correspondientes 1.2353, 3.213, 5.253, etc
      quieres que cuando en cualquier celda, por ejemplo en la D1, pones el valor 1,2,3, etc en la celda de al lado E1 aparezca su valor correspondiente 1.2353, 3.213, 5.253...

      Si es así, debes aplicar en E1 la función:
      =BUSCARV(D1;A:B;2;0)
      Saludos

      Eliminar
  13. se puede encontar el max y min pero utilizando solo funciones logicas para estos numeros :
    15
    5
    25
    muchas gracias
    y de la misma manera para el orden de estos

    ResponderEliminar
    Respuestas
    1. Hola, que tal?
      las funciones lógicas son SI, Y, O, NO.. sólo con estas funciones es algo rebuscado.
      Pero podría ser algo parecido a esto. Para el máximo:
      =SI(A1>A2;SI(A2>A3;A1))
      y claro está ir cubriendo todas las posibilidades para concretar que valor es el máximo
      ó bien
      =SI(Y(A1>A2;A2>A3);A1;SI(Y(A2>A1;A2>A3);A2;SI(Y(A3>A1;A3>A2);A3))

      De manera similar para el mínimo...
      Slds

      Eliminar