Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code FABINSIDER for a $400 discount.
Register nowGet inspired! Check out the entries from the Power BI DataViz World Championships preliminary rounds and give kudos to your favorites. View the vizzies.
Hola, tengo una tabla base como debajo de la cual almacena los ingresos de mi organización. Esta tabla contiene datos de 2017 en adelante.
Uno de mis informes solicitados de BA como el siguiente donde seleccionará cualquiera de los dos Month_Year consecutivos y la salida debe ser como a continuación.
La salida anterior se muestra cuando se seleccionan los Month_Year de 20 y 20 de enero.
Lo que he hecho a partir de ahora es que, en el objeto visual Matrix, he puesto el campo Mes-Año en la parte Columna. Pero, ¿cómo puedo lograr el cálculo dinámico del nivel de mes?
¿Puede alguien ayudarme con él @Greg_Deckler
Solved! Go to Solution.
Hola @sahildoshi ,
Si quiere decir que la lógica de %Diff debe ser (4000-6000)/4000 a -33%, podemos intentar utilizar los siguientes pasos para cumplir con sus requisitos:
1. cree una tabla calculada:
Column Header Table =
var startDate = MIN('Table'[Date])
var endDate = MAX('Table'[Date])
var t = FILTER(CALENDAR(DATE(YEAR(startDate),MONTH(startDate),1),DATE(YEAR(endDate),MONTH(endDate)+1,1)-1),DAY([Date])=1)
return
ADDCOLUMNS(CROSSJOIN(DISTINCT('Table'[Component]),UNION(ADDCOLUMNS(t,"Month-Year",FORMAT([Date],"MMM-YYYY")),ADDCOLUMNS(t,"Month-Year","% Diff"))),"Sort Column",SWITCH([Month-Year],"% Diff",COUNTROWS(t)+1,RANKX(t,[Date],,ASC,Dense)))
2. Ordene la columna "Mes-Año" por "Ordenar columna"
3. cree una medida y utilíquela en la matriz visual:
Value Measure =
VAR t =
FILTER (
ALLSELECTED ( 'Column Header Table' ),
'Column Header Table'[Component]
IN DISTINCT ( 'Column Header Table'[Component] )
)
RETURN
IF (
ISINSCOPE ( 'Column Header Table'[Month-Year] ),
SWITCH (
SELECTEDVALUE ( 'Column Header Table'[Month-Year] ),
"% Diff",
VAR maxMonth =
CALCULATETABLE (
DISTINCT ( 'Column Header Table'[Month-Year] ),
FILTER (
t,
'Column Header Table'[Sort Column]
= CALCULATE (
MAX ( 'Column Header Table'[Sort Column] ),
FILTER ( t, 'Column Header Table'[Month-Year] <> "% Diff" )
)
)
)
VAR minMonth =
CALCULATETABLE (
DISTINCT ( 'Column Header Table'[Month-Year] ),
FILTER (
t,
'Column Header Table'[Sort Column]
= CALCULATE ( MIN ( 'Column Header Table'[Sort Column] ), t )
)
)
VAR valueInMaxMonth =
CALCULATE (
SUM ( 'Table'[Amount Received] ),
FILTER (
'Table',
'Table'[Component] IN DISTINCT ( 'Column Header Table'[Component] )
&& 'Table'[Month_Year] IN maxMonth
)
)
VAR valueInMinMonth =
CALCULATE (
SUM ( 'Table'[Amount Received] ),
FILTER (
'Table',
'Table'[Component] IN DISTINCT ( 'Column Header Table'[Component] )
&& 'Table'[Month_Year] IN minMonth
)
)
RETURN
FORMAT ( valueInMaxMonth / valueInMinMonth - 1, "Percent" ),
""
& CALCULATE (
SUM ( 'Table'[Amount Received] ),
FILTER (
'Table',
'Table'[Component] IN DISTINCT ( 'Column Header Table'[Component] )
&& 'Table'[Month_Year] IN DISTINCT ( 'Column Header Table'[Month-Year] )
)
)
),
CALCULATE (
SUM ( 'Table'[Amount Received] ),
'Table'[Component] IN DISTINCT ( 'Table'[Component] )
)
)
Saludos
Hola @sahildoshi ,
Si quiere decir que la lógica de %Diff debe ser (4000-6000)/4000 a -33%, podemos intentar utilizar los siguientes pasos para cumplir con sus requisitos:
1. cree una tabla calculada:
Column Header Table =
var startDate = MIN('Table'[Date])
var endDate = MAX('Table'[Date])
var t = FILTER(CALENDAR(DATE(YEAR(startDate),MONTH(startDate),1),DATE(YEAR(endDate),MONTH(endDate)+1,1)-1),DAY([Date])=1)
return
ADDCOLUMNS(CROSSJOIN(DISTINCT('Table'[Component]),UNION(ADDCOLUMNS(t,"Month-Year",FORMAT([Date],"MMM-YYYY")),ADDCOLUMNS(t,"Month-Year","% Diff"))),"Sort Column",SWITCH([Month-Year],"% Diff",COUNTROWS(t)+1,RANKX(t,[Date],,ASC,Dense)))
2. Ordene la columna "Mes-Año" por "Ordenar columna"
3. cree una medida y utilíquela en la matriz visual:
Value Measure =
VAR t =
FILTER (
ALLSELECTED ( 'Column Header Table' ),
'Column Header Table'[Component]
IN DISTINCT ( 'Column Header Table'[Component] )
)
RETURN
IF (
ISINSCOPE ( 'Column Header Table'[Month-Year] ),
SWITCH (
SELECTEDVALUE ( 'Column Header Table'[Month-Year] ),
"% Diff",
VAR maxMonth =
CALCULATETABLE (
DISTINCT ( 'Column Header Table'[Month-Year] ),
FILTER (
t,
'Column Header Table'[Sort Column]
= CALCULATE (
MAX ( 'Column Header Table'[Sort Column] ),
FILTER ( t, 'Column Header Table'[Month-Year] <> "% Diff" )
)
)
)
VAR minMonth =
CALCULATETABLE (
DISTINCT ( 'Column Header Table'[Month-Year] ),
FILTER (
t,
'Column Header Table'[Sort Column]
= CALCULATE ( MIN ( 'Column Header Table'[Sort Column] ), t )
)
)
VAR valueInMaxMonth =
CALCULATE (
SUM ( 'Table'[Amount Received] ),
FILTER (
'Table',
'Table'[Component] IN DISTINCT ( 'Column Header Table'[Component] )
&& 'Table'[Month_Year] IN maxMonth
)
)
VAR valueInMinMonth =
CALCULATE (
SUM ( 'Table'[Amount Received] ),
FILTER (
'Table',
'Table'[Component] IN DISTINCT ( 'Column Header Table'[Component] )
&& 'Table'[Month_Year] IN minMonth
)
)
RETURN
FORMAT ( valueInMaxMonth / valueInMinMonth - 1, "Percent" ),
""
& CALCULATE (
SUM ( 'Table'[Amount Received] ),
FILTER (
'Table',
'Table'[Component] IN DISTINCT ( 'Column Header Table'[Component] )
&& 'Table'[Month_Year] IN DISTINCT ( 'Column Header Table'[Month-Year] )
)
)
),
CALCULATE (
SUM ( 'Table'[Amount Received] ),
'Table'[Component] IN DISTINCT ( 'Table'[Component] )
)
)
Saludos
Con el calendario de fechas, puede usar totalmtd o fechas mtd y cambiar % en ese
Ventas de MTD: CALCULATE(SUM(Sales[Sales]),DATESMTD('Fecha'[Fecha]))
ventas de MTD más importantes: CALCULATE(SUM(Sales[Sales Amount]),DATESMTD(dateadd('Date'[Date],-1,MONTH)))
diff %-divide([MTD Sales ],[últimas ventas MTD]) -1
Hola @amitchandak , la fórmula dada produce una salida en blanco en el objeto visual. A continuación se muestran mis fórmulas. Por favor, avísame si me he perdido algo.
En caso de que la dimensión de fecha no se inmovire en el mes actual y no esté utilizando un filtro de la dimensión de fecha. La fórmula MTD se ejecutará a partir de la fecha de finalización del calendario.
Así que tenga filtro de fecha o use un filtro de fecha relativa a nivel de página o visual.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code FABINSIDER for a $400 discount!
Check out the February 2025 Power BI update to learn about new features.