Forum Discussion
Promedio de valores por clientcode
Hola a todos,
Tengo un conjunto de datos en el que tengo un valor para cada código de consumidor que se duplica para cada ID que tengo en mi base de datos. Quiero devolver el valor único de Cantidad para cada código y cada mes con una medida, para poder sumar esa y obtener el valor total por código durante las fechas seleccionadas por el usuario. Para los siguientes datos, lo que espero es una medida de que cuando el usuario seleccione una fecha en la segmentación (es decir, 20/10/2024), los valores devueltos deben ser:
Código 287 una cantidad igual a (8000+19000) = 27000
Código 465 una cantidad igual a (12801.18+43373.8) =56174.98
Por lo tanto, los resultados deben ser anteriores a la fecha que el usuario seleccione y deben ser el valor promedio de la columna AMOUNT.
El código que estoy usando ahora es algo similar a esto, pero no funciona como se esperaba:
YearToDateAverage =
CALCULAR(
PeriodoMedias del VAR =
ADDCOLUMNS(
FILTRO(
VALORES(DATOS[FECHA]),
DATOS[FECHA] <= MAX(DATOS[FECHA])
),
"PeriodAvg",
CALCULAR(
PROMEDIOX(
FILTRO(
DATOS
NOT(ISBLANK(DATA[CANTIDAD]))
),
DATOS[CANTIDAD]
),
FILTRO(
TODOS(DATOS),
DATOS[CÓDIGO] = VALORSELECCIONADO(DATOS[CÓDIGO] &&
DATOS[FECHA] = ANTERIOR(DATOS[FECHA]) &&
AÑO(DATOS[FECHA]) = AÑO(MÁX.(DATOS[FECHA]))
)
)
)
VAR PeriodCount = COUNTROWS(PeriodAverages)
VAR OverallAverage = AVERAGEX(PeriodAverages, [PeriodAvg])
RETORNO Promedio general,
REMOVEFILTERS( --used para eliminar filtros de las segmentaciones
DATOS[FECHA],
DATOS[AÑO],
DATOS[DATE_MONTH]
)
)
Fecha | IDENTIFICACIÓN | IMPORTE | CÓDIGO |
05/09/2024 07:00 | 15446213 | 8000 | 287 |
06/09/2024 07:00 | 2425691 | 8000 | 287 |
06/09/2024 07:00 | 15923576 | 8000 | 287 |
06/09/2024 07:00 | 12443095 | 12801.18 | 465 |
06/09/2024 07:00 | 744922.5 | 12801.18 | 465 |
06/09/2024 07:00 | 9731083 | 12801.18 | 465 |
08/09/2024 07:00 | 3051668 | 12801.18 | 465 |
10/09/2024 07:00 | 2411277 | 12801.18 | 465 |
10/09/2024 07:00 | 8674816 | 12801.18 | 465 |
11/09/2024 07:00 | 2546245 | 8000 | 287 |
13/09/2024 07:00 | 10229042 | 12801.18 | 465 |
13/09/2024 07:00 | 15755668 | 12801.18 | 465 |
13/09/2024 07:00 | 2017874 | 12801.18 | 465 |
13/09/2024 07:00 | 3126478 | 12801.18 | 465 |
13/09/2024 07:00 | 7406693 | 12801.18 | 465 |
13/09/2024 07:00 | 8057878 | 12801.18 | 465 |
13/09/2024 07:00 | 10893955 | 12801.18 | 465 |
13/09/2024 07:00 | 4356376 | 12801.18 | 465 |
13/09/2024 07:00 | 724419 | 12801.18 | 465 |
13/09/2024 07:00 | 1375314 | 12801.18 | 465 |
13/09/2024 07:00 | 14852419 | 12801.18 | 465 |
13/09/2024 07:00 | 12256065 | 12801.18 | 465 |
13/09/2024 07:00 | 11124722 | 12801.18 | 465 |
18/09/2024 07:00 | 4904784 | 12801.18 | 465 |
19/09/2024 07:00 | 2101887 | 12801.18 | 465 |
19/09/2024 07:00 | 562446.2 | 12801.18 | 465 |
20/09/2024 07:00 | 10803079 | 12801.18 | 465 |
20/09/2024 07:00 | 8847007 | 12801.18 | 465 |
21/09/2024 07:00 | 983438.3 | 12801.18 | 465 |
24/09/2024 07:00 | 12598677 | 12801.18 | 465 |
24/09/2024 07:00 | 9603358 | 12801.18 | 465 |
24/09/2024 07:00 | 4641095 | 12801.18 | 465 |
25/09/2024 07:00 | 4010836 | 12801.18 | 465 |
26/09/2024 07:00 | 13825778 | 12801.18 | 465 |
26/09/2024 07:00 | 9984293 | 12801.18 | 465 |
26/09/2024 07:00 | 8226882 | 12801.18 | 465 |
26/09/2024 07:00 | 9005921 | 12801.18 | 465 |
01/10/2024 07:00 | 5589874 | 43373.8 | 465 |
01/10/2024 07:00 | 12890181 | 43373.8 | 465 |
01/10/2024 07:00 | 9040618 | 43373.8 | 465 |
01/10/2024 07:00 | 15628785 | 43373.8 | 465 |
01/10/2024 07:00 | 672593 | 19000 | 287 |
01/10/2024 07:00 | 9060820 | 19000 | 287 |
02/10/2024 07:00 | 13169360 | 19000 | 287 |
04/10/2024 07:00 | 10903322 | 43373.8 | 465 |
17/10/2024 07:00 | 2318524 | 43373.8 | 465 |
17/10/2024 07:00 | 13430471 | 43373.8 | 465 |
18/10/2024 07:00 | 3331089 | 43373.8 | 465 |
22/10/2024 07:00 | 5876561 | 43373.8 | 465 |
22/10/2024 07:00 | 6470726 | 43373.8 | 465 |
22/10/2024 07:00 | 7406241 | 43373.8 | 465 |
22/10/2024 07:00 | 946373.9 | 43373.8 | 465 |
23/10/2024 07:00 | 10169340 | 43373.8 | 465 |
27/10/2024 07:00 | 4730362 | 43373.8 | 465 |
29/10/2024 07:00 | 10436420 | 43373.8 | 465 |
31/10/2024 07:00 | 1555396 | 43373.8 | 465 |
31/10/2024 07:00 | 8163260 | 43373.8 | 465 |
31/10/2024 07:00 | 314187.3 | 43373.8 | 465 |
03/11/2024 07:00 | 15470032 | 20000 | 287 |
04/11/2024 08:00 | 12730697 | 48128.07 | 465 |
08/11/2024 08:00 | 5914064 | 48128.07 | 465 |
3 Replies
- Syndicate_Admin
Administrator
Tal vez pueda intentar crear una nueva columna para obtener el promedio primero
Columna = DIVIDIR('Mesa'[CANTIDAD], Conteo X(FILTRO('Mesa','Mesa'[CÓDIGO]=ANTERIOR('Mesa'[CÓDIGO])&&año('Mesa'[Fecha])=año(ANTERIOR('Mesa'[Fecha]))&&mes('Mesa'[Fecha])=mes(ANTERIOR('Mesa'[Fecha]))),'Mesa'[CÓDIGO])) - Syndicate_Admin
Administrator
Hola @julsr ,
Intenta modificar tu medida a algo como esto:
YearToDateAverage = CALCULATE( SUMX( SUMMARIZE( FILTER( DATA, DATA[DATE] <= MAX(DATA[DATE]) ), DATA[CODE], "UniqueAmount", AVERAGEX( FILTER( DATA, DATA[CODE] = EARLIER(DATA[CODE]) && DATA[DATE] <= MAX(DATA[DATE]) ), DATA[AMOUNT] ) ), [UniqueAmount] ), REMOVEFILTERS( DATA[DATE], DATA[YEAR], DATA[DATE_MONTH] ) )
No olvide reemplazar los nombres de tablas y columnas por los suyos propios.Gracias
- Syndicate_Admin
Administrator
¡Gracias a los dos! Utilicé el enfoque para obtener el promedio primero y simplemente sumar los valores, ¡y funciona!