Forum Discussion
Fórmula MAX
Hola
Tengo un problema con la fórmula MAX. En mi ejemplo, quiero calcular una suma de ventas con un máximo de fecha solo para el grupo A. Y para el grupo B calculo la suma de las ventas sin el máximo. Finalmente calculo la suma total (MaxSalesGroupA + SalesGroupB). En el ejemplo, si selecciono el grupo A del filtro, el nombre "Max" tiene 4000, pero esto no es correcto. En este caso, el nombre "Max" ya no necesita estar en la matriz.
De hecho, tengo un archivo grande, pero agregué un ejemplo en el archivo adjunto (ver imagen de Excel).
Saludos
Datos sin procesar (Excel):
Resultado:
DAX:
Hola
He resuelto el problema con la siguiente función DAX.
Muchas gracias por su apoyo.
11 Replies
- Syndicate_Admin
Administrator
hi, @Tito
Pruébalo a continuación
sum sales current 2 = var a = CALCULATE(MAX(tebelle1[date]),ALLEXCEPT(tebelle1,tebelle1[group])) var b = SUMX(FILTER(tebelle1,tebelle1[date]=a),tebelle1[sales]) var c = SUMX(FILTER(tebelle1,tebelle1[group]="b"),tebelle1[sales]) return b+c - Syndicate_Admin
Administrator
Gracias por su respuesta.
He probado la fórmula, pero el cálculo no es correcto. - Syndicate_Admin
Administrator
- Syndicate_Admin
Administrator
hi, @Tito
Pruebe el siguiente código
sum sales current 2 = var a = CALCULATE( MAX(tebelle1[sales]), ALLEXCEPT(tebelle1,tebelle1[date]), KEEPFILTERS(tebelle1[group]="a") ) var b = CALCULATE( sum(tebelle1[sales]), tebelle1[sales]=a ) var c = CALCULATE( sum(tebelle1[sales]), KEEPFILTERS(tebelle1[group]="b") ) return b+c - Syndicate_Admin
Administrator
Gracias por su ayuda.
Pero cuando agrego la fecha a la matriz, no se muestra correctamente.
- Syndicate_Admin
Administrator
¿Ayudaría algo así?
Sum Sales current 2 = VAR MaxSalesGroupA = CALCULATE ( SUM ( Tabelle1[Sales] ), Tabelle1[Date] = MAX ( Tabelle1[Date] ), KEEPFILTERS ( Tabelle1 ), Tabelle1[Group] = "A" ) VAR SalesGroupB = CALCULATE ( SUM ( Tabelle1[Sales] ), KEEPFILTERS ( Tabelle1 ), Tabelle1[Group] = "B" ) RETURN MaxSalesGroupA + SalesGroupB - Syndicate_Admin
Administrator
Hi, @Tito
Pruébalo a continuación
result = var a = CALCULATE(MAX(tebelle1[date]),KEEPFILTERS(tebelle1[group]="a"),ALLEXCEPT(tebelle1,tebelle1[group])) var b = CALCULATE(SUM(tebelle1[sales]),FILTER(tebelle1,tebelle1[date]=a)) var c = CALCULATE(SUM(tebelle1[sales]),KEEPFILTERS(tebelle1[group]="b")) return b+c - Syndicate_Admin
Administrator
hi, @Tito
Si desea mostrar solo el nombre que tiene ventas con fecha máxima y desea mostrar solo la fecha máxima y el nombre relacionados con esas fechas, cambie el orden de la columna en el objeto visual
como se muestra a continuación con la misma medida de resultado.
- Syndicate_Admin
Administrator
Gracias por la ayuda adicional.
Cuando selecciono "A" o "B" del filtro, aparece el resultado correcto. Pero si no uso los filtros, el resultado correcto no llega.
- Syndicate_Admin
Administrator
Gracias por su respuesta.
He intentado esto antes, pero no funcionó.
Gracias