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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

topn dax para valores negativos

Hola

no tengo ningún problema para obtener el resultado de topn dax para valores positivos. sin embargo, necesito ayuda para resolver el topn dax para los valores negativos.

este es mi típico topn dax:


TopN.ADPR ?
CALCULAR (
[16000-ADPR. EM],
TOPN (
'mn-value'[valor n],
ALL ( 'mprofile'[Org_Name] ),
[16000-ADPR. EM]
),
VALORES ( 'mprofile'[Org_Name] )
)

Agradecería cualquier ayuda en esto.

tks, -nik

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@nikahafiz

Ordenar ascendente debería darle los números negativos superiores. O Superior significa todo cerca de 0. Luego tenga un filtro de <0 en su medida

Orden
(Opcional) Valor que especifica cómo ordenar orderBy_expression valores, ascendentes o descendentes:

Valor valor alternativo Descripción
0 (cero) Falso Ordena en orden descendente de valores de order_by.

Este es el valor predeterminado cuando se omite el parámetro order.
1 Verdad Rangos en orden ascendente de order_by.

O use el rango

Para el rango Refiera estos links
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

View solution in original post

6 REPLIES 6
amitchandak
Super User
Super User

@nikahafiz

Ordenar ascendente debería darle los números negativos superiores. O Superior significa todo cerca de 0. Luego tenga un filtro de <0 en su medida

Orden
(Opcional) Valor que especifica cómo ordenar orderBy_expression valores, ascendentes o descendentes:

Valor valor alternativo Descripción
0 (cero) Falso Ordena en orden descendente de valores de order_by.

Este es el valor predeterminado cuando se omite el parámetro order.
1 Verdad Rangos en orden ascendente de order_by.

O use el rango

Para el rango Refiera estos links
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

Anonymous
Not applicable

gracias por su tiempo y esfuerzos en tratar de ayudar, @amitchandak.

si top significa todo cerca de 0, por favor aconseje sobre cómo tener un filtro de <0 en mi medida en el mismo dax que escribió anteriormente?

Krgds,-nik

Hola, @nikahafiz

Según su descripción, creé datos para reproducir su escenario.

Mesa:

e1.png

Puede crear una tabla de parámetros What-if como se muestra a continuación.

mn-value = GENERATESERIES(0, 6, 1)

A continuación, debe crear una medida como la siguiente.

Result = 
var _topn = SELECTEDVALUE('mn-value'[mn-value])
return
CALCULATE(
    SUM('Table'[Value]),
    TOPN(
        _topn,
        FILTER(
            ALL('Table'),
            'Table'[Value]<0
        ),
        'Table'[Value]
    )
)

Resultado:

e2.png

e3.png

Saludos

Allan

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

Anonymous
Not applicable

gracias, @v-alq-msft.

I'm sentimos por no responder antes (tomó un breve descanso). también, siento no haberlo hecho más claro.

la situación es si tengo todos los valores negativos, ¿cómo hago la clasificación superior para ellos?

Usando la tabla que reprodujo, la lista será la siguiente:

NombreValor
Amy-11
todo-20

Mike

-19
Michael-46
Lucy-16
azucena-33
Jack-25
John-10

si filtro para el top-3, será-

NombreValor
John-10
Amy-11
Lucy-16

¿cómo clasificará el dax b los valores negativos como en el caso anterior, por favor?

tks & kind rgds, -nik

Hola, @nikahafiz

Puede crear un parámetro what-if como se indica a continuación.
g1.png

A continuación, puede crear una medida como se muestra a continuación.

IsDisplay = 
var _topn = SELECTEDVALUE(Parameter[Parameter])
var _name = SELECTEDVALUE('Table'[Name])
var tab = 
ADDCOLUMNS(
    ALLSELECTED('Table'),
    "Rank",
    RANKX(
        ALLSELECTED('Table'),
        'Table'[Value]
    )
)
var _rank = 
SUMX(
    FILTER(
        tab,
        [Name] = _name
    ),
    [Rank]
)
return
IF(
    _rank<=_topn,
    1,0
)

Por último, debe colocar la medida en el filtro de nivel visual de un objeto visual de tabla. Aquí está el resultado.

g2.png

Saludos

Allan

Anonymous
Not applicable

muchas gracias, @v-alq-msft .

Voy a probar esas sugerencias.

Krgds,-nik

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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