lunes, noviembre 10, 2014

Fechas de vencimiento en un día determinado

En la edad de piedra de este blog, hace varios años atrás, tratamos el tema del cálculo de fecha de pago.
En esa nota mostramos dos casos:

# - la fecha de vencimiento sucede 30 días a partir de la fecha de la factura, cuando la intención es el mismo día un mes más tarde. En este caso, suponiendo que la fecha de la factura está en la celda B3, =B3+30 sino =FECHA.MES(B3,1)

Si usáramos =B3+30 el resultado sería 24/11/2014

# - la fecha de vencimiento debe caer en un día determinado del mes, por ejemplo el 15. Para este caso usamos la fórmula 

=SI(DIA(B3)<=15,FIN.MES(B3,0)+15,FIN.MES(B3,1)+15)

(en la nota original usé una fórmula innecesariamente más complicada)


Un lector me consulta cómo calcular la fecha de pago de manera que caiga en un día determinado de la semana. Por ejemplo, una empresa que decide pagar 30 días después de la fecha de la factura pero sólo los días lunes. Consideremos esta tabla

La columna C muestra la fecha de vencimiento 30 días a partir de la fecha de la factura (el mismo día, un mes más tarde). En la celda C3 vemos que el vencimiento cae el 2/11/2014 que es un domingo; para corregir la fecha al lunes más cercano en la celda D3 ponemos la fórmula

=FECHA.MES(B3,1)+(2-DIASEM(FECHA.MES(B3,1)))

Al copiar la fórmula al resto de las celdas vemos que los vencimiento ocurren siempre los lunes (3/11/14, 10/11/14, etc.)

Esta fórmula funciona así:

=FECHA.MES(B3,1) da la fecha que aparece en la columna C (30 días de la fecha de la factura);

(2-DIASEM(FECHA.MES(B3,1))) es el "factor de correción" donde DIASEM(FECHA.MES(B3,1)) da el número de orden del día del vencimiento antes de la correción (el que aparece en la columna C), en nuestro caso 1 (domingo) y el resultado de la expresión será 2-1=1.

Algunos de mis agudos lectores ya habrán descubierto un problema potencial en este cálculo. Si observamos la factura en la fila 9 de la tabla, vemos que los 30 días caen el 8/11/2014 pero al corregir la fecha con la fórmula el pago ocurrirá 5 días antes, el 3/11/2014.
Si queremos que el pago ocurra siempre el mismo día o después de los 30 días debemos modificar nuestra fórmula a 

=FECHA.MES(B3,1)+SI(DIASEM(FECHA.MES(B3,1))<=2,(2-DIASEM(FECHA.MES(B3,1))),7+(2-DIASEM(FECHA.MES(B3,1))))


Una aclaración importante: la función DIASEM usa el argumento Tipo para determinar cuál es el primer día de la semana.


En mi ejemplo el argumento Tipo está en blanco significando que el día 1 es el domingo. Si queremos el número de orden 1 sea el lunes, el valor de Tipo debe ser 2.

8 comentarios:

  1. Muchas gracias por tus aportes. Hace rato tengo un problema con una cuenta que se vence los 30, esto pasa cuando llega a febrero, pues con la formula que uso se devuelve logicamente al 28, pero con esto los meses que siguen siguen con los 28. Aplicando tu formula, al contar los 30 días, se va al 2 del mes siguiente, pero luego si sigue con los 30. Como corregir el asunto en los febrero con cualquier fórmula???

    ResponderBorrar
  2. Excelente aporte, maestro. Muchas gracias por compartir. Buen día y excelente semana. Shalom!.

    ResponderBorrar
  3. Excelente. Muchas gracias

    ResponderBorrar
  4. Gusstavo, mi modelo determina que la fecha debe caer en un día determinado de la semana, en mi ejemplo el lunes. Así que si la fecha de una factura es el 28/2/14 el venccimiento con la primer fórmula (en la columna D) será el 24/3/14 y con la segunda fórmula (la columna E) el 31/3/14.
    SI quieres que la fecha de vencimiento sea siempre el último día del mes siguiente tienes que usar la función FIN.MES. Por ejemplo, si en la celda A1 tienes la fecha 28/02/14, la fórmula =FIN.MES(A1,1) da 31/3/14.

    ResponderBorrar
  5. Buenos días, Jorge. Tienes un mail.

    Saludos

    ResponderBorrar
  6. ¿Es una pregunta o una afirmación?

    ResponderBorrar
  7. Jorge una pregunta, como haria si tengo una una tabla la cual contiene horas con su fecha y la quiero graficar, es decir ya lo hice pero mi problema esta cuando la hora pasa de las 12 es decir el turno ermina al dia siguiente, la grafica no lo entiende y se descontrola

    ResponderBorrar
  8. Tendría que ver tu hoja para hacerme una idea del problrma.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.