Problema con la fórmula DAX: no puedo resolverlo

Un usuario Pregunto ✅

bknecht2

Hola a todos,

Tengo un problema para obtener la respuesta correcta de una fórmula DAX y espero que alguien pueda ayudarme; lo he intentado durante días (tengo un archivo de datos de ejemplo adjunto con la respuesta que espero obtener).

Esencialmente, tengo una segmentación que es la relación de fecha activa entre mis tablas de fecha y datos. Estoy tratando de crear una medida SUM simple que resuma los datos del mismo período del año pasado usando un diferente fecha en mi tabla de datos (una relación de fecha inactiva). Hasta este punto estoy bien. Donde me encuentro con problemas es que TAMBIÉN quiero limitar los resultados a las filas donde la relación de fecha activa está dentro de los rangos de fecha de la segmentación (menos 1 año).

A continuación se muestra la medida que estoy escribiendo y me sale EN BLANCO. Se adjunta un archivo de datos de ejemplo que puede explicar mi problema de una mejor manera y tiene el resultado que espero obtener.

Cualquier ayuda aquí sería MUY apreciada.

Enlace al archivo de ejemplo: https://www.dropbox.com/s/plhogyjmkotbg7m/DAX%20Issue%20Example%20Data.pbix?dl=0

TQO's Prior Year = 
CALCULATE([TQO's],
SAMEPERIODLASTYEAR('Date Table'[Date]), 
USERELATIONSHIP(Data[TQO Date],'Date Table'[Date]), 
FILTER(Data,(Data[AQL Date])>=(MIN('Date Table'[Date])-365))) 

lbendlin

En respuesta a bknecht2

TQO's Prior Year = 
var d=min('Date Table'[Date])
var e=EDATE(d,-12)
var c=CALCULATE([TQO's]
,SAMEPERIODLASTYEAR('Date Table'[Date])
,USERELATIONSHIP(Data[TQO Date],'Date Table'[Date])
,Data[AQL Date]>=e)
return c

Nota: Esto le da el resultado deseado pero ignora el valor MAX del control deslizante de fecha.

Nota 2: Tu 365 me hizo reír. Lo reemplazó con el mucho más seguro EDATE (-12)

lbendlin

¿Dices que lo quieres dentro del rango de la segmentación pero luego usas un valor diferente para el cálculo MIN?

bknecht2

En respuesta a lbendlin

Hola,

Lo quiero dentro del rango de la segmentación (la ‘Tabla de fechas'[Date]), pero menos 1 año, por lo tanto, los -365 días de la fecha mínima seleccionada en la segmentación. Básicamente, si el rango de fechas de la segmentación en el archivo de ejemplo es del 1/1/2020 al 5/4/2020, quiero que esta medida (año anterior de TQO) calcule los TQO donde la fecha de TQO está entre el 1/1/2019 y 4/5/2019 y TAMBIÉN DONDE la fecha AQL es entre el 1/1/2019 y el 5/4/2019. Puedo escribir la medida para trabajar hasta la última parte, donde la fecha AQL también está entre el 1/1/2019 y el 5/4/2019.

La medida que me lleva allí sin esa última parte es:

TQO Prior Year = 
CALCULATE([TQO's],
SAMEPERIODLASTYEAR('Date Table'[Date]),
USERELATIONSHIP('Campaign Member'[FCRM__FCR_SQR_Date__c],'Date Table'[Date]))

¿Tiene sentido?

lbendlin

En respuesta a bknecht2

TQO's Prior Year = 
var d=min('Date Table'[Date])
var e=EDATE(d,-12)
var c=CALCULATE([TQO's]
,SAMEPERIODLASTYEAR('Date Table'[Date])
,USERELATIONSHIP(Data[TQO Date],'Date Table'[Date])
,Data[AQL Date]>=e)
return c

Nota: Esto le da el resultado deseado pero ignora el valor MAX del control deslizante de fecha.

Nota 2: Tu 365 me hizo reír. Lo reemplazó con el mucho más seguro EDATE (-12)

bknecht2

En respuesta a lbendlin

@lbendlin – Esto funciona perfectamente, ¡gracias! Pasé horas en esto antes, muy apreciado.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *