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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
TRK
Helper II
Helper II

DAX para N inferior - con segmentación de datos (parámetro if)

Datos de muestra:

Categoría Tipo Grupo Valor de línea base de productos básicos
Categoría 1 Actividad Ambiental 8 Alimentos 0
Categoría 2 Actividad económica 1 No Alimentaria 0
Categoría 3 Actividad Animal 6 Orgánico 0
Categoría 2 Actividad Animal 7 No Alimentos 22553.43
Categoría 2 Actividad Animal 9 No Alimentos 225534.26
Categoría 1 Actividad Económica 2 Alimentos 7245000
Categoría 1 Actividad de Personas 4 Alimentos 34802757

Creé un parámetro y lo uso para calcular TopN usando esta segmentación de parámetros. Tengo un objeto visual con mercancía - y luego filtros con las otras columnas. Esto funciona. Si selecciona top 4 en la segmentación TOPN - muestra las 4 principales materias primas, si se filtra por cualquier otra columna - muestra las 4 superiores.

Usé las siguientes medidas:

Línea base total: SUM('1 - BL Baseline'[Baseline Value])

Línea base DE TOP N - GENERATESERIES(0, 60, 1)

TOP N Línea base selectedValue á SELECTEDVALUE('TOP N Baseline'[TOP N Baseline])

Total de línea de base superior N (Commodities)

VAR SelectedTop á SELECTEDVALUE('TOP N Baseline'[TOP N Baseline])

devolución

SWITCH(TRUE(),

SelectedTop n.o 0, [Línea de base total],

RANKX (

ALLSELECTED( 'Baseline'[Commodity] ), [Total Baseline])

<-SelectedTop, [Línea de base total])

Para bottom N: ya que lo anterior parece ordenar de mayor a menor - tendría que tener la fórmula ordenada de menor a mayor. Intenté agregar ASC en la sección Allselected de la fórmula:

Base inferior N - GENERATESERIES(0, 60, 1)

Base inferior N seleccionada SelectedValue á SELECTEDVALUE('Base inferior N'[Línea base N inferior])

Total de fondo de línea base N (Commodities)

VAR SelectedBottom á SELECTEDVALUE('Base inferior N'[Línea base N inferior])

devolución

SWITCH(TRUE(),

SelectedBottom á 0, [Línea de base total],

RANKX (

ALLSELECTED( 'Baseline'[Commodity] ), [Total Baseline],,ASC, Dense)

<- Selectedbottom, [Línea de base total])

Sin embargo, eso no funcionó del todo bien. Parece, cuando sólo tienen la cortadora para la parte inferior N - establecido para decir 3 - muestra las 3 materias primas inferiores en el objeto visual. Sin embargo, cuando rebano por categoría - 1 de las categorías muestra la parte inferior 3, pero las otras muestran la parte inferior 2 solamente. En una vista de tabla - parece haber más de 3 valuse regresando para esta base N inferior.

¿Cómo puedo modificar el DAX para obtener Bottom N con la fuctionality de la cortadora Bottom N y seguir usando todos mis otros filtros?

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

No @TRK ,

¿Quieres mostrar la N inferior con la cortadora como esta,

Al seleccionar la parte inferior 4,

DAX1.jpg

En caso afirmativo, puede remitir nuestros pasos.

1. En Editor Query, ordene el valor Baseline por ASC y agregue una columna de índice.

DAX2.jpg

2. Podemos crear un nuevo parámetro como N superior inferior. Entonces tenemos que cambiar la línea de base total a esto,

Total Baseline = SUM('Table'[Baseline Value]) + SUM('Table'[Index])*0.00001

3. Por fin podemos crear una medida N superior inferior.

Total Baseline Bottom N (Commodities) = 
SWITCH(
    TRUE(),
    [Bottom N Baseline Value] = 0, [Total Baseline],
    RANKX (ALLSELECTED( 'Table' ), [Total Baseline],,ASC,Dense)<= [Bottom N Baseline Value], [Total Baseline])

DAX3.jpg

Si no cumple con sus requisitos, ¿podría mostrar el resultado esperado exacto basado en la tabla que ha compartido?

Saludos

Equipo de apoyo a la comunidad _ zhenbw

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

BTW, pbix como adjunto.

View solution in original post

4 REPLIES 4
v-zhenbw-msft
Community Support
Community Support

No @TRK ,

¿Qué tal el resultado después de seguir las sugerencias mencionadas en mi publicación original?

¿Podría proporcionar más detalles o resultado esperado si no cumple con su requisito?

Si ha solucionado el problema por su cuenta, por favor comparta su solución. Si la ayuda de los mensajes anteriores, por favor márquela como una solución para ayudar a otros a encontrarlo más rápidamente.

Saludos

Equipo de apoyo a la comunidad _ zhenbw

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

v-zhenbw-msft
Community Support
Community Support

No @TRK ,

¿Quieres mostrar la N inferior con la cortadora como esta,

Al seleccionar la parte inferior 4,

DAX1.jpg

En caso afirmativo, puede remitir nuestros pasos.

1. En Editor Query, ordene el valor Baseline por ASC y agregue una columna de índice.

DAX2.jpg

2. Podemos crear un nuevo parámetro como N superior inferior. Entonces tenemos que cambiar la línea de base total a esto,

Total Baseline = SUM('Table'[Baseline Value]) + SUM('Table'[Index])*0.00001

3. Por fin podemos crear una medida N superior inferior.

Total Baseline Bottom N (Commodities) = 
SWITCH(
    TRUE(),
    [Bottom N Baseline Value] = 0, [Total Baseline],
    RANKX (ALLSELECTED( 'Table' ), [Total Baseline],,ASC,Dense)<= [Bottom N Baseline Value], [Total Baseline])

DAX3.jpg

Si no cumple con sus requisitos, ¿podría mostrar el resultado esperado exacto basado en la tabla que ha compartido?

Saludos

Equipo de apoyo a la comunidad _ zhenbw

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

BTW, pbix como adjunto.

amitchandak
Super User
Super User

@TRK , consulte si este ejemplo de este tema puede ayudar: https://community.powerbi.com/t5/Community-Blog/Dynamic-TopN-made-easy-with-What-If-Parameter/ba-p/3...

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Hola, sí - He utilizado este post para TOP N - como se puede ver es el mismo DAX.

Sin embargo - Estoy tratando de hacer lo mismo con BOTTOM N - y no puedo conseguir que funcione (ver mi post original).

¿Cómo obtengo la parte inferior N - como Rankx auto ordena de mayor a menor.

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Top Solution Authors
Top Kudoed Authors