The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now
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])
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)