Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Función DIAS360

| Sin comentarios

¿Para qué sirve la función DIAS360?

La función DIAS360, devuelve la cantidad de días entre 2 fechas, teniendo en cuenta que un año tiene 12 meses de 30 días cada uno, esta función es frecuentemente usada en sistemas de contabilidad para calcular pagos.

Formato:

DIAS360(fecha_inicio,fecha_fin,[método(opcional)])

Parámetros:

  1. fecha_inicio: Es el primer parámetro que recibe la función DIAS360(es obligatorio), y representa a la fecha inicial.
  2. fecha_fin: Es el segundo parámetro que recibe la función DIAS360(es obligatorio), representa a la fecha final.
  3. método:  Es el tercer parámetro que recibe la función DIAS360(es opcional), este parámetro es de tipo lógico, el cual representa el tipo de conteo de días que se desea usar y puede tener únicamente 2 valores: FALSO/omitido(método americano) ó VERDADERO(método europeo).

Consideraciones:

Cuando el 3er parámetro, “método” es omitido o FALSO(método americano) :

  • Si la fecha final es el el último día de un mes y la fecha inicial es menor al día 30 de un mes, la fecha final se convierte en el primer dia del siguiente mes, caso contrario la fecha final se convierte en el día 30 del mismo mes.
  • Si la fecha inicial contiene el último día de un mes, este es convertido en el día 30 de ese mes.

Cuando el 3er parámetro, “método” es VERDADERO(método europeo) :

  • Si alguna de las fechas inicial o final contienen el día 31,  estas se convertirán en el día 30 según sea.

Revisar los ejemplos en el siguiente enlace:  Ejemplos_Funcion_DIAS360

Implementando la función DIAS360 con una macros

Mediante una macro se podría crear una función que reciba los 3 parámetros que tiene la función DIAS360 original.

El 3er parámetro debe ser opcional, y debe cumplirse lo siguiente:

En caso se omita o tenga el valor FALSO, debe cumplirse lo siguiente:

  • Si el día de la fecha final es 31 y la fecha del dia inicial es menor al día 30 sin considerar fechas que sean de febrero, la fecha final será el primer día del siguiente mes.
  • Si el día de la fecha final es 31 y la fecha del día inicial es el día 30 sin considerar fechas que sean de febrero, la fecha final sera el día 30
  • En caso el mes de la fecha inicial o final sea febrero y los días de la fecha inicial o final sea 28, se cambiará dichos días al día 30(es decir se considerará como si el mes de febrero tuviera 30 días).

En caso se omita o tenga el valor VERDADERO, debe realizarse lo siguiente:

  • Si el día de la fecha inicial o final es 31 y el mes es diferente a febrero, el día de la fecha inicial o final debe ser 30 según sea el caso.
  • En caso el mes de la fecha inicial o final sea febrero y los días de la fecha inicial o final sea 28, se cambiará dichos días al día 30(es decir se considerará como si el mes de febrero tuviera 30 días).

Hechos los pasos anteriores se debe crear 3 variables que contengan la diferencia de años, meses y días, es decir:

  • Diferencia_años = Valor de la operación de restar el valor numérico del año de la fecha final y fecha inicial.
  • Diferencia_meses = Valor de la operación de restar el valor numérico del mes de la fecha final y fecha inicial.
  • Diferencia_dias = Valor de la operación de restar el valor numérico del día de la fecha final y fecha inicial.

 

Para el caso del valor de la diferencia de años (Diferencia_años), este debe ser multiplicado por 360 (que es la cantidad de días que se necesita que tenga el año).

Para el caso del valor de la diferencia de meses (Diferencia_meses), este debe ser multiplicado por 30( que es la cantidad de días que se necesita que tenga cada mes).

De modo que el resultado de la función debe ser:

(Diferencia_años x 360)  + (Diferencia_meses x 30) + Diferencia_dias

Los valores de fecha inicial y final estarán en las columnas de una hoja excel y habrá un botón que tenga funcionalidad de llamar a la función que pase como parámetros los valores de las celdas (que tienen las fechas iniciales y finales) para que sea ejecutada y devuelva el valor de la función ejecutada con el método americano o método europeo según sea, asimismo se agregará una columna que contenga la resta simple entre ambas fechas (inicial y final) para comparar los 3 resultados(resta simple de fechas vs. Función DIAS360 método americano vs. Función DIAS360 método europeo).

Se implementará también una alerta que imprima los valores de las fechas inicial y final, junto con los resultados de la función con el método americano y europeo por cada fila con valores a calcular.

Revisar los ejemplos del archivo adjunto donde se utiliza la macro implementada DIAS360: Ejemplo_Funcion_DIAS360_macro

Imagen 1: Ejemplo únicamente con la fechas iniciales y finales

Ejemplo_Funcion360dias_Solo_Fechas

(Para mayor visualización de la imagen, hacer click en la misma)

Imagen 2: Ejemplo que aplica la función DIAS360 y muestra los resultados

Ejemplo_Funcion360dias_Resutados

(Para mayor visualización de la imagen, hacer click en la misma)

Imagen 3: Código Fuente de la implementación de la UDF "DIAS360_MACRO"

Ejemplo_Codigo_Fuente_Funcion_360dias

(Para mayor visualización de la imagen, hacer click en la misma)

Imagen 4: Código Fuente de la llamada de la UDF "DIAS360_MACRO" desde un botón insertado en la hoja excel.

Ejemplo_Codigo_Fuente_llamada_funcion_desde_boton

(Para mayor visualización de la imagen, hacer click en la misma)

Deja una respuesta

Los campos requeridos estan marcados con *.