Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount.
Register nowThe 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.
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
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:
Creo una tabla de fechas como esta:
(2) Podemos crear un parámetro "what-if" como una segmentación de datos:
(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:
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.
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
Muchas gracias
Tom
@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