cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper III
Helper III

Devolver la categoría más grande en función de una suma

Hola

Estoy buscando una (esperemos) medida DAX simple para resolver el siguiente problema.

Tengo una gama compuesta por un número de empleados, un producto elegido y sus ahorros en cada producto. En una tabla diferente, necesito crear una medida que devuelva el nombre del producto que contiene la mayor suma combinada de ahorros. Por ejemplo, la Persona 1, esto sería "Producto B", porque los 750.000 en el Producto B superan los 500.000 del Producto A (si hubiera sido contrario, la medida debería devolver el "Producto A").

Sample.png

Estoy trabajando en PowerPivot en Excel 2013 y anteriormente he confiado en "FIRSTNONBLANK" ya que los rangos no han contenido valores de dulicado. Sin embargo, esa solución ya no es suficiente. Cualquier ayuda es muy apreciada.

¡Gracias!

3 ACCEPTED SOLUTIONS

Accepted Solutions
Highlighted

Hola @Phil123456789,

Excel y power bi utilizan lógica y estructura diferentes para almacenar tablas de datos.

Tal vez pueda intentar convertir la tabla en la tabla de consulta y usar la 'consulta M' para crear una consulta de referencia para resumir los registros de tabla sin procesar.

let
    Source = RawTable,//change to your query table name
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Product", type text}, {"Amount", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Name", "Product"}, {{"Total", each List.Sum([Amount]), type nullable number}}),
    #"Grouped Rows1" = Table.Group(#"Grouped Rows", {"Name"}, {{"Count", each Table.LastN(_, 1), type table}}),
    #"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows1", "Count", {"Product", "Total"}, {"Product", "Total"})
in
    #"Expanded Count"

1.png
saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

View solution in original post

Highlighted
Super User III
Super User III

Hola

Estas medidas funcionan

Importe total: SUM(Datos[Cantidad])

Producto superior: FIRSTNONBLANK ( TOPN ( 1, VALUES ( Data[Product] ), [Importe total] ), 1 )

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

Highlighted

Hola

Puede descargar mi archivo PBI desde aquí.

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

16 REPLIES 16
Highlighted
Super User IV
Super User IV

@Phil123456789 , Basado en lo que tengo

Crear una medida de rango y filtrar rango n.o 1

medida de rango ?

Rankx(all(Table[product]), calculate(Sum(Table[Amount])))



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

Highlighted

Gracias @amitchandak, fórmula parece funcionar.

Sin embargo, dado que uso los nombres ("Persona 1", "Persona 2", etc.) como filtro de fila en la tabla dinámica, solo se devuelve un producto como valor. Por lo tanto, la función rank simplemente devuelve "1" para todos los empleados, y por lo tanto no es posible filtrar.

¿Alguna sugerencia alternativa?

Highlighted

@Phil123456789, este trabajo de clasificación de cómo medir. El que sugerí creará un solo rango si se usa con el producto y si se usa con el empleado se meterá dentro del empleado.

Inténtalo como

RANKX (
FILTRO(
ALL( //////////Or allselected
'Tabla'[empleado],
'Tabla'[producto]
),
'Table'[empleado] á MAX('Table'[empleado])
),
CALCULATE(SUM('Table'[Amount]))
)

Para rango Consulte estos enlaces
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns
https://radacad.com/how-to-use-rankx-in-dax-part-3-of-3-the-finale
https://community.powerbi.com/t5/Community-Blog/Dynamic-TopN-made-easy-with-What-If-Parameter/ba-p/3...



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

Highlighted

Gracias @amitchandak,voy a echar un vistazo a los enlaces.

No estoy seguro de cómo funciona la medida propuesta, ya que requiere tomar MAX de empleado, que es una cadena.

Highlighted
Super User II
Super User II

Hola @Phil123456789

eche un vistazo a la siguiente solución:

24-09-_2020_19-48-41.png

Max Amount = 
Var _Rank = RANKX(ALL('Table'[Product]),[Sum of Amount],,DESC)
RETURN
    IF(_Rank = 1, [Sum of Amount], BLANK())

Con saludos amables desde la ciudad donde la leyenda del 'Pied Piper de Hamelin' está en casa
FrankAT (Orgulloso de ser un Datanaut)

Highlighted

Gracias @FrankAT,trabajó un encanto en PowerBI.

Sin embargo, al intentar convertir la fórmula a Excel PowerPivot, no puedo hacer que funcione.

Creo que el problema es que Excel no le permitirá devolver una cadena de texto en una tabla dinámica (a menos que se utilice con, por ejemplo, FIRSTNONBLANK).

¿Cómo ajusto la fórmula, para obtener la fórmula para devolver el producto correcto como una cadena de texto (no necesito mostrar las cantidades reales en la tabla, solo el producto)?

Highlighted

Hola @Phil123456789,

Excel y power bi utilizan lógica y estructura diferentes para almacenar tablas de datos.

Tal vez pueda intentar convertir la tabla en la tabla de consulta y usar la 'consulta M' para crear una consulta de referencia para resumir los registros de tabla sin procesar.

let
    Source = RawTable,//change to your query table name
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Product", type text}, {"Amount", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Name", "Product"}, {{"Total", each List.Sum([Amount]), type nullable number}}),
    #"Grouped Rows1" = Table.Group(#"Grouped Rows", {"Name"}, {{"Count", each Table.LastN(_, 1), type table}}),
    #"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows1", "Count", {"Product", "Total"}, {"Product", "Total"})
in
    #"Expanded Count"

1.png
saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

View solution in original post

Highlighted
Super User III
Super User III

Hola

Estas medidas funcionan

Importe total: SUM(Datos[Cantidad])

Producto superior: FIRSTNONBLANK ( TOPN ( 1, VALUES ( Data[Product] ), [Importe total] ), 1 )

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

View solution in original post

Highlighted

Disculpas por mi respuesta retrasada, no tuvo la oportunidad de tratar de implementar las sugerencias.

@Ashish_Mathur,la solución funcionó perfectamente, gracias. Y también, gracias a todos los demás que vinieron con sugerencias, muy apreciado!

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Community Conference

Microsoft Power Platform Communities

Check out the Winners!

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors