Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
1 year ago

Filtro

Hola
Es necesario crear una medida para mostrar las ventas con las siguientes condiciones.
1) Una matriz visual para mostrar las ventas por trimestre y categoría (2 categorías)
por lo tanto, todas las ventas de trimestres anteriores (ignorando la segmentación de fechas) + las ventas del trimestre actual (entre las fechas seleccionadas) 2) Las ventas deben ser trimestrales (Q1-25, Q2-25)
3) Hay una segmentación de fecha (de la tabla de calendario) con un tipo between. Esta segmentación de fechas solo mostrará las fechas del trimestre actual. Tengo una columna para mostrar el trimestre actual.
En la matriz, quiero mostrar las ventas de todo el trimestre evitando la segmentación de fechas, pero para el trimestre actual, la medida debe calcular dinámicamente las ventas entre la fecha seleccionada.

10 Replies

  • Hola @swalke ,

    Esta es una pregunta complicada, pero te tengo cubierto. Necesita una medida que trate los trimestres anteriores y los trimestres actuales de manera diferente.

    Aquí está la solución:

    Sales Measure = 
    VAR CurrentQuarter = 
        CALCULATE(
            MAX('Calendar'[Quarter]),
            REMOVEFILTERS()
        )
    VAR SelectedQuarter = MAX('Calendar'[Quarter])
    VAR IsCurrentQuarter = SelectedQuarter = CurrentQuarter
    
    RETURN
    IF(
        IsCurrentQuarter,
        -- Current quarter: respect date slicer
        SUM('Sales'[Amount]),
        -- Previous quarters: ignore date slicer
        CALCULATE(
            SUM('Sales'[Amount]),
            REMOVEFILTERS('Calendar'[Date])
        )
    )

    Cómo funciona esto:

    • Para trimestres anteriores (Q1-25, Q2-25, etc.): usa REMOVEFILTERS para omitir completamente la segmentación de fechas
    • Para el trimestre actual: respeta el intervalo de fechas seleccionado en la segmentación
    • La matriz mostrará todos los trimestres, pero solo el actual se verá afectado por las selecciones de fecha

    Alternativa si tiene una marca de cuarto actual:

    Sales Measure = 
    IF(
        MAX('Table'[IsCurrentQuarter]) = 1,
        SUM('Sales'[Amount]),
        CALCULATE(
            SUM('Sales'[Amount]),
            REMOVEFILTERS('Calendar'[Date])
        )
    )

    Pon esta medida en tu matriz con Quarter y Category, y se comportará exactamente como la describiste. Los trimestres anteriores permanecen fijos, el trimestre actual responde a la segmentación de fechas.


    Si mi respuesta resolvió su consulta, márquela como la Solución Aceptada para ayudar a otros. Además, agradecería un 'Felicitaciones' si mi respuesta le resultó útil.

    Esta respuesta fue asistida por AI con fines de traducción y formato.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Gracias por responder,
      Probé ambas versiones del DAX proporcionadas por usted, pero no satisface mi necesidad. El objeto visual de la matriz muestra las ventas solo del trimestre actual y los datos del trimestre anterior no están visibles en la matriz.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hola
      Gracias por su rápida respuesta,
      Desafortunadamente, la medida proporcionada por usted no está satisfaciendo mi necesidad. La medida no puede mostrar trimestres anteriores en la medida.

  • Hola @swalke

    Comparta un conjunto de datos de muestra en un formato utilizable (no una captura de pantalla), junto con el resultado esperado basado en esos datos y su razonamiento detrás de ellos. También puede cargar un archivo de Excel o un archivo PBIX desinfectado a través de un enlace en la nube. Preparar esto puede llevar algún tiempo, pero también lo hace llegar con una solución.

  • Hola @swalke ,


    Este es un desafío bastante clásico en Power BI, ¡y yo mismo me he encontrado con él varias veces! Lo principal es asegurarse de que la matriz siempre muestre todos los trimestres, con los trimestres anteriores ignorando la segmentación de fechas y solo el trimestre actual reaccionando dinámicamente.

    Esto es lo que me ha funcionado:


    1. Asegúrese de que su tabla de Calendario esté completa. Tu tabla de calendario debe cubrir todas las fechas/trimestres que deseas ver, incluso si no hay datos de ventas. Configúrelo como una tabla de fechas adecuada y relaciónelo con su tabla de ventas.

    2. Utilice "Mostrar elementos sin datos" en su matriz: haga clic con el botón derecho en su campo Trimestre en la matriz y seleccione "Mostrar elementos sin datos". Esto asegura que aparezcan todos los trimestres, incluso aquellos con cero ventas.


    3. Utilice una medida DAX como esta:

    Sales Measure =
    VAR CurrentQuarter =
        CALCULATE(MAX('Calendar'[Quarter]), ALLSELECTED('Calendar'))
    VAR SelectedQuarter =
        SELECTEDVALUE('Calendar'[Quarter])
    VAR SelectedYear =
        SELECTEDVALUE('Calendar'[Year])
    RETURN
    IF(
        SelectedQuarter = CurrentQuarter,
        // For current quarter: respect the slicer
        CALCULATE(SUM('Sales'[Amount])),
        // For previous quarters: ignore date slicer
        CALCULATE(
            SUM('Sales'[Amount]),
            ALL('Calendar'),
            'Calendar'[Quarter] = SelectedQuarter,
            'Calendar'[Year] = SelectedYear
        )
    )
    


    Ajuste [Trimestre] y [Año] según sea necesario para su esquema. Si desea utilizar un "Trimestre actual" personalizado (por ejemplo, elegido por una segmentación), puede modificar la lógica anterior.

    4. Coloque Trimestre y Categoría de su tabla de calendario en la matriz (no en la tabla de ventas).

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hola
      Gracias por su rápida respuesta,
      Desafortunadamente, la medida proporcionada por usted no está satisfaciendo mi necesidad. La medida no puede mostrar trimestres anteriores en la medida.

  • Hola @swalke,
    Gracias por publicar su consulta en el foro de la comunidad de Microsoft Fabric. Además, gracias a @rohit1991, @danextian, @burakkaragoz por esos aportes en este hilo.

    Quería comprobar si tuvo la oportunidad de revisar la información proporcionada anteriormente No dude en contactarnos si tiene más preguntas.


    Saludos
    Harshitha.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hola @swalke,
      Espero que los detalles anteriores te ayuden a solucionar el problema. Si aún tiene alguna pregunta o necesita más ayuda, no dude en comunicarse. Siempre estamos aquí para apoyarte.

      Saludos
      Harshitha.

  • Hola @swalke,

    Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.

    Según sus requisitos, la solución final muestra las ventas de todos los trimestres anteriores, independientemente de la segmentación, y solo las ventas del trimestre actual filtradas por fechas seleccionadas mediante una tabla de trimestres desconectada y una medida DAX inteligente. La matriz ahora muestra con precisión los trimestres en filas y las categorías en columnas con valores correctos.

    Lo probé con mis datos de muestra y funcionó bien. Encuentre la captura de pantalla adjunta y Pbix para su referencia.

    Espero que esto ayude si tiene alguna consulta, estaremos encantados de ayudarlo más.
    Saludos
    Harshitha.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      Hola @swalke,
      Quería hacer un seguimiento y ver si ha tenido la oportunidad de revisar la información que se compartió. Si tiene alguna pregunta adicional o necesita más aclaraciones, no dude en comunicarse. Estoy aquí para ayudarlo con cualquier inquietud que pueda tener.

      Saludos
      Harshitha.