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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

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
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

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

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors