es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Slicers aditivos de PowerBI (Aplicados a todo el informe)

Tengo un problema bastante específico en relación con las operaciones de filtro en PowerBI.

Deseo filtrar los datos en función de dos filtros diferentes.

Por ejemplo, tengo dos filtros diferentes:
1. Una lista de categorías, como el género de las películas; y
2. Una lista de todos los directores de cine.

Deseo filtrar los datos mostrados en el informe de PowerBI en función de una condición OR entre los dos filtros.

Por ejemplo, deseo filtrar en función de todas las películas de Horror O películas dirigidas por Quentin Tarantino. Por lo tanto, esta lista mostraría todas las películas de Horror en mi base de datos y todas las películas dirigidas por Quentin Tarantino (que no son necesariamente películas de Horror).

Presumo que necesitaré escribir algún tipo de código DAX para esto, pero a través de una búsqueda exhaustiva no he encontrado este problema en particular.

Déjame saber si necesitas más información.

Saludos,
Josh

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Hola Josh,

    Puedes lograr el resultado que deseas utilizando una combinación de declaraciones condicionales y filtrado con DAX.

    Primero, crea dos medidas separadas para cada slicer. Por ejemplo, si tu primer slicer se basa en el género de películas, crea una medida que devuelva un 1 si la categoría seleccionada coincide con el género de la película y un 0 si no. Puedes utilizar la función SWITCH para esto:

    Filtro de género = 
    VAR SelectedGenre = SELECTEDVALUE('Table'[Género de Película])
    
    RETURN
    SWITCH(
        SelectedGenre,
        "Terror", 1,
        "Acción", 1,
        "Comedia", 1,
        0
        )
    

    De manera similar, crea una medida para el segundo slicer, donde se verifica si el director seleccionado coincide con el director de la película. Por ejemplo:

    Filtro de director =
    VAR SelectedDirector = SELECTEDVALUE('Table'[Director])
    
    RETURN
    SWITCH(
        SelectedDirector,
        "Quentin Tarantino", 1,
        "Christopher Nolan", 1,
        0
        )
    

    Ten en cuenta que los nombres y valores reales dependerán de tus datos y opciones de slicer.

    A continuación, crea una medida final que sume los valores de las dos medidas anteriores y filtre los datos en función de que la suma sea mayor que 0:

    Filtro OR =
    CALCULATE(
        SUM('Table'[Ventas]),
        FILTER(
            ALL('Table'),
            [Filtro de género] + [Filtro de director] > 0
            )
        )
    

    Esto mostrará todas las películas que coincidan con el género seleccionado o el director seleccionado. Luego puedes utilizar esta nueva medida en tus visualizaciones para mostrar los datos filtrados.

    Espero que esto te ayude.
    Hazme saber si necesitas más aclaraciones o ayuda.

    Saludos cordiales,
    [Tu nombre]

Comments are closed.