CRyan1984
Hola y gracias por cualquier ayuda que puedas brindar con anticipación.
Estoy tratando de mostrar un gráfico que tenga las ventas promedio para cada uno de los días de la semana para las segmentaciones seleccionadas.
El informe tiene segmentaciones para que el usuario pueda seleccionar
- un conjunto de tiendas
- un rango de fechas
- un conjunto de departamentos
¿Cómo puedo hacer una medida que muestre las ventas promedio en cada uno de los 7 días de la semana usando las selecciones de las cortadoras?
Mis datos tienen el formato de
Fecha | Día | Tienda | Departamento | Ventas |
1/1/2020 | casarse | 1 | A | $ 96 |
1/1/2020 | casarse | 1 | B | $ 99 |
1/1/2020 | casarse | 1 | C | $ 46 |
1/1/2020 | casarse | 2 | A | $ 71 |
1/1/2020 | casarse | 2 | B | $ 87 |
1/1/2020 | casarse | 2 | C | $ 85 |
1/2/2020 | Jue | 1 | A | $ 62 |
1/2/2020 | Jue | 1 | B | $ 42 |
1/2/2020 | Jue | 1 | C | $ 15 |
1/2/2020 | Jue | 2 | A | $ 56 |
1/2/2020 | Jue | 2 | B | $ 7 |
1/2/2020 | Jue | 2 | C | $ 4 |
He intentado usar este AverageX pero parece que solo suma las ventas totales para eso [Day] y no promediarlos en el recuento de [Day]
Sales average per Day =
AVERAGEX(
KEEPFILTERS(VALUES('Sales'[Day])),
CALCULATE(SUM('Sales'[Sales]))
)
v-xicai
Hola @ CRyan1984,
Puede crear una medida como DAX a continuación.
Sales average per Day= CALCULATE(AVERAGE(Sales[Sales] ), ALLEXCEPT(Sales, Sales[Store], Sales[Department], Sales[Day]))
Atentamente,
Amy
Equipo de apoyo comunitario _ Amy
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
CRyan1984
En respuesta a v-xicai
gracias por la respuesta @ v-xicai!
Me gusta la simplicidad de la fórmula DAX, pero no parece estar calculando la forma en que lo necesito. Está dando como resultado una cantidad significativamente más baja que la cantidad correcta.
Como ejemplo con algunos datos de muestra:
El domingo debe calcular $ 54,988, su fórmula da como resultado $ 2,760
El lunes debería costar $ 49,907, su fórmula resulta en $ 2,665
Su fórmula parece actualizarse a medida que cambio las selecciones en la cortadora, pero debo faltar algo más ya que es mucho más bajo. Por favor, avíseme si tiene alguna idea o sugerencia adicional.
CRyan1984
Pude hacer que esta fórmula funcionara. Mi pregunta ahora es … ¿Existe una forma más eficiente de hacer esto?
Sales average per Day =
DIVIDE(
sumx(
filter(
Sales
,[Day] = [Day]
)
,Sales[Sales]
)
,COUNTROWS(
filter(
SUMMARIZE(
Sales,
Sales[DATE],Sales[Day])
,[Day] = [Day]
)
)
)
Edhans
En respuesta a CRyan1984
Hola @ CRyan1984,
No estoy seguro de que el mío sea «más simple», pero modelé sus datos en un esquema en estrella para que me fuera más fácil rastrearlos. Estoy 99.9% seguro de que no necesita una función más avanzada como RESUMEN para obtener esto, a menos que esté malinterpretando su solicitud. Sus datos no tienen una tabla de fechas, por ejemplo, pero después de jugar con ellos, no estoy seguro de que importe, pero nunca construyo un modelo sin una tabla de fechas. 😀 Dicho eso, no sabría decir cuál es tu [Day] cosa a la que se refería en sus datos. ¿Era una medida, una columna calculada, etc. Los días van en la tabla de fechas, así que los eliminé de allí?
Mi medida devuelve esto:
Por lo tanto, los $ 335 deberían ser correctos, ya que sus datos de muestra tenían 2 días y $ 670/2 = 335. También funciona sin importar cómo divida los datos. La medida fue:
Average Daily Sales =
VAR DayCount =
COUNTROWS(
VALUES('Table'[Date])
)
VAR SalesAmount = SUM('Table'[ Sales ])
VAR Result =
DIVIDE(
SalesAmount,
DayCount,
0
)
RETURN
Result
Es posible que Average / AverageX no funcione si no tiene la granularidad en la medida que desea, por lo que si está promediando días, pero la imagen que tiene no tiene días, la medida no funcionará. Pero la medida anterior contará los días en las cantidades independientemente de si su visual tiene un día o no.
Modelé sus datos como se muestra a continuación y utilicé los «puntos de estrella» como rebanadores. Como puede ver, su FACT (datos de ventas) ni siquiera es visible en el informe. Solo medidas y DIM (Dimensiones: fechas, tiendas, etc.)
Mi archivo PBIX está aquí si quieres jugar con él. Puede ver en Power Query (Transformar datos) cómo dividí su modelo en un esquema en estrella. Responde si entendí mal o si tienes preguntas adicionales.
CRyan1984
En respuesta a Edhans
¡Gracias por tu respuesta @edhans!
Creo que esto está cerca, pero parece ser tan complejo como la solución que resolví anteriormente.
Aunque para aclarar, necesito ver las ventas promedio para cada uno de los 7 días de la semana en el período de tiempo seleccionado en la cortadora.
Si alguien seleccionó del 1 de enero al 31 de enero, quiero mostrarles cómo se desempeñó el domingo promedio y cómo se desempeñó el lunes promedio, etc.
Quería subir una foto del gráfico pero no me deja. El gráfico tiene de domingo a sábado como eje y las ventas promedio en dólares como valor.
Edhans
En respuesta a CRyan1984
Pruebe esta medida @ CRyan1984. Esto lo hará el día de la semana. No tenía claros tus requisitos originales. Esta medida también se encuentra en el archivo vinculado anteriormente.
Average Per Week Day =
VAR WeekDayName = MAX('Date'[Day Name])
VAR TotalAmountPerWeekDay =
SUMX(
FILTER(
ALL('Table'),
RELATED('Date'[Day Name]) = WeekDayName
),
'Table'[ Sales ]
)
VAR NumberOfWeeks =
COUNTX(
FILTER(
ALL('Table'),
RELATED('Date'[Day Name]) = WeekDayName
),
'Table'[Date]
)
VAR Result =
DIVIDE(
TotalAmountPerWeekDay,
NumberOfWeeks,
0
)
RETURN Result