jueves, 1 de octubre de 2009

Ejemplo de SI: doble condicional (I).

Lectores del blog me han preguntado en un par de ocasiones sobre cómo aplicar, o anidar dos función SI, lo que también conocemos como doble condicional. Pondremos un par de ejemplos muy sencillos.
Supongamos que tenemos un listado de valores sobre un campo 'Proyecto', y dependiendo del valor numérico de este 'Proyecto' pretendes determinar un porcentaje fijo de sueldo varible, acompañado de otro campo 'Sueldo anual'. Tratamos de encontrar cuál es el 'sueldo variable', en euros, sobre su sueldo anual que le corresponde a cada empleado, en función de los proyectos finalizados en este ejercicio y a unos porcentajes conocidos.


Aplicaremos la siguiente función sobre la columna de 'Variable':
=SI(celda_proyecto<3;0%;SI(celda_proyecto>5;21%;13%))
al tener sólo tres tramos este es el desarrollo más sencillo; después sólo deberás multiplicar por el valor de 'sueldo anual' que tuvieras.
También podríamos haberlo incluido dentro de la misma fórmula:
=SI(celda_proyecto<3;sueldo_anual*0%;SI(celda_proyecto>5;sueldo_anual*21%;sueldo_anual*13%))



Observamos como hemos anidado una condición SI dentro de otra, es decir, un doble condicional. De forma algo más literaria, podríamos interpretar la fórmula de la siguiente manera: si el número de proyectos de un empleado es menor de 3, no le corresponde ningún varible, de lo contrario (i.e, ha finalizado 3 ó más proyectos en este año, entonces forzamos una nueva condición, que solapa a la inicial; esto es, si el número de proyectos es 3 o mayor, pero a la vez es menor de 5 (los que estén entre 3 y 5 proyectos acabados), entonces aplicaremos un variable del 13%, en el resto de casos (sólo nos quedan más de 5 proyectos acabados) le asignamos un variable del 21%.

71 comentarios:

  1. me parece en particular que alguien que se dedique a divulgar sus conocimeintos de forma gratuita FORMIDABLE por eso te digo GRACIAS.
    PD
    Puede poner en este ejmplo que si crea un nombre de rango le resultara mas censillo realizar la formula=SI(proyecto<3;0%SIproyecto>5;21%;13%))

    ResponderEliminar
  2. Muchas gracias por tu comentario... efectivamente, si asignaramos un nombre 'proyecto' al rango B2:B11, luego lo podríamos haber aplicado en la forma comentada por tí
    =SI(proyecto<3;C2*0%;SI(proyecto>5;C2*21%;C2*13%))
    con el mismo resultado.
    Un saludo y, como siempre, cualquier aportación siempre será bien recibida.

    ResponderEliminar
  3. Un gran aporte, muchas gracias amigo! Muy util...

    ResponderEliminar
  4. buen dia me gustaria saber como hago en un caso parecido a este pero difiere en algo... si a1 es menor que a2 el valor es h3 pero si es mayor es h4, aqui viene la complicación para mí, si a1 es igual a a2 el valor es h5.

    ResponderEliminar
  5. Hola johany,
    prueba con la siguiente fórmula..
    =SI(A1<A2;H3;SI(A1=A2;H5;H4))
    con lo que cubre las tres posibilidades de A1 frente a A2.
    Espero te sirva
    Slds

    ResponderEliminar
  6. Hola soy profesor y necesito una fórmula con doble condición si A1 es mayor que 59, entonces al resultado suma 2, si el A1 es mayor que 49 y menor que 60 entonces suma 1 y si es menor que 50 suma 0.

    Por favor sería de gran ayuda para complementar mi planilla para sacar calificaciones...gracias de antemano

    ResponderEliminar
  7. Hola Fisic,
    la función quedaría en la celda A2 por ejemplo:
    =SI(A1<50;0;SI(Y(A1>=50;A1<=60);1;2))

    hay que tener cuidado con la definición de los intervalos y por tanto con las desigualdades.

    Slds

    ResponderEliminar
  8. Muchas gracias por tu ayuda.....

    ResponderEliminar
  9. no entendi nada pero igual gracias! :)

    ResponderEliminar
  10. Buenos días,
    si me cuentas qué es lo que no entendiste, quizá te lo pueda aclarar...
    Un saludo

    ResponderEliminar
  11. HOLA

    SOY DOCENTE AYUDAME CON ESTO PORFA... DE UNA LISTA DE NOTAS DEBO SELECCIONAR 4 NIVELES
    BAJO DE O - 49.99 BASICO DE 50 - 74.99 ALTO DE 75 A 89.99 Y SUPERIOR DE 90 A 100. LO HICE =SI(D5<=49,9;"bajo";SI(D5=5090;"superior"))))PERO NO FUNCIONA DIME CUAL ES MI ERROR... GRACIAS

    ResponderEliminar
  12. Hola, realmente no estás estructurando correctamente los diferentes intervalos o niveles, debería ser algo así:
    =SI(D5<50;"bajo";SI(Y(D5>=50;D5<75);"basico";SI(Y(D5>=75;D5<90);"alto";SI(D5>=90;"superior"))))
    Espero te resulte útil
    Un saludo

    ResponderEliminar
  13. Hola necesito ayuda con este pequeño problema, dice mas o menos asi:
    Agregar una columna para la clasificación del vendedor tomando el siguiente criterio:
    A Para aquellos que tengan un promedio de venta menor a 1000 y su dia máximo de venta halla sido en cualquiera de los dias Lunes, Martes o Miércoles
    B Para aquellos que tengan un promedio de venta menor a 1000 y su dia máximo de venta halla sido en cualquiera de los dias Jueves, Viernes o Sábado
    C Para el Resto de los casos

    ResponderEliminar
  14. Hola,
    supongo que tienes al menos dos columnas con datos, una columna con 'Promedio de ventas' y otra columna con el 'Día máximo', Si es así, entonces la fórmula sería:
    =SI(Y(promedio<1000;O(dia_max="Lunes";dia_max="Martes";dia_max="Miércoles"));"A";SI(Y(promedio<1000;O(dia_max="Jueves";dia_max="Viernes";dia_max="Sábado"));"B";"C"))
    Espero te sirva.
    Slds

    ResponderEliminar
  15. Muchas gracias, tengo las dos columnas que me mencionas, pero al agregar la formula, no me arroja el resultado, me marca error en el numero 1000, y no se porque sea...... espero y puedas ayudarme. De nuevo muchas gracias

    ResponderEliminar
  16. La formula la use tal como me la pusiste tu, cambiando la celda a utilizar, me queda algo similar a esto:

    =SI(Y(J4<1000;O(K4="Lunes";K4="Martes";K4="Miércoles"));"A";SI(Y(J4<1000;O(K4="Jueves";K4="Viernes";K4="Sábado")),"B","C"))

    Pero la primera parte de esta ecuacion es la que no me permite ya que el cursor se posiciona en el numero 1000 ... espero puedas ayudarme

    ResponderEliminar
  17. Hola de nuevo ya pude solucionar el problema .... la situacion estaba en los puntos y comas, ya que debian ser solo comas. Gracias por la ayuda

    Ahora tengo un nuevo enfrentamiento:
    Insertar 3 columnas, cada una con los encabezadodos de cada clasificación (A, B, C). E indicar dependiendo de la clasificación que haya obtenido en el punto 6, si es H o M.

    Espero puedas ayudarme con esta situación. Gracias

    ResponderEliminar
  18. Hola,
    efectivamente en la versión en castellano los argumentos de las funciones deben separarse por puntos y comas, mientras que en las versiones 'anglófonas' los argumentos se separan por comas.
    De tu última cuestión me falta información de tu punto 6 al que haces referencia supongo que se trata de algún ejercicio de algú curso).
    Pero parece que deberás agregar un nuevo SI condicional.
    Slds

    ResponderEliminar
  19. Hola muy buen dia:

    Yo tengo un ejercicio aun mas complicado, ojala y me puedas ayudar te lo agradeceria mucho:

    Tengo que hacer una comparacion de 4 variables y es de la siguiente forma.

    Primer comparacion, esta se realiza entre mi columna con el nombre de canales de television, en mi base de datos tengo todas las emisoras y en mi formato unicamente 45 entonces lo que debo de hacer es una comparacion entre emisoras, segunda comparacion es la fecha, tercer comparacion hora y la ultima es entre mi anunciante.

    Nota: dicha comparacion consiste en que si un registro de mi base de datos coincide en emisora, fecha, hora y anunciante el resultado sea "en horario"

    ResponderEliminar
    Respuestas
    1. Hola,
      bueno, yo utilizaría una función matricial sobre los cuatro campos.
      supongamos los cuatro campos/variables columna A:D, y que las celdas a comparar están en G:J.
      Entonces la matricial quedaría:
      {=SI(A:A=G1;SI(B:B=H1;SI(C:C=I1;SI(D:D=J1;" en horario";"nada"))))}
      Como no indicas muchos datos de situación, espero te oriente.
      Slds

      Eliminar
  20. Hola:

    Gracias por tu ayuda pero ammm tengo entendido que al meter ese tipo de formulas se le debe de dar ctrl, shif e intro simultaneamente para que te reconozca excel la formula no??,

    he hecho lo mismo que me escribiste pero me lo arroja como si fuera un texto ordinario no se donde me he equivocado u.u

    De antemano gracias por tu ayuda saludos.

    ResponderEliminar
    Respuestas
    1. Hola,
      si te refieres al ejemplo del comentario anterior si, efectivamente, hay que ejecutarla matricialmente (presionando al tiempo Ctrl+Mayusc+Enter):
      {=SI(A:A=G1;SI(B:B=H1;SI(C:C=I1;SI(D:D=J1;" en horario";"nada"))))}
      Claro, te devuelve un texto 'en horario' como pedías en el comentario si cumplían las condiciones, o 'nada' para el resto de casos.
      Slds

      Eliminar
  21. Hola de nuevo:

    Redacto exactamente el problema sobre el cual estoy trabajando ojala me puedas orientar un poco Gracias.

    1er Condicional
    Si mi variable fecha, hora, marca y emisora son iguales que me arroje un texto que diga en pauta.

    2da Condicional
    Si mi fecha, marca y emisora son iguales pero la hora es distinta que me arroje un texto que diga fuera de pauta.

    3ra Condicional
    Si no coincide ni mi fecha ni mi hora ni mi marca entonces que diga omitido

    4ta Condicional
    Tambien debo saber si tengo registros adicionales osea que no aparescan en mis anuncios que fueron programados, y si hallan sido transmitidos.

    Con la respuesta que me habias brindado efectivamente me arroja la primer condicion de que si fueron transmitidos, pero mi problema es saber los que no coinciden a que status corresponden si a Fuera de pauta u Omitidos, asi como tambien saber si hay adicionales.

    De antemano muchas gracias por tu ayuda me ha estado sirviendo de mucho, espero haberme explicado bien.

    Saludos :D

    ResponderEliminar
    Respuestas
    1. Hola!,
      mejor envíame un fichero con el ejemplo a
      excelforo@gmail.com
      le echaré un vistazo y intentaré darte una respuesta
      Slds

      Eliminar
  22. Hola
    Utilizo 2 hojas, una para capturar datos y la otra para validarlos, pero las siguientes condiciones se me están complicando..
    Espero me haya explicado bien y me pueda ayudar..
    A1=2 pero B2=1 entonces A1=1
    Si A1=2, B2=2 pero C1 es 2, 3, o 4 entonces A1 y B1=1
    Si en D2 >0, <97 entonces, A1, B1=1 y C1 ≠ 5
    Si E1 >1, <6, entonces A1, B1=1 y C1 ≠ 5
    Si G1=1 entonces A1, B1≠1, C1 ≠ 5, D1≠0, E1≠1
    Si H1>0 entonces A1=1 y B1≠2, C12≠5, D1≠0, E1≠ 1, G1≠0
    En caso de que las condiciones no se cumplan, deben de conservar el valor de la hoja1
    Espero me haya explicado bien y me pueda ayudar..
    Gracias...

    ResponderEliminar
    Respuestas
    1. Hola Lune...
      pues la verdad, no entiendo el planteamiento. Hablas de celdas iguales con distintas condiciones al tiempo, o resultado de otras, y no sé cuando la celda está en una hoja u otra.
      Envíame el fichero a
      excelforo@gmail.com
      y le echo un vistazo.
      Slds

      Eliminar
  23. HOLA ME PUEDDEN AYUDAR
    ES LA SIGUIENTE FORMULA
    SI J4<=800 COLOQUME 800 PERO SI ES J4>800 DEJELO CON EL VALOR ORIGINAL , COMO SE HACE GRACIAS

    ResponderEliminar
    Respuestas
    1. Hola Yafaro,
      bueno, la fórmula sería:
      =SI(J4<=800;800;J4)
      en otra celda diferentea a J4, logicamente..
      Slds

      Eliminar
  24. Hola me puede ayudar con este ejercicio por favor? No manejo bien las formulas :s

    Me piden:

    TAMAÑO SERA= Compare el PesoKg para determinar el TAMAÑO(Use un Si Anidado, Doble Condicion(Y) cuando lo requiera y el valor absoluto).

    GERIATICO SERA= Compare el Tamaño para determinar el Geriatico ( Use un anidado, Doble condicion (O) Cuando lo requiera el valor absoluto).

    CALORIAS RECOMENDADAS SERA= Compare el Tamaño para determinar calorias recomendadas( Use un anidado, Doble condicion (O) Cuando lo requiera el valor absoluto).



    Tengo los datos pero no se como es la formula?

    Le agradezco de antemano..

    ResponderEliminar
    Respuestas
    1. Hola,
      es difícil decirter algo con los datos que aportas, pero la estructura que te piden debe ser +/- de esta manera:
      =SI(Y(peso>10;peso<=25);ABS(algo);SI(Y(peso>25;peso<=35);ABS(otra cosa);ABS(última cosa)))

      los tres casos son similares, cambiando la función Y por la O, y claro está teniendo los datos e intervalos para plicar esos valores aboslutos de los que habla...

      Espero te haya orientado.
      Slds

      Eliminar
  25. Saludos, necesito una ayuda con la siguiente formula.

    Tengo una hoja de Excel donde ingreso diariamente las facturas que me generan un proyecto determinado. Los datos importantes son la fecha, el rubro y el valor

    Esta hoja me alimenta un resumen en donde necesito

    1. Que me verifique las que están entre el 1 y el último día de cada mes

    2. Que me verifique que corresponda al rubro especifico …rubro 001, 002, 003

    3. Que me sume en esa casilla los valores de un rubro especifico durante el primer y ultimo día del mes

    Gracias por su colaboración

    ResponderEliminar
    Respuestas
    1. Hola,
      creo que la función que mejor te puede ayudar es la de SUMAR.SI.CONJUNTO, aplicándola sobre los diferentes campos que comentas FECHA y RUBRO, para sumar el VALOR.

      Serñia algo así
      =SUMAR.SI.CONJUNTO(valor;fecha;">=01/01/2013";fecha;"<=31/01/2013";rubro;"xxx")
      siendo valor, fecha y rubro los rangos de esos datos.

      Puedes leer un ejemplo en
      http://excelforo.blogspot.com.es/2010/02/sumas-condicionadas-sumarsiconjunto.html

      Slds

      Eliminar
  26. Me sirvio muchisimo su orientación, muchas gracias

    ResponderEliminar
  27. Hola,tengo un problema con el uso de la funcion SI, ya que tengo un problema en el que me dan los datos por un lado tengo la tabla de los descuentos :Descuentos
    Código Descripción Tipo de Desc
    M Pago mensual 0%
    A Pago anual 10%


    otra tabla :Extras
    Vehículo de sustitución 15,00 €
    Asistencia en carretera 35,00 €
    y una ultima tabla:
    Cliente Cuota mensual Tipo de seguro V.de sust? Asistencia en
    carretera
    Ana Martín 35,00 € A NO NO 420,00 €
    Pedro Casado 50,00 € M SI NO
    Alberto Casado 56,00 € M NO SI Marta Ortiz 42,00 € M NO NO
    Juan Sanz 50,00 € M SI SI
    David Ríos 65,00 € A SI SI
    Juan Cruz 55,00 € M SI NO


    Total anual Seguro con descuento Extra sustitucion Extra
    asistencia
    420,00 €
    600,00 €
    672,00 €
    504,00 €
    600,00 €
    780,00 €
    660,00 €
    tengo que usar la funcion SI y las referencias absolutas y relativas y no se que condicion poner, ¿me puede ayudar?
    gracias

    ResponderEliminar
    Respuestas
    1. Hola!
      no me queda claro en qué Tabla tienes que aplicar la fórmula.
      Pero de todos modos, no creo que la función SI sea la que necesitas, yo apostaría por un BUSCARV, que te encontraría cierto código (en alguna tabla) y te devolvería su valor correspondiente.
      Por ejemplo, si buscamos sobre la primera tabla que comentas
      Código Descripción Tipo de Desc
      M Pago mensual 0%
      A Pago anual 10%

      en la tabla de Clientes, para asociar el Tipo de seguro (A, M), en esta tabla añadirías un =BUSCARV(tipo_seguro;Tabla_Descuento;3;0)

      O también (no recomendado, aunque para este ejemplo valdría), también en la Tabal Clientes
      =SI(tipo_seguro="M"; 0%;SI(tipo_seguro="A";10%))

      En las dos fórmulas tipo_seguro sería la celda correspondiente de la Tabla cliente.

      Espero te haya podido orientar.
      Slds

      Eliminar
    2. si, muchas gracias!!

      Eliminar
  28. Si en B17 tengo 345 como valor obtenido, y en E17 tengo 200 como valor limite bajo y en F17 tengo 400 como valor limite alto como puedo condicionar la casilla C17 para que me diga si B17 es bajo, normal o alto con respecto a E17 y F17

    ResponderEliminar
    Respuestas
    1. Hola Alejandro,
      habría que saber el intervalo de valor que se considera alto, medio o bajo. Supongamos que entre 200 y 266 es bajo, entre 267 y 333 medio, y finalmente entre 333 y 400 alto; en ese caso en tu celda C17 incluirias una fórmula condicional:
      =SI(Y(B17>=200;B17<266);"Bajo";SI(Y(B17>=266;B17<333);"Medio";SI(Y(B17>=333;B17<=400);"Alto")))

      pero ya te digo, habría que definir qué entendemos por alto, medio o bajo.
      Slds

      Eliminar
  29. Hola mi problema es tengo que hacer una salida de inventario pero tienen q coincidir tres variantes(corte, talla, cliente) para que realmente salga de mi inventario la cantidad que Marcan como hago.

    ResponderEliminar
    Respuestas
    1. Hola Laura,
      bien, en caso sde diferentes condiciones a aplicar, puedes optar por un método sencillo:
      =SI(Y(cond1-corte;cond2-talla;cond3-cliente);si_cumple;no_cumple)

      Como no das más señas, poco más que la idea general te puedo aportar.
      Un saludo y espero te de la idea.

      Eliminar
  30. hola!! necesito ayuda en este caso:
    se necesita saber si el equipo local tuvo victoria,empate,derrota

    local marcador visitante marcador resultado
    madrid 1 barca 2 ¿?

    he usado la funcion condicional,pero cn esta ejercicio no he podid. gracias

    ResponderEliminar
    Respuestas
    1. Hola Joral,
      en la celda de resultado incluiría:
      =SI(marcadorlocal>marcadorvisitante;"victoria";SI(marcadorlocal<marcadorvisitante;"derrota";"empate"))

      siendo marcadorlocal y marcadorvisitante las celdas correspondientes.
      Slds

      Eliminar
  31. Buenas Tardes.

    Me gustaría me ayudaran en los siguiente...

    Tengo una Tabla con 3 columnas llamadas X1 X2 y X3...
    Necesito una fórmula que dados determinados valores de X1 y X2 me busque en la Matriz el valor de X3 correspondiente.

    Muchas Gracias.

    ResponderEliminar
    Respuestas
    1. Hola Francisco,
      deberemos entender que la combinación de X1y X2 es única, y que el valor devuelto es numérico. en ese caso, suponiendo la Tabla en A1:C6 por ejemplo (tres campos x1, x2 y x3), y los valores buscados X1 y X2 están en E4 y en F4 respectivamente, entonces G4 escribimos:
      =SUMAPRODUCTO((A2:A6=E4)*(B2:B6=F4)*(C2:C6))
      lo que nos devolverá el correspondiente a esa combinación en X3.

      Igualmente se podría hacer con fórmulas matriciales.
      Slds

      Eliminar
  32. Hola, buenos dias
    Necesito que me ayudes con los siguiente, en una tabla larga tengo que solucionar la siguiente operacion: los valores superiores a -3 con un maximo de -3 y los valores superiores a +3 con un maximo de +3, el resto de valores que esten entre los rangos -3 y +3 se mantienen en la celda en su valor original
    Gracias

    ResponderEliminar
    Respuestas
    1. Hola!
      no termino de ver el planteamiento, pero por lo que supongo te serviría aplicar un condicional anidado:
      =SI(valor<-3;operacion1;SI(valor>3;operacion2;valorOriginal))
      Espero te sirva
      Slds

      Eliminar
  33. Gracias por contestar tan rápido, y por tener la solución que queda de la siguiente manera:
    A9= 2 solución con tú formula= 2
    A9=-7 solución con tu fórmula =-3
    A9=+8 solución con tu formula = +3
    =SI(A9<-3;-3;SI(A9>3;3;A9))......... Con la formula propuesta la solución que buscaba es correcta,
    Gracias

    ResponderEliminar
    Respuestas
    1. Perfecto!!
      me alegro te sirviera.
      Slds cordiales

      Eliminar
  34. Respetuosamente solicito vuestra ayuda en el siguiente caso que a simple vista parece sencillo; necesito evaluar el valor de Varias celdas(mas de 4)que para este caso el valor permitido en cada celda es SI O NO, si el valor es el mismo (SI) para todas las celdas evaluadas la respuesta sea Cumplio; si el valor es (NO) en todas las celdas evaluadas el resultado sea No Cumplio; si es diferente, en algunas de las celdas, la respuesta sea parcialmente negativo o Parcialmente ppositivo dependiendo de que predomina mas el si o el no en las celdas evaluadas. GRACIAS

    ResponderEliminar
    Respuestas
    1. Hola Juan Carlos,
      pues efectivamente no es sencillo, pero tampo es imposible
      ;-)

      supongamos los valores en el rango A3:F3

      entonces la fórmula condicional buscada sería:
      =SI(CONTAR.SI(A3:F3;"SI")=CONTARA(A3:F3);"Cumplio";SI(CONTAR.SI(A3:F3;"NO")=CONTARA(A3:F3);"no cumplio";SI(CONTAR.SI(A3:F3;"SI")>=CONTAR.SI(A3:F3;"NO");"parcialmente positivo";"parcialmente negativo")))

      Espero te sirva.
      Slds cordiales

      Eliminar
  35. Hola,

    En una columna tengo lo siguiente:

    SOLICITUD DE PROYECTO
    Requerimiento:PUN_CAP_
    FTP: AVI_CAP_CMaestra-
    CAMBIOS: BOL_CAP_
    CAMBIO: NWS_CAP_

    Lo que necesito es extraer de cada renglón, las claves AVI,BOL,COR,NWS,PUN y si no existe como es el caso del primer renglón que ponga OTRO. no sabemos la posición en la que aparecerá la clave.

    Ya lo intenté con varias formulas pero no lo logro, alguna sugerencia?

    Saludos y gracias

    ResponderEliminar
    Respuestas
    1. Hola,
      yo probaría con la función EXTRAE, ya que en todos los casos el código a extraer está detrás de los dos puntos (:) y antes del primer guión bajo (_), por lo que sería fácil obtener dichos códigos:
      =EXTRAE(A2;ENCONTRAR(":";A2)+2;ENCONTRAR("_";A2)-ENCONTRAR(":";A2)-2)

      estamos presuponiendo que detrás de los ':' hay un espacio.
      Slds

      Eliminar
    2. Gracias por tu pronta respuesta, no siempre se cumple lo de : y espacios.. la formula que estaba usando es:

      =EXTRAE(E10,ENCONTRAR("PUN_",E10),3) el resultado es PUN

      Pero como le agrego para que también busque AVI,BOL,COR,NWS,PUN y si no existe ponga OTRO

      Saludos

      Eliminar
    3. Hola,
      encontrar PUN obviamente sólo te vale par uno de los casos, tienes que encontrar una regla válida para todos.
      Yo probaría entonces, ya que todos los códigos son de tres caracteres y están tres posiciones a la izquierda del priemr guión bajo, con la siguiente:
      =SI.ERROR(EXTRAE(A2;ENCONTRAR("_";A2)-3;3);"OTRO")
      Ojo por que estoy suponiendo que son cuatro celdas como aparecen tal cual en el primer comentario.

      Con SI.ERROR obtienes el texto OTRO en caso de que no haya un guión bajo...
      Slds

      Eliminar
    4. Perfecto, lo lograste!! Gracias =)

      Eliminar
  36. Ismael, buen día, tengo un dilema, estoy trabajando en una formula y estoy atorado. En los recibos de luz, te cobran por rangos. si consumiste 1528 kWh, te cobran x cantidad de 1 a 300 kWh, y cantidad de 301 kWh a 750 kWh, z cantidad de 751 kWh a 800 kWh y de 801 > es otra cantidad. quiero que determine automáticamente cuanto se va a cobrar con solo poner la energía que se pudiera generar en ese mismo periodo, es decir, considerando los rangos mencionados anteriormente, si genero 1200 kWh cuanto voy a pagar. si fui claro?

    ResponderEliminar
    Respuestas
    1. Hola Paco,
      deberías aplicar un SI anidado, como el explicado en este mismo post, por ejemplo. En tu caso son 4 tramos, asi que sería:
      =SI(consumo<=300;cantidad1;SI(Y(300<consumo;consumo<=750);cantidad2;SI(Y(750<consumo;consumo<=800);cantidad3;cantidad4)))

      otra cosa alfo diferente es que fuera por tramos, es decir, por los primeros 300 kwh tal cantidad, hasta 750 otra, etc...
      En esencia sería lo mismo, pero habría que ir jugando con las cantidades...

      espero te sirva.
      Slds cordiales

      Eliminar
  37. Hola espero podais ayudarme.
    Necesito la función siguiente: Si la celda A="compartición" y B contiene una fecha entonces en C me pondrá "inactivo" si por el contrario A=compartición y B no tiene fecha (vacío) pues en C me pondría "activo".
    Muchas gracias por compartir vuestros conocimientos.

    ResponderEliminar
    Respuestas
    1. Hola Jesús,
      podría ser así, en C escribes:
      =SI(Y(A1="compartición";NO(ESBLANCO(B1)));"inactivo";SI(Y(A1="compartición";ESBLANCO(B1));"activo";""))
      así funcionaría con cualquier cosa (fecha o no) en B.

      De todas formas para ejecutar correctamente este condicional, analizando si es FECHA o NO debes añadir en tus módulos de VB la UDF explicada en
      http://excelforo.blogspot.com.es/2010/08/vba-funcion-isdate.html, ya que no existe una función de hoja de cálculo que detecte si es fecha o no...
      serviría esta:
      Function check_fecha(fecha)
      check_fecha = IsDate(fecha)
      End Function

      con esta UDF la función quedaría en C1 de la hoja de cálculo:
      =SI(Y(A1="compartición";check_fecha(B1));"inactivo";SI(Y(A1="compartición";NO(check_fecha(B1)));"activo";""))

      Espero te sirva
      Slds

      Eliminar
    2. Muchísimas gracias Ismael!!

      Voy a probarlo ahora mismo, ya te cuento.

      Como siempre, muy agradecido.

      Eliminar
  38. debo resolver este problema: para eximir un parcial deben cumplirse dos condiciones: pasar el primer parcial con más de 10, y que la suma de dos resultados en la definitiva ya se obtenga más de 10. Si ambas condiciones se cumplen, la nota del primer parcial será la misma que del 2do, si no, se colocará la nota que se obtenga en el 2do parcial.

    ResponderEliminar
    Respuestas
    1. Hola, que tal, cómo estás?
      Espero te encuentres bien.
      Por lo que parece tienes tres columnas (una nota 1er parcial y dos notas definitivas). sin embargo hay algo raro en tu planteamiento, y es que parece que la nota del 1er parcial puede cambiar según lo que se obtenga en el 2do, lo que generaría un error de Referencia circular.
      La estructura de la fórmula podría ser del estilo:
      =SI(Y(1erParcial>10;SUMA(2notas2doparcial)>10);condición si se cumple; condición no se cumple)

      Espero te sirva.
      Slds cordiales

      Eliminar
  39. Buenas, Ismael.

    Ante todo felicitarte por el trabajo que divulgas gratuitamente.

    Podrias ayudarme con este calculo?

    Para calcular consumos de agua tenemos que los primeros 17 litros van facturados a 1.06 y los restantes a 1.88.

    Por ejemplo si una vivienda ha consumido 100 litros, sería el total a pagar (17*1.06= 18'02€) + (83*1.88=156'04€) = 174'06

    Un saludo y gracias por tu ayuda

    ResponderEliminar
    Respuestas
    1. Hola RAF16,
      supongamos en A1 la lectura del consumo, entonces en B1 insertamos la siguiente función:
      =SI(A1<=17;A1*1,06;((A1-17)*1,88)+(17*1.06))

      Slds cordiales

      Eliminar
  40. hola. necesito poder realizar este calculo y no logro encontrar una formula.

    si B5=1 B6=S6 , si B5=2 B6=T6 y si B5 no es 1 ni 2 que B6 sea 0

    me ayudan?

    gracias

    ResponderEliminar
  41. Es muy buena la información muchas gracias.

    ResponderEliminar
  42. :D :D :D :D de mucha ayuda!!!!

    ResponderEliminar

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