Forum Discussion

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

Filtrado condicional

Hola a todos,

Soy bastante nuevo en Power BI Desktop y le daría su ayuda.

Creé un gráfico de barras simple con meses y ventas. También creé una cortadora basada en meses. Estoy tratando de hacer que este escenario suceda:

Si elijo "Octubre" en la cortadora quiero que la carta del bar me zapee sólo "Julio", "Julio", "Agosto" y "Septiembre".

Si elijo "Junio" en la cortadora quiero que la carta del bar me zapee sólo "Marzo", "Abril", "Mayo" y "Junio".

De lo contrario, el gráfico de barras mostrará el valor que elegí en la segmentación de datos.

¿Alguna idea de cómo debo hacerlo realidad?

¡gracias!

  • Ahí @Gmiro767,

    En primer lugar, debe crear una tabla independiente para el filtrado de segmentación de datos.

    image.png

    A continuación, pruebe la siguiente fórmula para crear la medida:

    Measure = 
    var MonthNo = SELECTEDVALUE('Slicer Table'[month_no])
    var _6_10 = 
        CALCULATE(
            SUM('Table'[Sales]),
            FILTER(
                'Table',
                'Table'[Month_No] in { MonthNo, MonthNo-1, MonthNo-2, MonthNo-3 }
            )
        )
    var other = 
        CALCULATE(
            SUM('Table'[Sales]),
            'Table'[Month_No] = MonthNo
        )
    return 
        SWITCH(
            MonthNo, 
            10, _6_10, 
            6,_6_10,
            BLANK(), SUM('Table'[Sales]),
            other
        )

    image.pngimage.png

    Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.

    Saludos
    Winniz

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

5 Replies

  • ¿Así que si eliges "Mayo" sólo quieres ver a May?

    Deberá establecer la segmentación de datos en una tabla no relacionada y, a continuación, puede usar DAX para realizar el filtrado. Una instrucción SWITCH funcionaría, de lo contrario podría usar una relación y una tabla de asignación, pero eso podría ser más complejo.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Sí, si elijo Mayo me gustaría ver sólo mayo.

      ¿Puede demostrar para mí cómo funciona realmente?

      ¡Muchas gracias!

  • Ahí @Gmiro767,

    En primer lugar, debe crear una tabla independiente para el filtrado de segmentación de datos.

    image.png

    A continuación, pruebe la siguiente fórmula para crear la medida:

    Measure = 
    var MonthNo = SELECTEDVALUE('Slicer Table'[month_no])
    var _6_10 = 
        CALCULATE(
            SUM('Table'[Sales]),
            FILTER(
                'Table',
                'Table'[Month_No] in { MonthNo, MonthNo-1, MonthNo-2, MonthNo-3 }
            )
        )
    var other = 
        CALCULATE(
            SUM('Table'[Sales]),
            'Table'[Month_No] = MonthNo
        )
    return 
        SWITCH(
            MonthNo, 
            10, _6_10, 
            6,_6_10,
            BLANK(), SUM('Table'[Sales]),
            other
        )

    image.pngimage.png

    Si el problema aún no se ha resuelto, proporcione información detallada sobre errores o el resultado esperado que espera. Hágamelo saber inmediatamente, esperando su respuesta.

    Saludos
    Winniz

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