Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
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?
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?
Consulte lo siguiente
https://www.youtube.com/watch?v=ED1g4-RvLOs&ab_channel=taik18-MohammedAdnan
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)