Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
2 years ago

Error de dependencia circular

Hola

Me enfrento a un problema extraño al crear un informe.
Aquí están los detalles.

Hay dos cortadoras principales.
1- Año
2- LoB


Aquí hay cuatro medidas principales.
1- OB Inicial = es el saldo inicial de un año. El valor proviene de una mesa pequeña.

2- OB ajustado = si la columna IsFirstMonth = 1, tome el valor de [OB inicial], de lo contrario, el valor de CARR final del mes anterior es el valor de apertura del mes siguiente. por ejemplo, si es el 2º mes, el valor obajustado será [Fin de CARR] del mes anterior. Esto es obtener correctamente el valor del mes anterior como el valor de apertura del mes siguiente.
3- Variación Final: CARR = esta es la venta mensual.

4- Terminación CARR =
si IsFirstMonth = 1,
[OB inicial] + [Variación final CARR ]
más
[OB ajustado] + [CARR de final de variación]
Aquí es donde está el problema.
SI(
_IsFistMonth = 1 && SELECTEDVALUE(Activitylist[Year]) = _SelectedYear,
[OB inicial] + [CARR final de variación], // Para el primer mes,
CALCULAR(
[OB Inicial] + [CARR final de variación] // deberíaser [OB ajustado] + [CARR final de variación] pero muestra un error de dependencia circular.


He intentado diferentes formas, pero el problema sigue ahí.
Necesito ayuda para solucionar esto.
PBIX con datos ficticios se puede descargar aquí > https://drive.google.com/file/d/1oaD8-4JRjDGqKreyCSQjPWndl8NKwxYE/view?usp=sharing

Gracias de antemano

4 Replies

  • Hola@kmax

    Con respecto a la cuestión que planteaste, mi solución es la siguiente:

    1.Basándonos en el archivo pbix que proporcionó, inferimos que la razón por la que tiene un problema de dependencia circular es porque hizo referencia a [Ending CARR Measure] en su [OB Ajustado] measureSin embargo, [OB Ajustado] se cita en [Finalización de la medida CARR], lo que da lugar a una dependencia cíclica.

    Resuelto: Recursividad en DAX - Microsoft Fabric Community

    2.Puede intentar hacer el cálculo en Excel primero y luego importarlo a Power Bi. Esta es, con mucho, la forma más fácil.

    Aquí hay enlaces a los documentos relevantes:

    Cómo crear funciones recursivas en Excel con LAMBDA (spreadsheetweb.com)

    3.También puede implementar esta funcionalidad en powerquery, pero debe esforzarse un poco más:

    Aquí hay enlaces a los documentos relevantes:

    Funciones recursivas en Power Query | Datos de Power BI (enterprisedna.co)

    Saludos

    Leroy Lu

    Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Hola Lu,
      Gracias por los detalles.

      El requisito es realizar todos los cálculos en PowerBI para reducir la dependencia de Excel. Entonces, ¿debo asumir que esto es algo que no es posible con DAX?

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Hola@kmax

        Gracias por su rápida respuesta.

        Sí, su suposición es correcta.

        Si los requisitos implican recursividad, la recursividad no se puede lograr solo con DAX.

        Por supuesto, si tienes otros descubrimientos nuevos, eres bienvenido a compartirlos con nosotros.

        Saludos

        Leroy Lu

        Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente

  • Hola v-linyulu-msft ,

    Aquí está el PBIX actualizado.
    https://drive.google.com/file/d/1Wk4WppXQGYzpSMcIpRiqgYMB0l9TGEHz/view?usp=sharing

    Todavía tengo problemas, pero he logrado obtener el valor del mes anterior como el saldo de apertura del mes siguiente.

    He encontrado dos formas de abordar la dependencia circular.

    Opción 1: uso de la columna calculada

    La columna de saldo final funciona bien hasta el 4º mes.
    A partir del 5º mes, el saldo final muestra un valor incorrecto.
    2024-03
    Columna Saldo final = 1893980
    2024-04
    Columna de venta mensual = -65471

    2024-04 Saldo final =

    1893980-65471=1828509 (valor correcto)
    Pero está mostrando 2055416.
    si restamos
    1828509-2055416 = -226907 (este es el valor de venta del mes de 2024-01.
    El mismo patrón continúa durante el resto de los meses de cualquier año.

    Opción 2 - Uso de medidas
    a partir del 2º mes, el valor ajustado del saldo de apertura se obtiene correctamente del valor de la medida del saldo de cierre del mes anterior.
    Pero la medida de balance de cierre está mostrando una respuesta incorrecta para todos los meses.
    Está haciendo
    Saldo inicial + variación mensual = medida de saldo final
    Esto está bien para el 1er mes. A partir del 2º mes, debe establecer el valor del saldo inicial del saldo de cierre del mes anterior, pero está utilizando el valor del 1er mes del saldo de apertura para todos los meses.

    He establecido los títulos de la Opción 1 y la Opción 2 para ambas matrices para facilitar la entrada en el nuevo PBIX.
    Ahora, me enfrento a un problema para obtener la suma correcta utilizando ambas opciones.

    Gracias