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.
Cortar:
Fecha[Fecha] - Oct 24, 2020 (sábado)
Informe:
Ubicación | Producto | Precio publicado |
Chicago | Manzanas | 1.25 |
Chicago | Plátano | 1.75 |
Chicago | Zanahorias | 1.61 |
Tabla de productos:
Ubicación | Producto | Precio publicado | Fecha |
Chicago | Manzanas | 1.25 | 10/23/20 |
Chicago | Manzanas | 2.12 | 10/24/20 |
Chicago | Manzanas | 2.51 | 10/25/20 |
Chicago | Plátano | 1.75 | 10/23/20 |
Chicago | Plátano | 2.65 | 10/24/20 |
Chicago | Plátano | 2.75 | 10/25/20 |
Chicago | Zanahorias | 1.61 | 10/23/20 |
Chicago | Zanahorias | 2.45 | 10/24/20 |
Chicago | Zanahorias | 2.41 | 10/25/20 |
Chicago | Mango | 0.75 | 10/23/20 |
posted price =
VAR WeekDays =
IF ( HASONEVALUE ( Dates[Date] ), VALUES ( Dates[Day Short] ), "Mon" )
VAR SelDate =
IF ( HASONEVALUE ( Dates[Date] ), VALUES ( Dates[Date] ), TODAY () )
VAR PostedPricesWeekday =
CALCULATE (
MIN ( 'Posted Prices'[Price] ),
'Posted Prices'[Price Date]
= IF ( HASONEVALUE ( Dates[Date] ), VALUES ( Dates[Date] ), TODAY () )
)
VAR PostedPricesSat =
CALCULATE (
MIN ( 'Posted Prices'[Price] ),
KEEPFILTERS (
FILTER (
ALL ( 'Posted Prices'[Price Date] ),
'Posted Prices'[Price Date] = SelDate - 1
)
)
)
VAR PostedPricesSun =
CALCULATE (
MIN ( 'Posted Prices'[Price] ),
KEEPFILTERS (
FILTER (
ALL ( 'Posted Prices'[Price Date] ),
'Posted Prices'[Price Date] = SelDate - 2
)
)
)
RETURN
IF (
WeekDays = "Sat",
PostedPricesSat,
IF ( WeekDays = "Sun", PostedPricesSun, PostedPricesWeekday )
)
Hay una relación de muchos a 1 entre la tabla de productos [fecha] y la fecha [fecha].
A pesar de que la cortadora dice 10/24/2020, quiero mostrar el último precio de día de la semana disponible, que es 10/23/2020 (viernes) en este caso. He incluido filter ( all ( ) ) en mi medida, de lo contrario, el contexto de filtro 10/24/2020 solo devolvería el valor del sábado. Sin embargo, todavía me gustaría mantener el contexto de filtro para la ubicación y el producto porque de lo contrario mi medida devolvería 0.75 (de mangos). Intenté usar Keepfilters, pero no estoy logrando el resultado deseado.
¿Ayuda?
Solved! Go to Solution.
@eddd83 no sé si te gustaría, pero lo resolví usando una medida diferente.
Revised Price :=
VAR _1 = MAX(Dates[Date])
VAR _2 = CALCULATE(MAX(Dates[Date]),FILTER(ALL(Dates),Dates[Date]<=_1&&[Max Revised date]<>0))
VAR _3 = CALCULATE([MaxPrice],ALL(Dates[Date]),Dates[Date]=_2)
RETURN _3
@eddd83 no sé si te gustaría, pero lo resolví usando una medida diferente.
Revised Price :=
VAR _1 = MAX(Dates[Date])
VAR _2 = CALCULATE(MAX(Dates[Date]),FILTER(ALL(Dates),Dates[Date]<=_1&&[Max Revised date]<>0))
VAR _3 = CALCULATE([MaxPrice],ALL(Dates[Date]),Dates[Date]=_2)
RETURN _3
@eddd83 que hizo probar la solución proporcionada?
@eddd83, no muy claro. Puede tener una tabla de fechas con las siguientes columnas
WeekDay - WEEKDAY([Fecha],2) //monday
Inicio de la semana [Fecha] -[WeekDay]+1 //monday
Rango de la semana - RANKX(all('Date'),'Date'[Week Start date],,ASC,Dense)
Medidas ?
var _max á maxx(allselected('Date'), 'Date'[Week Rank])
devolución
Calculate(min(Produce[Posted Price]) , filter(All('Date'), 'Date'[Week Rank]) á _max))
Para obtener lo mejor de la función de inteligencia del tiempo. Asegúrese de que tiene un calendario de fechas y que se ha marcado como la fecha en la vista de modelo. Además, únete a ella con la columna de fecha de tus hechos. Consulte :radacad sqlbi My Video Series Aprecia tus Felicitaciones.
lo siento por la confusión. Por favor, vea el enlace de una unidad con mi archivo:
Básicamente mi medida (precio publicado) funciona para los días de la semana, pero devuelve un espacio en blanco para los fines de semana. Idealmente para los días de la semana, se mostraría el viernes anterior (10/23) en este escenario.
Hola @eddd83 ,
Puede crear una nueva columna de día de la semana en la tabla Fecha:
weekday = WEEKDAY(Dates[Date],2)
A continuación, utilice REMOVEFILTER para borrar el filtro de la segmentación en[precio registrado]:
_posted price = var a = IF(SELECTEDVALUE(Dates[weekday])<=5,MAX(Dates[Date]),CALCULATE(MAX(Dates[Date]),FILTER(ALL(Dates),Dates[Date]<=MAX(Dates[Date])&&Dates[weekday]<=5))) return CALCULATE(MIN('Posted Prices'[Price]),'Posted Prices'[Price Date] = a,REMOVEFILTERS(Dates[Date]))
Para obtener más información, consulte el archivo pbix: https://qiuyunus-my.sharepoint.com/:u:/g/personal/pbipro_qiuyunus_onmicrosoft_com/EUfmRSl0n3VLrP3tbk...
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Saludos
Dedmon Dai
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |