Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

[DAX] Complejo (?) Filtrar contexto

Hola a todos,

Estoy luchando para crear un contexto de filtro con las siguientes asamplciones.

1. He simplificado mi modelo de datos para representar mi escenario de la vida real y lo presento en las pantallas a continuación.

KamilSzpyrka_5-1638815357736.png

KamilSzpyrka_3-1638813589746.png

2. Necesito filtrar el hecho de la tablaComprar usando la columna País de dimCountry. El filtro debe pasar por factSales y verificar si Cantidad <> en blanco () Y isPremium = 1. Luego necesita filtrar la tabla dimProduct y finalmente factBuys.

KamilSzpyrka_4-1638813655963.png

3. Realmente me gustaría evitar el uso de ambas direcciones de filtro cruzado, ya que mi modelo original es mucho más complejo y realmente me temo que se bloqueará después de introducirlo.

¡Muchas gracias por cualquier orientación! Kamil

  • Hay @KamilSzpyrka ,

    Creé un archivo pbix de muestra(ver archivo adjunto),verifique si eso es lo que desea. Puede crear una medida como la siguiente para obtener la suma de la cantidad de factBuys base en países seleccionados ...

    nAmount = 
    VAR _selcountry =
        SELECTEDVALUE ( 'dimCountry'[CountryID] )
    VAR _products =
        CALCULATETABLE (
            VALUES ( 'factSales'[ProductID] ),
            FILTER (
                'factSales',
                'factSales'[CountryID] = _selcountry
                    && 'factSales'[isPremium] = 1
                    && NOT ( ISBLANK ( 'factSales'[Amount] ) )
            )
        )
    RETURN
        CALCULATE (
            SUM ( 'factBuys'[Amount] ),
            FILTER ( 'factBuys', 'factBuys'[ProductID] IN _products )
        )

    Saludos

3 Replies

  • @KamilSzpyrka en lugar de crear la dirección del filtro cruzado para ambos, puede escribir una medida y en esa medida puede forzar la dirección del filtro cruzado a ambos:

    New Measure = 
    CALCULATE (  
       [Your Measure], 
       CROSSFILTER ( FactSales[ProductId], dimProduct[ProductId], both ),
       <<add other conditions here>>
    )
      

    Síguenos en LinkedIn (en ingle

    Más información sobre el formato condicional en Microsoft Reactor

    Mi última entrada de blog El poder de usar grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Yo lo haría Elogios si mi solución ayudó. 👉 Si puede dedicar tiempo a publicar la pregunta, también puede hacer esfuerzos para felicitar a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

    Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consultoría relacionados con Power BI.

  • Hay @KamilSzpyrka ,

    Creé un archivo pbix de muestra(ver archivo adjunto),verifique si eso es lo que desea. Puede crear una medida como la siguiente para obtener la suma de la cantidad de factBuys base en países seleccionados ...

    nAmount = 
    VAR _selcountry =
        SELECTEDVALUE ( 'dimCountry'[CountryID] )
    VAR _products =
        CALCULATETABLE (
            VALUES ( 'factSales'[ProductID] ),
            FILTER (
                'factSales',
                'factSales'[CountryID] = _selcountry
                    && 'factSales'[isPremium] = 1
                    && NOT ( ISBLANK ( 'factSales'[Amount] ) )
            )
        )
    RETURN
        CALCULATE (
            SUM ( 'factBuys'[Amount] ),
            FILTER ( 'factBuys', 'factBuys'[ProductID] IN _products )
        )

    Saludos