cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Conversión de días en meses y días restantes

Hola a todos,

¿Cómo se convierten los días en meses y los días restantes?

Por ejemplo: Días = 178,

Convertido a meses = 5 meses y 26 días

1 ACCEPTED SOLUTION

No puedo pensar en una forma muy elegante de hacer esto, pero esto debería funcionar.

Defina dos nuevas columnas personalizadas:

MonthDiff =
if Date.Day([Today]) >= Date.Day([Plan])
then 12 * (Date.Year([Today]) - Date.Year([Plan])) + Date.Month([Today]) - Date.Month([Plan])
else 12 * (Date.Year([Today]) - Date.Year([Plan])) + Date.Month([Today]) - Date.Month([Plan]) - 1

RemainderDayDiff = Duration.Days(Date.AddMonths([Today], -[MonthDiff]) - [Plan])

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Allí, @niyati_61

Puede probar los siguientes métodos.

  1. Utilice la función IF para determinar el tamaño de la fecha.
DAYS =
IF ( [PLAN] > [DATE TODAY], [PLAN] - [DATE TODAY], [DATE TODAY] - [PLAN] )

vzhangti_1-1635829972157.png

2. Cree una nueva columna para cambiar el número de días al mes más el número de días.

Column = 
INT ( [DAYS] / 30 ) & "months"
    & (
        [DAYS]
            - INT ( [DAYS] / 30 ) * 30
) & "days"

vzhangti_2-1635830111828.png

Saludos

Equipo de soporte de la comunidad _Charlotte

Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más.

Esto es muy similar a lo que sugerí inicialmente, pero los meses no tienen consistentemente 30 días.

Syndicate_Admin
Administrator
Administrator

Muy bien, eso tiene sentido.

De acuerdo, pero lo que estoy haciendo es restar la fecha de hoy de la fecha planificada (como se ve en la imagen).

niyati_61_0-1635659449319.jpeg

Cuando resto las 2 fechas en el Editor de consultas, obtengo el Número de días.

Por ejemplo: xx/xx/2021 - 31/10/2021 = -178 Días

Ahora, ¿cómo convierto estos 178 días en meses y días restantes? Porque solo 178 días no tiene sentido.

No puedo pensar en una forma muy elegante de hacer esto, pero esto debería funcionar.

Defina dos nuevas columnas personalizadas:

MonthDiff =
if Date.Day([Today]) >= Date.Day([Plan])
then 12 * (Date.Year([Today]) - Date.Year([Plan])) + Date.Month([Today]) - Date.Month([Plan])
else 12 * (Date.Year([Today]) - Date.Year([Plan])) + Date.Month([Today]) - Date.Month([Plan]) - 1

RemainderDayDiff = Duration.Days(Date.AddMonths([Today], -[MonthDiff]) - [Plan])
Syndicate_Admin
Administrator
Administrator

No puedes sin más información (como mes y día del mes) a menos que asumas que los meses tienen un número fijo de días.

Si asume que los meses son 30 días, entonces puede calcular 178/30 = 5.933 y simplemente tomar la parte 5 y luego el resto 178 - 5 * 30 = 178 - 150 = 28.

Months = INT ( 178 / 30 )
Days = MOD ( 178, 30 )

Helpful resources

Announcements
May 23 2022 epsiode 5 without aka link.jpg

The Power BI Community Show

Welcome to the Power BI Community Show! Jeroen ter Heerdt talks about the importance of Data Modeling.

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through June10th!

Power BI Dev Camp Session 22 without aka link and time 768x460.jpg

Check it Out!

Watch Session 22 Ted's Dev Camp along with past sessions!

Power BI Release May 2022 768x460.png

Check it out!

Click here to read more about the May 2022 updates!

Top Kudoed Authors