Fro88er
A continuación tengo una dimensión DimCalendar. estoy tratando de promediar [PDV Combined Total] para los últimos 5 días de facturación continua identificando los últimos 5 días de facturación en la tabla del calendario. He identificado los no fines de semana y Festivos columna: [IsABillingDay], el siguiente que he identificado es <= Hoy columna: [BillableFromToday]. No puedo descifrar cómo tomar/medir solo los primeros 5 valores de [BillableFromToday]. Probé, rankx (promedio si <= 5), indexación (promedio si <= 5), etc. ¿Abierto a ideas, pensamientos?
Ashish_Mathur
Hola,
Puede descargar mi archivo PBI desde aquí. Dado que hoy es 2 de diciembre, cuenta 5 días hacia atrás desde el 2 de diciembre. Además, lo resolví sin usar la columna BillableFromToday. He mostrado el resultado como suma (no promedio) para que pueda verificar mi resultado fácilmente.
Espero que esto ayude.
Fro88er
¡Esto funcionó perfectamente! Extremadamente útil para ver y aprender la lógica aplicada.
Muchas gracias,
Marcos
Ashish_Mathur
En respuesta a Fro88er
Hola,
También publiqué mi solución en este artículo de blog: mostrar el saldo pendiente todos los días, incluso si los datos de todos los días no están disponibles.
Ashish_Mathur
En respuesta a Fro88er
De nada.
Ashish_Mathur
Hola,
Puede descargar mi archivo PBI desde aquí. Dado que hoy es 2 de diciembre, cuenta 5 días hacia atrás desde el 2 de diciembre. Además, lo resolví sin usar la columna BillableFromToday. He mostrado el resultado como suma (no promedio) para que pueda verificar mi resultado fácilmente.
Espero que esto ayude.
tommartens
Hola @Fro88er,
Supongo que esto funcionará, la idea detrás de esto es identificar los últimos cinco días facturables, almacenar esto en una variable y usar esta variable dentro del cálculo.
the average =
var __currendate = MAX( 'DimCalendar'[Date] )
var dates =
SELECTCOLUMNS(
TOPN(
5
, FILTER( ALL( 'DimCalenar' , 'DimCalendar'[Date] <= __currendate && 'DimCalendar'[IsABillingDay] = 1 )
, INT( 'DimCalendar'[Date] )
, DESC
)
, "Date" , 'DimCalendar'[Date]
)
return
CALCULATE(
AVERAGE(...[PDV Combined Total]
, dates
)
Con suerte, esto proporciona lo que está buscando.
De lo contrario, considere crear un archivo pbix que contenga datos de muestra, pero que aún refleje su modelo de datos, cargue el archivo en onedrive o dropbox y comparta el enlace.
Saludos,
Tomás
Fro88er
En respuesta a tommartens
Tom, recibo un mensaje de error.
Fro88er
En respuesta a Fro88er
Lo sentimos, aquí hay algunos datos de muestra. Todas las tablas de hechos se unen al DimCalendar.
Muestra PDV.xlsx
tommartens
En respuesta a Fro88er
Hola @Fro88er,
es difícil usar su xlsx adjunto, ya que solo contiene una sola hoja, por esta razón no es posible crear un modelo de datos que represente su modelo de datos y donde una tabla de calendario se une a múltiples tablas de hechos.
Sin embargo, detecté 2 errores tipográficos (corchetes faltantes) en la medida anterior, pruebe esta versión:
the average =
var __currendate = MAX( 'DimCalendar'[Date] )
var dates =
SELECTCOLUMNS(
TOPN(
5
, FILTER( ALL( 'DimCalenar' ) , 'DimCalendar'[Date] <= __currendate && 'DimCalendar'[IsABillingDay] = 1 )
, INT( 'DimCalendar'[Date] )
, DESC
)
, "Date" , 'DimCalendar'[Date]
)
return
CALCULATE(
AVERAGE(...[PDV Combined Total] )
, dates
)
Asegúrese de reemplazar el 3 puntos la referencia de la tabla en esta línea PROMEDIO (…[PDV Combined Total] ) con el nombre de la tabla si [PDV Combined Table] es una columna o simplemente elimine los puntos si es una medida.
Saludos,
Tomás