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
Syndicate_Admin
Administrator
Administrator

DAX solo incluye filas fuera del contexto del filtro

Hola a todos

Estoy atascado en un problema de DAX relacionado con el contexto del filtro: he intentado algunas formas con poco éxito.

Estoy creando la tabla a continuación en Power BI, que solo permite una selección única en la segmentación de datos, que en este caso es Kitchen. Estoy luchando para calcular la última columna 'Otros productos activos' que suma todas las filas para el agente de ventas que no son iguales a la cocina, pero se aplicarán todos los demás filtros.

Agente de VentasProductoVolumen vendidoOtros productos activos
Agente de ventas 1Cocina 12
Agente de ventas 2Cocina 131
Agente de ventas 3Cocina 224

Un ejemplo de los datos subyacentes está a continuación y estoy tratando de sumar 'Producto activo'.

Agente de VentasProductoProducto activoVolumen vendido
Agente de ventas 1Cocina 11
Agente de ventas 1Sofá14
Agente de ventas 1TELEVISIÓN07
Agente de ventas 1Baño110
Agente de ventas 2Cocina 113
Agente de ventas 2Sofá116
Agente de ventas 2TELEVISIÓN019
Agente de ventas 3Cocina 122
Agente de ventas 3Sofá125
Agente de ventas 3TELEVISIÓN028
Agente de ventas 3Baño131
Agente de ventas 3Cama134

Cualquier ayuda sería muy apreciada 🙂

1 ACCEPTED SOLUTION

¿@Jim_PBI

Debido a que utiliza la función Todos, debe agregar un filtro 'Tabla'[Agente de ventas]=MAX('Tabla'[Agente de ventas]) en su código para calcular la suma 'Producto activo' para cada Agente de ventas.

Other Active Products =
VAR _SELECTVALUE =
    SELECTEDVALUE ( 'Table'[Product] )
VAR _SUM =
    CALCULATE (
        SUM ( 'Table'[Active Product] ),
        FILTER (
            ALL ( 'Table' ),
            'Table'[Product] <> _SELECTVALUE
                && 'Table'[Sales Agent] = MAX ( 'Table'[Sales Agent] )
        )
    )
RETURN
    _SUM

El resultado es el siguiente.

1.png

Saludos
Rico Zhou

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Screenshot 2021-11-27 205218.png

Syndicate_Admin
Administrator
Administrator

Por favor, considere y adapte esta solución y haga clic en los pulgares hacia arriba y acepte la solución

Otros productos =
DÓNDE myproduct = SELECTEDVALUE(Hechos[Producto])
DÓNDE mysubset = FILTRO(
TODO(Hechos[Producto]),
Hechos[Producto] <> myproduct)
DEVOLUCIÓN
CALCULAR(
SUMA(Hechos[Volumen vendido]),
mysubset)

Cómo funciona:-

myproduct obtiene el único producto que ha seleccionado (por ejemplo, Cocina)

MySubset utiliza la recomendación ALL para obtener todos los registros, pero luego filtra los registros no = kitchen

A continuación, el CALCULATE suma el volumen vendido solo para el subconjunto.
Puede adaptarse solo para productos activos si es necesario.


Creo que esto está muy cerca de lo que necesito, así que gracias por la respuesta. En mi escenario de la vida real, mi modelo de datos es a través de dos tablas con una tabla DIM para los agentes de ventas con una relación de muchos a uno utilizando la clave única. La segmentación de datos en la página es para el 'Agente de ventas' de la tabla DIM y creo que esto está impidiendo que el DAX funcione correctamente en la tabla FACT. He incluido mi tabla DIM a continuación.

Clave únicaAgente de Ventas
123Agente de ventas 1
124Agente de ventas 2
125Agente de ventas 3

¿@Jim_PBI

Debido a que utiliza la función Todos, debe agregar un filtro 'Tabla'[Agente de ventas]=MAX('Tabla'[Agente de ventas]) en su código para calcular la suma 'Producto activo' para cada Agente de ventas.

Other Active Products =
VAR _SELECTVALUE =
    SELECTEDVALUE ( 'Table'[Product] )
VAR _SUM =
    CALCULATE (
        SUM ( 'Table'[Active Product] ),
        FILTER (
            ALL ( 'Table' ),
            'Table'[Product] <> _SELECTVALUE
                && 'Table'[Sales Agent] = MAX ( 'Table'[Sales Agent] )
        )
    )
RETURN
    _SUM

El resultado es el siguiente.

1.png

Saludos
Rico Zhou

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Muchas gracias por la solución 🙂

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.