Ir al contenido principal

fijar criterios de acuerdo a un rango de fechas

Recibí una consulta mas que interesante: mi lector debe asignar en una celda determinados porcentajes (o valores, para el caso es lo mismo), de acuerdo a la diferencia existente entre dos fechas. Por ejemplo:
Pongamos una fecha cualquiera en C2: si dicha fecha está entre el 01/01/2011 y el 15/01/2011 una celda de Excel tendrá que devolver 10%. Si la misma se encuentra entre el 16/01/2011 y el 31/01/2011, la celda devolverá 20%. A simple vista y luego de un rápido análisis, nos vemos en la tentación de utilizar la funcion =SI(), colocando dentro de ella las distintas condicionales. Pero... ¿cuantos SI() deberíamos anidar? Cuando hablamos de pocos argumentos la cuestión se torna sencilla, aunque si necesitamos comparar muchas fechas, SI() se tornará por demás de engorroso y difícil de manejar. Solo mencioné a Enero/2011 y lo arreglamos fácil.... ¿pero si esta comparación se extiende por varios meses?
en C2 tengo la fecha 12/01/11  ¿Como hacemos para determinar que se encuentra entre el 01/01 y el 15/01 y, en base a ello, que nos arroje un determinado valor?
[+/-] Ver el resto / Ocultar

Comentarios

  1. Hola, Damian, muy bueno el aporte. Hace un tiempo necesité exactamente esto, pero como la tabla sobre la que tenía que buscar no era muy extensa, lo hice como explicás al principio, con SI() anidados y realmente fue un rompedero de cabezas para que todos los paréntesis, los punto y coma y las condiciones quedaran perfectos. jejeje
    Y con respecto a este aporte, el tercer argumento de la función COINCIDIR actuaría en forma similar al último argumento de BUSCARV o BUSCARH, no?
    Un abrazo !!!

    ResponderEliminar
  2. Exacto estimado, ese tercer argumento actuaría de forma parecida al que requiere la función BuscarV(), que es ConsultaV() a partir de Excel 2010.
    Hace tiempo levanté un post indicando como averiguar la ultima fila ocupada de un rango con Coincidir() y su bendito tercer argumento. Es muy útil sabiendo manejar. Un abrazo y gracias x tu comentario.

    ResponderEliminar
  3. Muchas gracias por tu EXCELENTE Blog, no conocia a alguien tan bueno en Excel, te felicito por esta gran labor que es compartir el conocimiento.

    ResponderEliminar
  4. Gracias Ov10 por tus palabras, ayudan mucho a seguir con la tarea. Estuve leyendo tu blog, en la entrada para crear libros para celulares. De primera, yo estoy haciendo unos ebooks con Calibre (de pdf hacia epub), pero me pone todas las imágenes al revés, como si se vieran desde un espejo. Todavía no pude arreglarlo.
    Un abrazo.

    ResponderEliminar
  5. Hola Damian. El caso para el que requiero tu ayuda es el siguiente: En una tabla tengo cuatro colunmas A, B, C y D. Equivalen a Primero, Segundo, Tercero turnos y Fecha respectivamente. Tengo 15 empleados que pueden trabajar en cualquier turno en cualquier fecha, incluso puede un mismo empleado trabajar corrido desde uno hasta tres turnos el mismo dia. Lo que me interesa saber es como puedo, mediante el uso de formulas y funciones, colocar en unas columnas el codigo del empleado y al lado las fechas mas reciente y mas vieja en que trabajo y en que turnos respectivos fueron, para todos los empleados.

    ResponderEliminar
  6. hola estimado. en cuanto a tu consulta sobre las fechas y empleados, necesitaría que me pases el archivo, a la dirección de correo electrónico que figura al pié del formulario de consultas.
    estimo que así podré ayudarte mejor, por que hay algunos detalles que se me escapan.
    quisiera ver esa tabla y, si es posible, que en otra hoja pongas como necesitas que el trabajo quede finalizado.

    ResponderEliminar
  7. Hola de nuevo Damian. Te acabo de enviar la hoja que me solicitaste, mi nombre es Santo MOra. Alli podras ver con mas detalles lo que te pido.

    Gracias, muchas gracias por tu ayuda.

    ResponderEliminar
  8. listo estimado, ahora mismo lo bajo y comienzo a estudiarlo. cualquier cosa te pregunto vía mail.
    saludos.

    ResponderEliminar
  9. HOLA YO QUERIA SABER QUE FORMULA APLICAR SI POR EJ EN A1 TENGO UNA FECHA DE INICIO Y EN B1 TENGO UNA FECHA DE FIN EN C1 TENGO OTRA FECHA CUALQUIERA, LO QUE QUIERO ES QUE EN D1 ME DEVUELVA SI SI LA FECHA DE C1 SE ENCUENTRE DENTRO DEL RANGO A1 Y B1. GRACIAS

    ResponderEliminar
  10. Cristian: la solución es la siguiente, teniendo en cuenta los rangos que me pasas:
    =SI(Y(C1>=A1;C1<=B1);"entre rangos";"fuera de rango")

    análisis: si la fecha en C1 es mayor o igual a la fecha de A1 "Y" la fecha en C1 es menor o igual a la fecha de C1, entonces dicho valor está entre esos rangos de fecha, caso contrario...no.
    Copía y pega la fórmula, que anda bien y estimo soluciona tu problema.

    ResponderEliminar
  11. Hola Damian, estube revisando en internet y tu blog me parecio interesante, y me anime a hacerte una pregunta, tengo 5 vehiculos y realice una macro de captura, ahora bien de todos tengo que capturar el kilometraje y posterior a este dar el kilometraje final, yo creo que lo mas rapido es poner en una columa el km inicial y en otra el final y restarlos, pero abra alguna forma de hacerlo con formula en la que excel me tome el kilometraje anterior y lo reste con el actual?

    ResponderEliminar
  12. Lorena: tendría que ver que método estás utilizando para así poder asesorarte correctamente. ¿Como captura esos kilómetros tu macro? Estimo que en una columna debes ir haciendo el acumulado total... no se, debo tener mas detalles.
    Explicame un poco mas y lo vemos. Gracias por tu mensaje

    ResponderEliminar

Publicar un comentario

Entradas populares de este blog

funciones: convertir numeros a letras con excel

En realidad hace tiempo que vienen consultándome sobre esto... quizás cinco o seis años . Debe ser una de las funciones mas buscadas de Excel, por lejos: la posibilidad de escribir: 1.534,63 y que en una celda aparezca magicamente "un mil quinientos treinta y cuatro c/15/100". Aquí les dejo una solución, basada en funciones , sin utilizar macros, la cual preparé exclusivamente para este Blog. A pesar de los millones de usuarios que requieren esta herramienta, no viene incorporada en Excel, debemos armarla nosotros mismos .  Luego de la imagen irá la explicación de como llegué a lograr esto, dado que es un proceso medianamente complejo , que utiliza tres o cuatro funciones básicas y requiere de varios pasos. así quedará nuestra planilla y siempre devolverá en letras el valor que ingresemos en A1 [+/-] Ver el resto / Ocultar Desde ya aclaro: esta no es " la forma " de hacerlo, simplemente es una mas, evitando el uso de macros. Sobre esta base, comencemos: 1) El núme

macros: como enviar mails desde Excel (vba)

Un gran amigo "on-line", Johan Moreno, de Colombia , me hizo llegar la inquietud de cómo enviar mails desde Excel . Si bien contaba con algunas líneas de código sobre el particular, decidí retomar mi ejemplo y adaptarlo mejor a las circunstancias. Hace unos minutos termino de remitirle un correo con la solución a Johan... desde Excel y con un archivo adjunto, mismo que transcribo a continuación para ayudar a todos con esta tarea. Veamos primero las dos formas principales de enviar mails: mediante Outlook o nuestro Web Mail ( yahoo, gmail, hotmail, etc, etc ) No soy usuario de Outlook en lo absoluto: no confío en los agujeros de seguridad que continuamente aparecen y, por otro lado, t eniendo a mi alcance una herramienta tan poderosa (y gratuita) como Gmail, la cual ahora también permite sincronizar los mensaje con la Pc para verlos offline (deben activarlo en "google labs") ... no creo que me haga usuario ni hoy ni mañana. Igualmente mas adelante daré una solució

buscarv con varios resultados

Es de las preguntas mas recurrentes que he tenido: ¿se puede lograr que la función BUSCARV() devuelva varios resultados? Si recordamos el uso de esta función, sabremos que la misma buscar en valor en el rango especificado, retornando un solo resultado. Si en la tabla tenermos varios registros iguales BUSCARV() solo nos devolverá el primero de ellos, omitiendo el resto. Entonces ¿se puede? Bueno, aplicando otra técnica sencilla que se me ocurrió al intentar solucionar el planteamiento de un lector... si, puedo hacerlo.... pero sin usar BUSCARV(). la idea es que coloquemos en E1 el código del producto a buscar y a partir de E2 nos devuelva todas las coincidencias de la tabla. [+/-] Ver el resto / Ocultar Vamos a necesitar una columna "auxiliar" para llevar a buen término este proyecto. Con macros el tema sería mas sencillo, pero aquí la cuestión es resolverlo con las funciones de Excel, sin VBA. Paso a paso: Como primer medida chequeamos que valores de la columna A coincide co