Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Mainer04401
Helper III
Helper III

Máximo en columna calculada excluyendo la fila actual

He creado una columna con la siguiente expresión para calcular las ventas máximas de una cuenta para un producto en un código postal:
MaxSales ?
calculate(max(Table[Sales]),allexcept(Table,Table[ZipCode],Table[Product]))
Funciona, pero ahora quiero excluir la fila actual del cálculo máximo. En otras palabras, si la cuenta actual tiene las ventas máximas, muestre las ventas de la segunda cuenta más alta. Vea el ejemplo siguiente:
AccountNumberCodigopostalProductoVentasMaxSales
10104401Sillas7501,000
10204401Sillas1,000750
10304401Sillas3001,000
10404401Sillas4001,000

¿Es posible? Sé que puedo hacer esto como una medida, pero estoy tratando de hacer una columna calculada para ver si esto mejora la velocidad al no hacer el cálculo máximo sobre la marcha.

1 ACCEPTED SOLUTION
v-yangliu-msft
Community Support
Community Support

Hola @Mainer04401 ,

Estos son los pasos que puede seguir:

1. Cree una columna calculada.

Column =
var _1 =CALCULATE(MAX('Table'[Sales]),FILTER('Table','Table'[Sales]=MAX('Table'[Sales])))
var _2 =CALCULATE(SUM('Table'[Sales]),FILTER('Table',RANKX('Table','Table'[Sales])=2))
return IF('Table'[Sales]=MAX('Table'[Sales]),_2,_1)

2. Resultado.

v-yangliu-msft_0-1607071556404.png

Puede descargar el archivo PBIX desde aquí.

Saludos

Liu Yang

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

3 REPLIES 3
v-yangliu-msft
Community Support
Community Support

Hola @Mainer04401 ,

Estos son los pasos que puede seguir:

1. Cree una columna calculada.

Column =
var _1 =CALCULATE(MAX('Table'[Sales]),FILTER('Table','Table'[Sales]=MAX('Table'[Sales])))
var _2 =CALCULATE(SUM('Table'[Sales]),FILTER('Table',RANKX('Table','Table'[Sales])=2))
return IF('Table'[Sales]=MAX('Table'[Sales]),_2,_1)

2. Resultado.

v-yangliu-msft_0-1607071556404.png

Puede descargar el archivo PBIX desde aquí.

Saludos

Liu Yang

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

amitchandak
Super User
Super User

@Mainer04401 , Pruebe una medida como

calculate(Max(Table[Sales]), filter(allselected(Table[AccountNumber]) ,Table[AccountNumber] <> max(Table[AccountNumber])))

O

calculate(Max(Table[Sales]), filter(allselected(Table) ,Table[AccountNumber] <> max(Table[AccountNumber]))

@amitchandak Gracias, he conseguido que esto funcione como una medida, pero estoy tratando de hacer una columna calculada para que el cálculo se produzca durante la actualización de datos y no sobre la marcha. ¿Se puede excluir el valor de la fila actual del cálculo máximo al hacerlo en una columna calculada?

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors