Hola, @Dev13
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Mesa:
Calendario (una tabla calculada):
Calendar = CALENDARAUTO()
Hay una relación entre dos tablas. Puede crear una columna calculada y una medida como la siguiente.
Columna calculada:
YearMonth = YEAR([Date])*100+MONTH([Date])
Medida:
Result =
var tab1 =
ADDCOLUMNS(
CROSSJOIN(
CALCULATETABLE(
DISTINCT('Calendar'[YearMonth]),
ALL('Calendar')
),
CALCULATETABLE(
DISTINCT('Table'[Category]),
ALL('Table')
)
),
"Result",
var s =
CALCULATE(
MAX('Table'[Date]),
FILTER(
ALL('Table'),
[Category]=EARLIER('Table'[Category])&&
RELATED('Calendar'[YearMonth])=EARLIER('Calendar'[YearMonth])
)
)
var e = EOMONTH(s,0)
return
IF(
s = e,
0,
COUNTROWS(
FILTER(
CALENDAR(
s+1,
e
),
NOT(WEEKDAY([Date]) in {1,7})
)
)+0
)
)
var newtab =
ADDCOLUMNS(
CROSSJOIN(
DISTINCT('Calendar'[YearMonth]),
DISTINCT('Table'[Category])
),
"Re",
SUMX(
FILTER(
tab1,
[YearMonth]<=EARLIER('Calendar'[YearMonth])&&
[Category]=EARLIER('Table'[Category])&&
LEFT([YearMonth],4)=LEFT(EARLIER('Calendar'[YearMonth]),4)
),
[Result]
)
)
return
SUMX(
newtab,
[Re]
)
Resultado:
Saludos
Allan
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido.
Hola @v-alq-msft, su medida parece que funciona también.
Pero todavía tiene espacios en blanco en la tabla donde no hay ventas realizadas (por ejemplo, 202003 para c2, 202007 para c1 etc.)
He probado una medida separada para cada categoría y he logrado no tener espacios en blanco.
Calculé los valores para cada columna de categoría por separado.
Pero ahora necesito otra columna (MIN) para calcular el valor mínimo de cada ROW usando una medida.
La opción power bi subtotals no cubre mi necesidad.
Por favor, mire la imagen de abajo para una mejor comprensión.
Gracias.
@Dev13 , Pruebe una medida como
medida :
var _max á maxx(ALLSELECTED('DATE'[Date]),'DATE'[Date] )
devolución
averageX(summarize(Table, Table[Item CATEGORY],"_1", datediff( calculate(lastnonblankvalue('DATE'[Date], max(Table[[BUSINESS_DT])), filter(allselected(Table),
Tabla [Categoría de elementos]-max(Tabla[Categoría de elemento])), filter(all('Date'),'DATE'[Fecha]<_max)),_max)), [_1])
Proud to be a Super User!
Hola Amitchandak,
A la función datediff le falta un argumento.
Y veo que usted está haciendo averageX también. No creo que esto sea lo que estoy buscando.
En esencia, quiero encontrar el número de días hábiles pasados de la última venta en el mes seleccionado por categoría.
Y si no hay venta en ese mes seleccionado, mostrar los días de la venta más reciente (incluso si es en otros meses antes de la seleccionada)
Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!