Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Lo que estoy haciendo es sumergir los meses actuales $/Runtime y $/Runtime para los últimos 3 meses (activos). Lo que está sucediendo es que los totales incluyen los meses de cero datos si existen. Tengo tres tablas Runtime, Costs y Dates (tabla de fechas) como se muestra a continuación (ejemplo de Excel). A la derecha de la tabla dinámica en la columna Prev3 es cómo estoy tratando de obtener power bi para generar los datos. Las áreas de alta altura amarillas son la forma en que la potencia bi está generando los datos.
El DAX que tengo está aquí. Además, necesito esto para ignorar los filtros de fecha que se aplican con una segmentación de datos si es posible.
Measure =
var LD = EOMONTH(ENDOFMONTH(LASTDATE(Runtime[Date (bins)])),-1)
var FD = DATEADD(LASTDATE(STARTOFMONTH(PREVIOUSMONTH(Runtime[Date (bins)]))),-2,MONTH)
return
CALCULATE(DIVIDE(SUM(Costs[Maint Cost]),SUM(Runtime[RuntimeTime])),
FILTER(ALL(Dates),
Dates[Date]<=LD&&Dates[Date]>=FD
)
)
Aquí está el objeto visual que estoy usando este meaure para:
Cómo se organizan los datos:
Pivote de datos, cálculos de ejemplo:
Hola @jignaski18 ,
Por favor, compruebe:
Cree medidas como esta:
Measure = IF(SUM(Costs[maint cost])=BLANK(),1,0)
maxx date =
VAR m_ =
MAX ( Dates[YearMonth] )
VAR yearmonth =
MAXX (
TOPN (
3,
FILTER (
CALCULATETABLE ( VALUES ( Dates[YearMonth] ), ALLSELECTED ( Dates[YearMonth] ) ),
[YearMonth] < m_
&& [Measure] <> 1
),
[YearMonth], DESC
),
[YearMonth]
)
RETURN
CALCULATE ( LASTDATE ( Dates[Date] ), Dates[YearMonth] = yearmonth )
minx date =
VAR m_ =
MAX ( Dates[YearMonth] )
VAR yearmonth =
MINX(
TOPN (
3,
FILTER (
CALCULATETABLE ( VALUES ( Dates[YearMonth] ), ALLSELECTED ( Dates[YearMonth] ) ),
[YearMonth] < m_
&& [Measure] <> 1
),
[YearMonth], DESC
),
[YearMonth]
)
RETURN
CALCULATE ( FIRSTDATE( Dates[Date] ), Dates[YearMonth] = yearmonth )
$/Runtime =
VAR MIN_ = [minx date]
VAR MAX_ = [maxx date]
VAR CurrentDate =
FIRSTDATE ( Dates[Date] )
VAR mindate =
CALCULATE ( FIRSTDATE ( Dates[Date] ), ALL ( Dates ) )
RETURN
IF (
DATEDIFF ( mindate, CurrentDate, MONTH ) >= 3,
CALCULATE (
DIVIDE ( SUM ( Costs[maint cost] ), SUM ( Runtime[runtime] ) ),
Dates[Date] >= MIN_
&& Dates[Date] <= MAX_
)
)
BTW, archivo .pbix adjunto.
Saludos
Icey
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Esto funciona en formato de tabla cuando tiene el YearMonth en las filas. Cuando intento usarlo en un gráfico de barras no devolvería el restult. Pero lo descubrí. La corrección estaba en la variable de fecha curent en la fórmula $/runtime
$/Runtime =
VAR MIN_ = [minx date]
VAR MAX_ = [maxx date]
VAR CurrentDate =
CALCULATE(
FIRSTDATE(
Dates[Date]),
FILTER(all(Dates),Dates[month index]=0)
VAR mindate =
CALCULATE ( FIRSTDATE ( Dates[Date] ), ALL ( Dates ) )
RETURN
IF (
DATEDIFF ( mindate, CurrentDate, MONTH ) >= 3,
CALCULATE (
DIVIDE ( SUM ( Costs[maint cost] ), SUM ( Runtime[runtime] ) ),
Dates[Date] >= MIN_
&& Dates[Date] <= MAX_
)
)
Visual anterior (forulas incorrectas):
Sus fórmulas (los números están justo en la tabla):
@jignaski18, para este mes y el mes pasado se puede utilizar como
MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD('Date'[Date]))
last MTD Sales = CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH)))
previous month Sales = CALCULATE(SUM(Sales[Sales Amount]),previousmonth('Date'[Date]))
and rolling like
Rolling 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],ENDOFMONTH(Sales[Sales Date]),-3,MONTH))
Rolling 3 = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date ],MAX(Sales[Sales Date]),-3,MONTH))
Rolling 3 till last month = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],ENDOFMONTH(dateadd(Sales[Sales Date],-1,month)),-3,MONTH))
Rolling 3 till last 2 month = CALCULATE(sum(Sales[Sales Amount]),DATESINPERIOD('Date'[Date],ENDOFMONTH(dateadd(Sales[Sales Date],-2,month)),-3,MONTH))
Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únase a ella con la columna de fecha de su/s hecho/s. Consulte:
https://radacad.com/creating-calendar-table-in-power-bi-using-dax-functions
https://www.archerpoint.com/blog/Posts/creating-date-table-power-bi
https://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/
Vea si mi seminario web sobre Time Intelligence puede ayudar: https://community.powerbi.com/t5/Webinars-and-Video-Gallery/PowerBI-Time-Intelligence-Calendar-WTD-Y...
Apreciamos tus Felicitaciones.
Su solución funciona, SOLAMENTE si hay datos continuos. Estoy tratando de abordar el cálculo para que funcione como se muestra a continuación.
El DAX da como resultado los valores resaltados en amarillo. Necesito los resultados en verde (derecha la mayoría de las columnas). Técnicamente la fórmula no es "Tres meses anteriores". Estaría más en la línea de "Tres meses anteriores que contienen datos"
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |