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

The Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.

Reply
Syndicate_Admin
Administrator
Administrator

Período de fecha dinámico Filtro basado en la selección de segmentación de datos

Queridos todos,

Tengo 3 tablas de matriz separadas que me gustaría mostrar diferentes períodos de fecha basados en una sola selección de segmentación de datos.

Seguí la guía de Alberto a continuación para crear las medidas, tener mis relaciones y tablas de fechas configuradas exactamente de la misma manera, pero cuando intento aplicar el filtro visual específico, filtra a todas las fechas disponibles en mi tabla de calendario en lugar del período de fecha requerido.

https://www.youtube.com/watch?v=d8Rm7dwM6gc

Esta es la medida que se utiliza como un grupo de cálculo y luego actúa como un filtro de nivel visual:

VAR NumOfMonths = -6
VAR ReferenceDate = MAX ( 'Fecha'[Fecha] )
VAR PreviousDates = DATESINPERIOD ( 'Previous Date'[Date], ReferenceDate, NumOfMonths, MONTH )
Resultado VAR =
CALCULAR (
SELECTEDMEASURE (),
REMOVEFILTERS ( 'Fecha' ),
KEEPFILTERS ( PreviousDates ),
USERELATIONSHIP ( 'Fecha anterior' [Fecha], 'Fecha' [Fecha] )
)
Resultado de RETURN

¿Podría ser la razón por la que no funciona en mi caso porque tengo una combinación de medidas y agregaciones en mi tabla?

Cualquier sugerencia o ayuda es más que bienvenida

Gracias

Tom

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

, @badger_larry

De acuerdo con su descripción, desea "Filtro de período de fecha dinámico basado en la selección de segmentación de datos" y reviso su dax, creo que desea mostrar los datos de los últimos n meses en su visual. ¿Derecha?

Estos son los pasos que puede consultar:
(1) Estos son mis datos de prueba:

vyueyunzhmsft_0-1670210388078.png

Creo una tabla de fechas como esta:

vyueyunzhmsft_2-1670210474333.png

(2) Podemos crear un parámetro "what-if" como una segmentación de datos:

vyueyunzhmsft_1-1670210440221.png

(3) Entonces podemos crear una medida:

Measure = var _slicer = [Parameter Value]
var _curdate = MAX('Calendar'[Date])
var _max_date = MAXX( ALLSELECTED('Table') , [Date])
var _min_date = EOMONTH( _max_date , -_slicer)+1
 return
 IF(_slicer=BLANK(),1,  IF(_curdate>= _min_date && _curdate<=_max_date ,1 ,0))

(4) Luego podemos poner la medida en el "Filtro en este visual" y podemos satisfacer su necesidad:

vyueyunzhmsft_4-1670210511811.png

Gracias por su tiempo y uso compartido, y gracias por su apoyo y comprensión de PowerBI.

Saludos

Aniya Zhang

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

En ella @v-yueyunzh-msft ,

Muchas gracias por lo anterior, la única modificación que necesitaría hacer al código sería usar una segmentación de datos y no un valor numérico. ¿Cómo lo harías?

A continuación se muestra un ejemplo de mi panel de control: lo siento, tuve que bloquear la mayoría de las partes, pero espero que aún tenga sentido

forum-example.png

Muchas gracias

Tom

Syndicate_Admin
Administrator
Administrator

@badger_larry , La forma en que lo hago es crear una segmentación de datos en una tabla de fechas independiente y crear medidas como

mostrar los últimos 12 meses

Date1 es independiente Tabla de fechas, Fecha se une con Tabla
nueva medida =
var _max = maxx(allselected(Date1),Date1[Date])
var _min = eomes(_max, -12) +1
devolución
calculate( sum(Table[Value]), filter('Date', 'Date'[Date] >=_min && 'Date'[Date] <=_max))

Necesidad de una tabla de fechas independiente:https://www.youtube.com/watch?v=44fGGmg9fHI

Hola @amitchandak
Gracias por lo anterior, me temo que no resolvería mi problema porque [Valor] en la siguiente declaración todavía se referiría a una columna o una medida específica, sin embargo, en mi tabla de matriz tengo ~ 15 columnas + aproximadamente 5 medidas, por lo tanto, la función solo podría aplicarse a una. ¿Qué podía hacer?


@amitchandak escribió:

nueva medida =
var _max = maxx(allselected(Date1),Date1[Date])
var _min = eomes(_max, -12) +1
devolución
calculate( sum(Table[Value]), filter('Date', 'Date'[Date] >=_min && 'Date'[Date] <=_max))


Gracias

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

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

Top Solution Authors
Top Kudoed Authors