Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
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
Solved! Go to 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])
Allí, @niyati_61
Puede probar los siguientes métodos.
DAYS =
IF ( [PLAN] > [DATE TODAY], [PLAN] - [DATE TODAY], [DATE TODAY] - [PLAN] )
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"
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.
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).
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])
Hola @AlexisOlson. ¿Cómo revisaría esta fórmula para controlar los espacios en blanco que pueden aparecer en la columna Planeado?
Suponiendo que desea espacios en blanco para el resultado, intente esto:
MonthDiff =
if [Plan] = null then null
else 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
Si no es así, reemplace el segundo "nulo" con lo que quiera que sea la lógica cuando [Plan] está en blanco.
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 )