Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
gnoto
Regular Visitor

MOSTRAR valores HASTA EL MES FILTRADO , Mostrar SUMA de ventas x Mes

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

2 ACCEPTED SOLUTIONS
Vvelarde
Community Champion
Community Champion

@gnoto

 

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




Lima - Peru

View solution in original post

v-juanli-msft
Community Support
Community Support

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

10.png

 

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.

9.png

 

 

Best Regards

Maggie

View solution in original post

16 REPLIES 16
Anonymous
Not applicable

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: 

Partes cancelados hasta mes =
//VAR MesSeleccionado=SELECTEDVALUE(Calendario[Mes])
//RETURN
CALCULATE( [Total partes],
Calendario[Mes] <= MesSeleccionado,
Partes[Nuevo estado]="Cancelado"
)
AnaC_1-1629971070287.png

 

Pero si pongo un valor en vez de la variable si funciona:

 

Partes cancelados hasta mes =
VAR MesSeleccionado=SELECTEDVALUE(Calendario[Mes])
RETURN
CALCULATE( [Total partes],
Calendario[Mes] <= 4,
Partes[Nuevo estado]="Cancelado"
)

AnaC_0-1629971018933.png

 

 

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:

hasta mes seleccionado =
VAR MesSeleccionado=SELECTEDVALUE(Calendario[Mes])
RETURN
CALCULATE( [Total partes],
ALL(Calendario[Mes]),
Calendario[Mes] <= MesSeleccionado,
Partes[Nuevo estado]="Cancelado"
)
 
Y activa las interacciones!




Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

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 😞

 

AnaC_0-1629971691146.png

 

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í:

Model.JPG

 

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:

Periodos2.gif

 

 

 





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

Muchísimas gracias @PaulDBrown , tiene muy buen pinta, voy a probarlo y te cuento, 

 

un saludo

Anonymous
Not applicable

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. 

 

AnaC_0-1630059121916.png

 

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





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

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)





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

Buenas @PaulDBrown 

 

creo que he seguido todos los pasos que me has indicado y no me filtra, no se si se me escapa algo...

 

AnaC_0-1630066726322.png

 

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] )
            )
        )
    )




Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

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:

CalPeriod.JPGAñ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í:

Captura.JPG

 

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".

synch slicers.JPG

 

Selecciona el otro filtro y haz lo mismo escribiendo el mismo nombre (en mi caso "Period")

Ahora los filtros están sincronizados:

Synch Slicers.gif

 

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:

Hide.png

 

HIde 1.JPG

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:

Intercations.JPG

 

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:

Resuly.gif

Te adjunto el archivo PBIX del ejemplo

 





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






Anonymous
Not applicable

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!

 

AnaC_0-1630062245897.png

 

v-juanli-msft
Community Support
Community Support

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

10.png

 

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.

9.png

 

 

Best Regards

Maggie

Vvelarde
Community Champion
Community Champion

@gnoto

 

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




Lima - Peru

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.