Forum Discussion

HenryJS's avatar
HenryJS
Icon for Post Prodigy rankPost Prodigy
6 years ago
Solved

Multiple Measures Slicer

Hola a todos

¿Cómo puedo crear un filtro que cambie entre las diferentes medidas en el siguiente gráfico?

Quiero ser capaz de seleccionar múltiples medidas a la vez.

Capture.PNG

  • Hola @HenryJS ,

    Puede crear una tabla 'SlicerTable' a través del botón "Enter Data", escribir todos los nombres de las medidas en una columna denominada "MeasureName" una por una, y poner esta columna [MeasureName] en la segmentación de datos para filtrar datos.

    A continuación, puede crear una medida como DAX a continuación, ponerla en el cuadro Valores del gráfico visual.

    SelectedMeasure=
    
    SWITCH(
    
    SELECTEDVALUE('SlicerTable'[MeasureName]),
    
    "Candidate Calls" ,[Candidate Calls],
    
    "Client Calls" ,[Client Calls],
    
    …
    
    )

    Saludos

    Amy

    Equipo de apoyo a la comunidad _ Amy

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

  • @HenryJS

    Como se ha sugerido, necesita una tabla desconectada que muestre los nombres de la medida. Para que el "slicer" sea multiselección (¿es una palabra?), debe crear nuevas medidas para cada una de las medidas enumeradas.

    Para el siguiente ejemplo estoy usando un conjunto de datos simple y la idea es mostrar una combinación seleccionable de 4 medidas.

    1) primero cree la tabla usando la opción "Introducir Datos" en la pestaña Inicio (he llamado a la tabla 'Seleccionar Medida'):

    Create table.JPG

    2) Cree una medida para comprobar si se ha aplicado un filtro:

    Countrows Select Measure = 
    IF(ISFILTERED('Select Measure'[Selected Measure]),
    COUNTROWS(VALUES('Select Measure'[Selected Measure])),
    BLANK())

    También puede utilizar esta medida para crear un meassage de título/texto condicional como advertencia a los usuarios para realizar una selección:

    Warning = IF(ISBLANK([Countrows Select Measure]), "Please Select at Least One Measure!!")

    3) Cree una nueva medida para cada medida que desee mostrar a la que se hace referencia a la tabla de segmentación de datos siguiendo el código:

    Sales 2018 (sel) = 
    VAR calc = COUNTROWS(
        FILTER('Select Measure',
        'Select Measure'[Selected Measure]= "Sales 2018"))
        RETURN
        IF(ISBLANK([Countrows Select Measure]), 
            BLANK() ,
                IF(calc= 1, [Sales 2018], 
                    BLANK()))

    A continuación, puede crear la página del informe con la segmentación de datos y el gráfico de líneas visual utilizando estas nuevas medidas como "Valores".
    Line Chart.JPG

15 Replies

  • PaulDBrown's avatar
    PaulDBrown
    Icon for Community Champion rankCommunity Champion

    @HenryJS

    Como se ha sugerido, necesita una tabla desconectada que muestre los nombres de la medida. Para que el "slicer" sea multiselección (¿es una palabra?), debe crear nuevas medidas para cada una de las medidas enumeradas.

    Para el siguiente ejemplo estoy usando un conjunto de datos simple y la idea es mostrar una combinación seleccionable de 4 medidas.

    1) primero cree la tabla usando la opción "Introducir Datos" en la pestaña Inicio (he llamado a la tabla 'Seleccionar Medida'):

    Create table.JPG

    2) Cree una medida para comprobar si se ha aplicado un filtro:

    Countrows Select Measure = 
    IF(ISFILTERED('Select Measure'[Selected Measure]),
    COUNTROWS(VALUES('Select Measure'[Selected Measure])),
    BLANK())

    También puede utilizar esta medida para crear un meassage de título/texto condicional como advertencia a los usuarios para realizar una selección:

    Warning = IF(ISBLANK([Countrows Select Measure]), "Please Select at Least One Measure!!")

    3) Cree una nueva medida para cada medida que desee mostrar a la que se hace referencia a la tabla de segmentación de datos siguiendo el código:

    Sales 2018 (sel) = 
    VAR calc = COUNTROWS(
        FILTER('Select Measure',
        'Select Measure'[Selected Measure]= "Sales 2018"))
        RETURN
        IF(ISBLANK([Countrows Select Measure]), 
            BLANK() ,
                IF(calc= 1, [Sales 2018], 
                    BLANK()))

    A continuación, puede crear la página del informe con la segmentación de datos y el gráfico de líneas visual utilizando estas nuevas medidas como "Valores".
    Line Chart.JPG

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      ¡Oye, me encanta la solución! Funcionó muy bien para mí con una torcedura ... ¿Cómo puedo ocultar las medidas que no se están seleccionando del visual? (resaltado a continuación)

      Sethj33_0-1633714470750.png

      Estoy usando este método en un formato de matriz, y cuando anulo la selección de la medida, oculta los datos para que no se muestren, pero la etiqueta de fila aún existe (los números reales de la compañía se cubren aquí)

      Sethj33_1-1633714781585.png

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hi PaulDBrown,

      Estoy tratando de implementar su solución, pero sigo encontrándome con el siguiente error. ¿Puedo pedirles su opinión sobre lo que podría estar causando esto?

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Actualmente hay una manera más fácil de lograr esto desde la intorducción a los parámetros de campo en la actualización de PBI Desktop del mes pasado.

        Seleccione la opción "Nuevo parámetro" en Modelado en la cinta de opciones. Elija "Campos" y en la interfaz, elija un nombre, agregue las medidas que necesita a la casilla "Agregar y reordenar campos" y deje marcada la opción "Agregar segmentación de datos a esta página":

        Se agregará una nueva tabla y aparecerá una segmentación de datos en la página del informe. Ahora cree el visual y agregue el campo "Selector de medida" al eje Y para obtener:

        He adjuntado el archivo PBIX de ejemplo

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    @HenryJS Probablemente necesite usar el truco de la tabla desconectada. En general, para usar una medida de esa manera, debe utilizar el truco de tabla desconectado como se muestra en este artículo: https://community.powerbi.com/t5/Community-Blog/Solving-Attendance-with-the-Disconnected-Table-Trick/ba-p/279563

    No estoy seguro de que 100% siga lo que está tratando de hacer sin embargo. Los datos de origen de ejemplo serían útiles junto con las fórmulas de medida.

  • v-xicai's avatar
    v-xicai
    Icon for Community Support rankCommunity Support

    Hola @HenryJS ,

    Puede crear una tabla 'SlicerTable' a través del botón "Enter Data", escribir todos los nombres de las medidas en una columna denominada "MeasureName" una por una, y poner esta columna [MeasureName] en la segmentación de datos para filtrar datos.

    A continuación, puede crear una medida como DAX a continuación, ponerla en el cuadro Valores del gráfico visual.

    SelectedMeasure=
    
    SWITCH(
    
    SELECTEDVALUE('SlicerTable'[MeasureName]),
    
    "Candidate Calls" ,[Candidate Calls],
    
    "Client Calls" ,[Client Calls],
    
    …
    
    )

    Saludos

    Amy

    Equipo de apoyo a la comunidad _ Amy

    Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

    • HenryJS's avatar
      HenryJS
      Icon for Post Prodigy rankPost Prodigy

      v-xicai this works however when I make multiple selections on the filter, it shows no data in the graph. Picture below.

       

      Is there a way to be able to select the required measures and show them in the visual?

       

      Thanks

       

       

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Esto es genial para mí, ¡gracias! ¿También sabe cómo escribir una medida para que el título cambie para reflejar la medida seleccionada en el gráfico?
      muchas gracias Liz

  • v-xicai's avatar
    v-xicai
    Icon for Community Support rankCommunity Support

    Hola @HenryJS ,

    ¿Tienen sentido las sugerencias de los ingenieros? Si es así, marque amablemente la respuesta adecuada como una solución para ayudar a otros que tienen el problema similar y cerrar el caso. Si no, avísame y trataré de ayudarte más.

    Saludos

    Amy

  • Puede probar un enfoque diferente.
    crear una medida en el sentido de:

    medida matricial =
    INTERRUPTOR (

    SELECTEDVALUE (Campo de datos[columna]),

    "% inferior a 20", FORMAT([% menor de 20 medidas], "Porcentaje",

    "Llamadas abandonadas", FORMAT([Medida de llamadas abandonadas], "#,###",

    ....

    )

    (necesita la función FORMAT para cada medida para devolver el formato correcto para cada medida)

    A continuación, cree la matriz utilizando el campo de la tabla Campo de datos, agregue la [medida de matriz] y la segmentación de datos de la tabla de campos de datos