Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Buenos dias.
Tengo una tabla acalendario , una ventas
Tengo dos filtros en el reporte de año y mes,
Necesito que al FILTRAR por el MES , la tabla de Mes por Ventas, aparezcan todos los MESES HASTA EL MES FILTRADO,
pero me sale solo el mes seleccionado.
Utilice esta formula DAX, pero me muestra todos los meses
Sales $ x MES = CALCULATE(SUM('JPR - Sales Report (2)'[Sales: $]), ALL(Calendario[Month]))
me muestra la tabla
ENE - 10
FEB - 22
MAR - 23
ABR - 25
MAY- 30
JUN - 30
JUL - 9
Y Necesito que muestre solo hasta JUNIO o MAYO si es el mes que seleccione el el filtro (SI ES MAYO), que muestre
ENE - 10
FEB - 22
MAR - 23
ABR- 30
MAY- 31
Para que muestre este utilizo esta formula, PERO que solo funciona correctamente cuando coloque el VALOR en Duro
Sales $ x MES = CALCULATE(SUM('JPR - Sales Report (2)'[Sales: $]), ALL(Calendario[Month]), Calendario[Month] <= 5 )
- pero si le coloque que tome el valor delfiltro, no lo hace y solo me trae el valor del mes seleccionado(en este caso mayo)
-ESTA es la formula que utilizo, que creo que deberia funcionar, pero no no lo hace, porque me trae solo el mes filtrado.
Sales $ x MES = CALCULATE(SUM('JPR - Sales Report (2)'[Sales: $]), ALL(Calendario[Month]), Calendario[Month] <= values(Calendario[Month] ))
Saludos y espero que me puedan ayudar
Solved! Go to Solution.
Hi, try with this:
Sales $ x MES = VAR MesSeleccionado=SELECTEDVALUE(Calendario[Month]) RETURN CALCULATE ( SUM ( 'JPR - Sales Report (2)'[Sales: $] ), ALL ( Calendario[Month] ), Calendario[Month] <= MesSeleccionado )
If not works please attach sample file in Drive / Dropbox or something similar
Regards
Victor
Hi @gnoto
First, Create a calculated column in your table
"year-month" = CONCATENATE(CONCATENATE([year],"-"),[month])
Second, create a new table based on your orginal table
Table = SUMMARIZE(ALL(Sheet8),[year],[month],["year-month"])
Next, manage relationships with two tables
Then create two measures in the new table
selected = SELECTEDVALUE('Table'[month]) flag = IF(MAX(Sheet8[month])<=[selected],1,BLANK())
Finally, add measure [flag] in the visual filter of the table, add column "month" from the new table to the slicer.
Best Regards
Maggie
Buenos días,
tengo un problema similar pero las respuestas de este post no me funcionan.
Tengo un informe con varios graficos de evolucion por mes y un slicer para seleccionar los meses. Necesitaría que al seleccionar un mes, los gráficos muestren sólo los datos hasta el mes seleccionado.
He bloqueado las interacciones entre el slicer y los gráficos, ya que sino sólo se ven los datos del mes seleccionado.
He probado la formula propuesta en este post y no me funciona:
Pero si pongo un valor en vez de la variable si funciona:
He probado también con usando FILTER, comparando con una medida en vez de con una variable... ¿Se os ocurre otra forma de resolverlo?
Muchas gracias!
Prueba:
Proud to be a Super User!
Paul on Linkedin.
Muchas gracias @PaulDBrown por tu respuesta,
He probado el codigo que me has enviado y me sigue saliendo el gráfico con todos los meses, no filtra 😞
Si activo las interacciones el gráfico me muestra sólo el mes seleccionado, no todos los meses hasta el mes seleccionado, que es lo que necesito.
Un saludo
Cómo quieres filtrar los datos? Mes & Año? Sólo Mes?
Aquí tienes una forma de hacerlo.
1) crea un duplicado de tu tabla calendario con la función "New Table" y
Period Filter = 'Calendar Table'
(He llamado esta tabla "Period Filter")
2) Crea una relación INACTIVA entre los campos de date en ambas tablas. Mejor si además estableces la relación 1:N y en una dirección. El modelo te deberá quedar así:
3) Crea el filtro con el campo de la tabla calendario, y el visual con el campo de la tabla "Period Filter"
4) Crea una medida equivalente a esta:
Data by periods =
VAR CalD =
SELECTEDVALUE ( 'Calendar Table'[YearMonth] )
VAR SelPeriods =
CALCULATETABLE (
VALUES ( 'Period Filter'[YearMonth] ),
'Period Filter'[YearMonth] <= CalD
)
RETURN
CALCULATE (
[Sum of Sales],
REMOVEFILTERS ( 'Calendar Table' ),
KEEPFILTERS ( SelPeriods ),
USERELATIONSHIP ( 'Calendar Table'[Date], 'Period Filter'[Date] )
)
Y obtendrás esto:
Proud to be a Super User!
Paul on Linkedin.
Hola otra vez! @PaulDBrown ! he probado lo que me dices, pero al crear la nueva tabla (Period filtered) y relacionarla con mi tabla calendario (relacion inactiva, 1n y en una direccion), me da un error ("problema en uno o mas campos"). Aparentemente el error es del campo "date" de la tabla "calendario", pues se queda sin jerarquia.
Un saludo!
Me puedes enseñar esa misma imagen antes de crear la relación entre las dos tablas? Sospecho que es porque tienes activado " Auto-Time Intelligence" en las opciones. Si es así y usas esas funciones automáticas en otras medidas tendremos que usar TREATAS en lugar de establecer la relación física.
Si no estás usando esas funciones automáticas, desabilita la la opción en las opciones para el archivo en cuestión
Proud to be a Super User!
Paul on Linkedin.
Parece que sí que uso la funcion de ""Auto-Time Intelligence", porque al desactivarla se me han "estropeado" todos los gráficos 😞
Vopy a investigar lo de TREATAS que me dices,
gracias!
Para usar TREATAS, cambia la expresión de USERELATIONSHIP en la medida final a
TREATAS(VALUES(Period Filter[Date]), Calendar Table [Date])
(y evidentemente elimina la relación entre las dos tablas)
Proud to be a Super User!
Paul on Linkedin.
Buenas @PaulDBrown
creo que he seguido todos los pasos que me has indicado y no me filtra, no se si se me escapa algo...
Pues efectivamente, no funicona TREATAS en este contexto...
Prueba esta medida:
Data by sel date =
VAR SelectedDateCalendar =
MAX ( 'Calendar Table'[Date] )
VAR SelPeriods =
DATESINPERIOD ( 'Period Filter'[Date], SelectedDateCalendar, -1, YEAR )
VAR MinDate =
FIRSTDATE ( SelPeriods )
RETURN
IF (
MAX ( 'Period Filter'[Date] ) < MinDate,
BLANK (),
IF (
MAX ( 'Period Filter'[Date] ) > SelectedDateCalendar,
BLANK (),
CALCULATE (
[Sum of Sales],
REMOVEFILTERS ( 'Calendar Table' ),
TREATAS ( VALUES ( 'Period Filter'[Date] ), 'Calendar Table'[Date] )
)
)
)
Proud to be a Super User!
Paul on Linkedin.
Buenos días,
esa medida no me funcionaba tampoco 😞
Al final parece que lo he resuelto cambiando el tipo de segmantacion de tipo "lista" a "entre 2 fechas" y activandolo el informe de cada mes a través de botones con marcadores.
Muchas gracias por tu ayuda.
Un saludo
No desesperes!
Tengo otra solución que debería funcionar...
Por pasos...
1) A tu tabla calendario, añade una columna calculada para el periodo con:
Añade también la columna calculada YearMonth para poder ordenar la columna CalPeriod:
YearMonth =
VAR Per = YEAR('Calendar Table'[Date]) *100 + MONTH('Calendar Table'[Date])
RETURN
CALCULATE(Per, ALLEXCEPT('Calendar Table', 'Calendar Table'[Date]))
Selecciona la columna CalPeriod, y en el menú selecciona "Order column by" y selecciona la columna YearMonth.
2) Crea la tabla Period Filter Table con el código:
Period Filter Table =
ADDCOLUMNS(VALUES('Calendar Table'[Date]),
"Month", MONTH([Date]),
"Year", YEAR([Date]),
"MonthName", FORMAT([Date], "MMM"),
"Period", FORMAT([Date], "MMM") & " " & YEAR([Date]),
"YearMonth", YEAR([Date]) * 100 + MONTH([Date]))
3) Crea la relación 1:N entre la tabla calendario y la tabla de datos. El modelo debe quedar así:
4) Para la página: Crea dos filtros con los campos CalPeriod de la tabla calendario y Period de la tabla Period Filter Table:
Selecciona uno de flos filtros, y en el menú selecciona View, SYnch Slicers y en el desplegable escribe un nombre. Yo he puesto "Period".
Selecciona el otro filtro y haz lo mismo escribiendo el mismo nombre (en mi caso "Period")
Ahora los filtros están sincronizados:
Ahora selecciona el filtro "From Period Filter Table", y en el menu, View & Selection, esconde el filtro de "From Period Filter Table" clicando sobre el icono del ojo del objeto:
Añade el visual que quieras y en el eje o filas pon el campo de Calendar Table [Date]
Selecciona el filtro "From Calendar Table", y en Format, selecciona "Edit Interactions" y bloquea el visual:
Ahora añade esta medida al visual:
Sales by period =
VAR MXSelPeriod =
MAX ( 'Period Filter Table'[Date] )
VAR MINSelPeriod =
FIRSTDATE (
DATESINPERIOD ( 'Period Filter Table'[Date], MXSelPeriod, -1, YEAR )
)
RETURN
CALCULATE (
[Sum Sales],
FILTER (
'Calendar Table',
'Calendar Table'[Date] <= [MXSelPeriod]
&& 'Calendar Table'[Date] >= [MINSelPeriod]
)
)
Y obtendrás esto:
Te adjunto el archivo PBIX del ejemplo
Proud to be a Super User!
Paul on Linkedin.
Hola @PaulDBrown , te paso el pantallazo. He comprobado en Configuración y tengo activado el "Auto-Time Intelligence", voy a investigar las implicaciones de desactivarlo, pues desconocía que existía esta opción. , gracias!
Hi @gnoto
First, Create a calculated column in your table
"year-month" = CONCATENATE(CONCATENATE([year],"-"),[month])
Second, create a new table based on your orginal table
Table = SUMMARIZE(ALL(Sheet8),[year],[month],["year-month"])
Next, manage relationships with two tables
Then create two measures in the new table
selected = SELECTEDVALUE('Table'[month]) flag = IF(MAX(Sheet8[month])<=[selected],1,BLANK())
Finally, add measure [flag] in the visual filter of the table, add column "month" from the new table to the slicer.
Best Regards
Maggie
Hi, try with this:
Sales $ x MES = VAR MesSeleccionado=SELECTEDVALUE(Calendario[Month]) RETURN CALCULATE ( SUM ( 'JPR - Sales Report (2)'[Sales: $] ), ALL ( Calendario[Month] ), Calendario[Month] <= MesSeleccionado )
If not works please attach sample file in Drive / Dropbox or something similar
Regards
Victor