Evitar dependencias circulares en columnas calculadas

Un usuario Pregunto ✅

Anónimo

¡Hola a todos! Tengo una columna calculada que quiero usar en otra columna calculada.

Mi primera columna calc está abajo y se encuentra en la «Tabla de fechas»:

doesExist? = CALCULATE( if(ISBLANK(sum('Store'[DailyProfit]) ),"No","Yes"),CROSSFILTER('Date Table'[Datekey],'Store'[Date],Both))

Aquí estoy comprobando para ver cuando el último día se registró un valor en la columna «DailyProfit» de otra tabla «Store». Se muestra un «Sí» si se registró un valor en una fecha específica y «No» si no.

La segunda columna calc también en «Tabla de fechas»:

Target = 
var _1 = maxx(filter('Date Table',[isL7D?]="Yes"),'Date Table'[Datekey])
return
if('Date Table'[Datekey] >=_1-7 && 'Date Table'[Datekey]<=_1,"Yes","No")

Aquí estoy tratando de agregar «Sí» si hay un «Sí» en la columna «doesExist?» y está dentro de los últimos 7 días del último «Sí» (es decir, está dentro de los últimos 7 días de un valor que se registra en la columna «Store»[DailyProfit]).

Sin embargo, recibo el siguiente error

A circular dependency was detected: Date Table[doesExist?], Date Table[column], Date Table[doesExist?].

Por ejemplo, los datos por favor vea mi pregunta anterior

En respuesta a Anónimo

Hola @ spenot09,

Podría intentar la siguiente expresión para ver si funciona o no.

Target = 
var _1 = maxx(filter('Date Table',RELATED('Table'[Value])<>BLANK()),'Date Table'[Datekey])
return
if('Date Table'[Datekey] >=_1-7 && 'Date Table'[Datekey]<=_1,"Yes","No")

Saludos
Zoe Zhi

Si este post ayuda, entonces considera Aceptar como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Amitchandak

@ spenot09, consulte si esto puede ayudar a

https://www.sqlbi.com/articles/avoiding-circular-dependency-errors-in-dax/

Anónimo

En respuesta a Amitchandak

hola @ amitchandak, gracias por el recurso. Aunque fue interesante, no creo que haya ayudado con mi problema, ya que no puedo incorporar sus soluciones a mi problema.

En respuesta a Anónimo

Hola @ spenot09,

Podría intentar la siguiente expresión para ver si funciona o no.

Target = 
var _1 = maxx(filter('Date Table',RELATED('Table'[Value])<>BLANK()),'Date Table'[Datekey])
return
if('Date Table'[Datekey] >=_1-7 && 'Date Table'[Datekey]<=_1,"Yes","No")

Saludos
Zoe Zhi

Si este post ayuda, entonces considera Aceptar como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anónimo

En respuesta a dax

Hola @dax eso es todo gracias! Tuve que modificarlo ligeramente, ya que tenía una relación de uno a varios entre mi tabla de fechas y la tabla de valores. Así que el DAX se veía así al final:

Target = 
var _1 = maxx(filter('Date Table',sumx(RELATEDTABLE('Table'),'Table'[Value])<>BLANK(), 'Date Table'[Datekey])
return
if('Date Table'[Datekey] >=_1-6 && 'Date Table'[Datekey]<=_1,"Yes","No")

Deja un comentario

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