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.
Hola a todos
Soy bastante nuevo en Power BI y sé que se han publicado preguntas similares antes y leí muchas respuestas, pero todavía no estoy insetable de cómo lograr lo que quiero.
Situación: He creado con éxito medidas para las ventas y la cantidad de venta a diario. También he agregado estos valores para todos los artículos vendidos por un cliente. La tabla muestra el número de artículo (de hecho números únicos, acaba de acortarse para la protección de datos), así como los valores de los días en que el artículo estuvo en stock (DayInSt) y para el período de tiempo completo (todos). En este caso, se ha establecido una segmentación de datos entre 01.07.2020 y 31.08.2020
(Los números de artículo de la izquierda son únicos, acabo de cortarlos para ocultar el número completo)
Este análisis funciona bien para un solo cliente a la vez, pero ahora quiero promediar y/o sumar valores para muchos clientes. Sé que esto puede ser lento para tantos puntos de datos (220 clientes * 250 artículos en total * 365 días).
Aquí está el código que he utilizado hasta ahora:
Sales Per Day (with blanks) =
VAR CurrentDate = SELECTEDVALUE('DateTable'[Date])
VAR NextSalesDate =
CALCULATE(
MIN('Sales Invoice Line'[Shipment Date]),
DATESBETWEEN(
DateTable[Date],
CurrentDate+1,
CurrentDate+2000
)
)
VAR PrevSalesDate =
CALCULATE(
MAX('Sales Invoice Line'[Shipment Date]),
DATESBETWEEN(
DateTable[Date],
CurrentDate-2000,
CurrentDate
)
)
VAR PrevAmount =
CALCULATE(
SUMX(
FILTER('Sales Invoice Line',
'Sales Invoice Line'[Shipment Date] = PrevSalesDate
),
'Sales Invoice Line'[Amount]
),
DATESBETWEEN(
DateTable[Date],
PrevSalesDate,
CurrentDate
)
)
VAR DaysSinceLastOrderTmp = DATEDIFF(PrevSalesDate, CurrentDate, DAY)
VAR DaysSinceLastOrder =
IF(
ISBLANK(DaysSinceLastOrderTmp),
9999,
DaysSinceLastOrderTmp
)
VAR DaysBetweenOrders = DATEDIFF(PrevSalesDate, NextSalesDate, DAY)
VAR SalesDays =
IF(
DaysSinceLastOrder > 30,
BLANK(),
IF(
ISBLANK(DaysBetweenOrders),
31,
MIN(DaysBetweenOrders, 31)
)
)
VAR SalesPerDay =
DIVIDE(
PrevAmount,
SalesDays,
BLANK()
)
RETURN SalesPerDay
La medida final se crea con:
Av. Sales per Day (all) =
AVERAGEX('DateTable',
[Sales Per Day (zeros)]
)
Pregunta: ¿Cómo resumo/promedio esto sobre todos los clientes? Tenga en cuenta que necesita calcular el "Av. Ventas por Día (todos)" para un artículo para cada cliente por separado y luego sumar o promediar, ingresarlo en la fila y luego ir al siguiente número de artículo haciendo lo mismo.
Gracias de antemano por la ayuda!
Maximilian
Solved! Go to Solution.
Encontré una solución por mí mismo:
Summed Av. Sales per Day per Item (all) =
SUMX(
DISTINCT('Sales Invoice Line'[Cust. No]),
[Av. Sales per Day (all)]
)
Funciona, es muy lento...
Encontré una solución por mí mismo:
Summed Av. Sales per Day per Item (all) =
SUMX(
DISTINCT('Sales Invoice Line'[Cust. No]),
[Av. Sales per Day (all)]
)
Funciona, es muy lento...
Tal vez, como una cosa adicional para mostrar lo que quiero, vea la imagen siguiente: Estos son los valores de cantidad de ventas y ventas para UN artículo y muchos clientes en las filas. La medida que necesito haría los siguientes pasos:
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 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |