Reply
Syndicate_Admin
Administrator
Administrator
Syndicated - Inbound

Las columnas calculadas no funcionan debido a la dependencia circular

Source Community: Power BI | Source Author Name: o59393

Hola

Estoy haciendo dos columnas calculadas y estoy recibiendo un error de dependencia circular en una de ellas.

Lacolumna 'Capacidad Real' es básicamente una multiplicación de =

[BPM Conversion Real] * [Mezcla por producto] * Columna de horas máximas * Columna de horas CIP

Y losmúltiploscolumm del ' Objetivo de Capacidad ' =

[Objetivo de conversión de BPM] * [Mezcla por producto] * Columna de horas máximas * Columna de horas CIP
o59393_0-1631473846235.png

¿Cómo puedo hacer que funcione?

Pbix se adjunta a continuación:

https://1drv.ms/u/s!ApgeWwGTKtFdh13Pj8JD18lE9HC8?e=3362I6

Saludos.

1 ACCEPTED SOLUTION

Source Community: Power BI | Source Author Name: mahoneypat
Syndicated - Inbound

Esta expresión de columna evita el error, pero definitivamente lo aliento a que corrija su modelo. Modelo simple, dax simple.

Objetivo de capacidad =
DÓNDE bpmgoal =
CALCULAR (
[Objetivo de conversión de BPM],
ELIMINARFILTROS ( 'SKU por línea - Oficial'[Capacidad Real] )
)
DÓNDE mezclar =
CALCULAR (
[Mezcla por producto],
ELIMINARFILTROS ( 'SKU por línea - Oficial'[Capacidad Real] )
)
DÓNDE resultadoado =
SI (
'SKU por línea - Oficial'[Mes] = 1,
(
bpmgoal * mezclar
* RELACIONADO ( 'Horas por línea - Oficial'[Tiempo máximo disponible Enero (horas) [Días naturales - Días no laborables) * # de turnos máximos posibles * horas por **bleep**] )
* RELACIONADO ( 'Horas por línea - Oficial'[Total de horas con descuento (CIP y Cambios de moho) - Enero] )
) * 60,
SI (
'SKU por línea - Oficial'[Mes] = 2,
(
bpmgoal * mezclar
* RELACIONADO ( 'Horas por línea - Oficial'[Tiempo máximo disponible Febrero (horas) [Días naturales - Días no laborables) * # de turnos máximos posibles * horas por **bleep**] )
* RELACIONADO ( 'Horas por línea - Oficial'[Total de horas con descuento (CIP y Cambios de moho) - Febrero] )
) * 60,
0
)
)
DEVOLUCIÓN
resultado

Palmadita

View solution in original post

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

Source Community: Power BI | Source Author Name: mahoneypat
Syndicated - Inbound

Miré su archivo y comenté partes de su expresión para ver cuál está causando el error de dependencia. Tanto la parte de medidas como las partes de LOOKUPVALUE lo causan. Al observar sus columnas, tiene varias columnas pivotadas que tienen datos similares (por ejemplo, datos de enero y febrero). Realmente debería mejorar su modelo (unpivot y configurar relaciones 1: M con filtros de una sola dirección). Tener un modelo más simple conduce a un DAX más simple.

Palmadita

Source Community: Power BI | Source Author Name: o59393
Syndicated - Inbound

Hay @mahoneypat

Correcto, tengo varias columnas pivotadas en la tabla 'Horas por línea'. De enero a diciembre. Lo sigo siendo así porque me permite mantener la columna 'Plant-Line-Package' con valores únicos y hacer el puente entre tablas.

Cambié mi relación de 1:M:

o59393_0-1631476167641.png

Intenté usar el cálculo debajo de la instrucción IF, pero aún muestra rojo:

o59393_1-1631476288254.png

¿Puedes asesorarte más?

¡Gracias!

Source Community: Power BI | Source Author Name: o59393
Syndicated - Inbound

Hay @mahoneypat

¿Puede por favor aconsejarme más una vez que cambie a 1:M?

¿Cómo puedo hacer que este error de dependencia circular funcione?


Gracias.

Source Community: Power BI | Source Author Name: mahoneypat
Syndicated - Inbound

Lo miré un poco más, pero este modelo necesita mucho trabajo. Podría evitar el error circ usando REMOVEFILTERS con las dos medidas, pero el LOOKUPVALUES en varias columnas calculadas también está causando un error circ. Debe mejorar su modelo y/o considerar el uso de RELATED para obtener un valor de la otra tabla en lugar de LOOKUPVALUE.

Palmadita

Source Community: Power BI | Source Author Name: o59393
Syndicated - Inbound

Hay @mahoneypat

Lo cambié a RELACIONADO. Por favor, eche un vistazo al pbix.

Saludos

Source Community: Power BI | Source Author Name: mahoneypat
Syndicated - Inbound

Esta expresión de columna evita el error, pero definitivamente lo aliento a que corrija su modelo. Modelo simple, dax simple.

Objetivo de capacidad =
DÓNDE bpmgoal =
CALCULAR (
[Objetivo de conversión de BPM],
ELIMINARFILTROS ( 'SKU por línea - Oficial'[Capacidad Real] )
)
DÓNDE mezclar =
CALCULAR (
[Mezcla por producto],
ELIMINARFILTROS ( 'SKU por línea - Oficial'[Capacidad Real] )
)
DÓNDE resultadoado =
SI (
'SKU por línea - Oficial'[Mes] = 1,
(
bpmgoal * mezclar
* RELACIONADO ( 'Horas por línea - Oficial'[Tiempo máximo disponible Enero (horas) [Días naturales - Días no laborables) * # de turnos máximos posibles * horas por **bleep**] )
* RELACIONADO ( 'Horas por línea - Oficial'[Total de horas con descuento (CIP y Cambios de moho) - Enero] )
) * 60,
SI (
'SKU por línea - Oficial'[Mes] = 2,
(
bpmgoal * mezclar
* RELACIONADO ( 'Horas por línea - Oficial'[Tiempo máximo disponible Febrero (horas) [Días naturales - Días no laborables) * # de turnos máximos posibles * horas por **bleep**] )
* RELACIONADO ( 'Horas por línea - Oficial'[Total de horas con descuento (CIP y Cambios de moho) - Febrero] )
) * 60,
0
)
)
DEVOLUCIÓN
resultado

Palmadita

Source Community: Power BI | Source Author Name: o59393
Syndicated - Inbound

¡Impresionante @mahoneypat funcionó! !

Probé su consejo para hacer el modelo más simple. Así que no voté las columnas:

o59393_0-1631583389976.png

¿Una relación M:M causó que era la única forma de unir las tablas?

o59393_1-1631585496641.png

Y luego actualicé el código con filtro:

Capacity Real = 

IF (
'SKU by line - Official'[Month] = 1,
(
[BPM Conversion Real] * [Mix by product]
* 
FILTER(
    'Hours by line - Official',
RELATED( 
    'Hours by line - Official'[Attribute]) = "Hours by line - Official'[Max available time January (hours) [Calendar days - Non working days) * # of max shifts possible * hours per **bleep**]"
)
* 
FILTER(
    'Hours by line - Official',
RELATED( 
    'Hours by line - Official'[Attribute]) = "Hours by line - Official'[Total hours to discount (CIP and Mold Changes) - January]"
)
) * 60,
IF (
'SKU by line - Official'[Month] = 2,
(
[BPM Conversion Real] * [Mix by product]
* 
FILTER(
    'Hours by line - Official',
RELATED( 
    'Hours by line - Official'[Attribute]) = "Hours by line - Official'[Max available time February (hours) [Calendar days - Non working days) * # of max shifts possible * hours per **bleep**]"
)
* 
FILTER(
    'Hours by line - Official',
RELATED( 
    'Hours by line - Official'[Attribute]) = "Hours by line - Official'[Total hours to discount (CIP and Mold Changes) - February]"
)
) * 60,
0
)
)

Recibí el siguiente error:

La columna 'Horas por línea - Oficial[Atributo]' no existe o no tiene relación con ninguna tabla disponible en el contexto actual.

En caso de que quieras echar un vistazo al pbix con las columnas no votadas.

¡Todavía resolviste mi problema original y realmente aprecio tu ayuda!

Source Community: Power BI | Source Author Name: o59393
Syndicated - Inbound

Hay @mahoneypat

Ok, déjame intentar usar RELATED en su lugar y volver a ti.

Gracias.

Syndicate_Admin
Administrator
Administrator

Source Community: Power BI | Source Author Name: mahoneypat
Syndicated - Inbound

Vea cómo eliminar filtros de sus columnas dependientes en este artículo / video.

Evitar errores de dependencia circular en DAX - SQLBI

Palmadita

Source Community: Power BI | Source Author Name: o59393
Syndicated - Inbound

Hay @mahoneypat


Por lo que he visto tengo que usar Calculate y AllExcept, tan pronto como use calculate mi columna va así:

o59393_0-1631474632995.png

No estoy seguro de qué debo excluir con todos los AllExcept.

La columna de capacidad se calcula con 2 medidas y 2 columnas de la otra tabla.

Gracias.

avatar user

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)