Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Problema con DATESINPERIOD

Hola, chicos

En primer lugar, lamento la falta de datos de prueba o incluso de un archivo pbix, intenté replicar el problema en un informe de prueba para poder demostrárselo, pero no puedo replicar el problema.

El problema:

En muchos de nuestros informes, tenemos una función DAX que se usa en todo momento, permite a un usuario seleccionar un mes de una segmentación de datos y, a continuación, un gráfico muestra 13 meses consecutivos a partir de la fecha seleccionada. El DAX para hacer esto es:

Quote Count Dynamic 13M = 
// get the selected date
VAR __selectedDate =
    MAX ( 'Time'[Date] )
// create a date table        
VAR __dates = 
        DATESINPERIOD('Time (previous months)'[CalendarDate],
        __selectedDate,
        -13,
        MONTH)
VAR __result = 
        CALCULATE([Quote Count],
            REMOVEFILTERS('time'),
            KEEPFILTERS(__dates),
            USERELATIONSHIP('Time (previous months)'[date], 'time'[date]))
RETURN
__result

De repente, cuando un usuario selecciona Dic-2023, el gráfico está en blanco, pero extrañamente esto no está sucediendo en todos nuestros informes. No hay coherencia, el DAX es idéntico en todos los informes, al igual que la relación entre las tablas de fechas.

He identificado que es la variable __dates que no devuelve datos cuando un usuario selecciona Dic-2023, para Nov-2023 __dates tiene 13 filas, pero para Dic-2023 __dates es nula.

¿Alguien tiene alguna sugerencia?

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Reemplace este fragmento de código por el siguiente

VAR __dates = 
        DATESINPERIOD('Time (previous months)'[CalendarDate],
        __selectedDate,
        -13,
        MONTH)

Para

VAR __dates = 
        DATESBETWEEN('Time (previous months)'[CalendarDate]
        ,EDATE(__selectedDate,-13),__selectedDate)

@Ahmedx , gracias. Esto funciona. ¿Pero cómo? ¿Es un error o estoy siendo estúpido?

Syndicate_Admin
Administrator
Administrator

Reemplace este fragmento de código por el siguiente

VAR __dates = 
        DATESINPERIOD('Time (previous months)'[CalendarDate],
        __selectedDate,
        -13,
        MONTH)

Para

VAR __dates = 
        DATESBETWEEN('Time (previous months)'[CalendarDate]
        ,EDATE(__selectedDate,-13),__selectedDate)

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.