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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Suma de valores solo con un umbral basado en el nivel de encabezado

¡Hola!

Tengo este tipo de estructura de datos

OrderHeaderOrderItemImporte
A1100
A2200
B5200
A3800
C41005

Ahora necesito una medida DAX que solo sume el importe de OrderItem cuando la suma del encabezado sea mayor o igual que 1000. Mi idea era escribir primero una medida que siempre sumara la cantidad del encabezado y luego usarla para filtrar en otra medida. Pero, desafortunadamente, no funcionó como se esperaba. Básicamente, filtraba cuando el elemento era más pequeño que la entrada (1000), no la suma del nivel de encabezado.

¿Cómo puedo arreglar la primera medida para que siempre, sin depender del contexto de la tabla, calcule la suma en el nivel de encabezado y verifique si es mayor que la intrusión?

Un ejemplo de cómo debería mostrarse más adelante

OrderItemImporte
1100
2200
3800
41005

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

@Penguin12 ,

En este caso, para reutilizar esta lógica en múltiples compases de forma performática, mi sugerencia es crear una columna calculada en la tabla original para tener el total de cada encabezado. Para ello puedes utilizar la misma lógica en la respuesta anterior:

NewColumn = 
CALCULATE (
    SUM ( 'Table'[Amount] ),
    ALLEXCEPT ( 'Table', 'Table'[OrderHeader] )
)​


A continuación, puede utilizar esta columna para filtrar según sea necesario mediante CALCULATE/FILTER.

De lo contrario, simplemente use la variable a continuación en cada medida para calcular la tabla sobre la marcha (no hay problema con este enfoque).

VAR _Table_Total_Header =
    ADDCOLUMNS (
        'Table',
        "Header_Total",
            CALCULATE (
                SUM ( 'Table'[Amount] ),
                ALLEXCEPT ( 'Table', 'Table'[OrderHeader] )
            )
    )

¡Espero que esta respuesta resuelva tu problema!
Si necesita ayuda adicional, por favor @ me en su respuesta.
Si mi respuesta le proporcionó una solución, considere marcarla como una solución ✔️ o darle un kudoe 👍

¡Gracias!

Saludos
Joao Ribeiro

Syndicate_Admin
Administrator
Administrator

@joaoribeiro muchas gracias por su respuesta! Pero, ¿hay una manera de tener que hacerlo en dos medidas para poder usar la segunda, por ejemplo, en diferentes contextos en lugar de crear una nueva tabla? He estado luchando con esto y no pude reescribirlo

Syndicate_Admin
Administrator
Administrator

Hola @Penguin12 ,

Creo que usas la siguiente estructura de medida para resolver tu problema:

VAR _Table_Total_Header =
    ADDCOLUMNS (
        'Table',
        "Header_Total",
            CALCULATE (
                SUM ( 'Table'[Amount] ),
                ALLEXCEPT ( 'Table', 'Table'[OrderHeader] )
            )
    )
RETURN
    SUMX (
        FILTER ( '_Table_Total_Header', [Header_Total] >= 1000 ),
        'Table'[Amount]
    )

joaoribeiro_0-1701087219285.png

¡Espero que esta respuesta resuelva tu problema!
Si necesita ayuda adicional, por favor @ me en su respuesta.
Si mi respuesta le proporcionó una solución, considere marcarla como una solución ✔️ o darle un kudoe 👍

¡Gracias!

Saludos
Joao Ribeiro

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.