Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
andrea_chiappo
Helper III
Helper III

Anomalía visual de tabla y error de dependencia circular

Esta es una réplica a una pregunta anterior que no se resolvió

Quiero calcular (correctamente) para cada usuario en mi modelo el número de:

ideas propuestas, proyectos involucrados y desafíos involucrados en

Las tablas que estoy usando son las siguientes:

DimUsers[userID] <--> FactIdeas[userID]

DimUsers[userID] <--> FactProjects[userID]

DimUsers[userID] <--> FactChallenges[userID]

(relaciones inactivas)

Pensé en añadir en DimUsers una columna para cada cantidad que quiero calcular .

El problema (por supuesto) es que la dependeción circular lo impide, a pesar de

las indicaciones dadas en

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

Por ejemplo, el primer cálculo con

UsersIdeasCol ? CALCULATE(
IF(
DISTINCTCOUNT(FactIdeas[ideaID])-0,
0,
DISTINCTCOUNT(FactIdeas[ideaID])
),
FILTER(ALLNOBLANKROW(FactIdeas[factIdeasTypeID]),
FactIdeas[factIdeasTypeID]-2),
USERELATIONSHIP(DimUsers[userID], FactIdeas[userID])
)
calcula correctamente el número de ideas creadas por cada usuario,
dada por la condición de filtro en factIdeasTypeID-2
(Tenga en cuenta el uso de ALLNOBLANKROW como se sugiere en el sitio web de sqlbi!)
Tratando de calcular el número de proyectos, usando la fórmula ligeramente diferente
UsersProjectsCol ? CALCULATE(
IF(
DISTINCTCOUNT(FactProjects[projectID])-0,
0,
DISTINCTCOUNT(FactProjects[projectID])
),
FILTER(ALLNOBLANKROW(FactProjects[factProjectsTypeID]),
FactProjects[factProjectsTypeID]-2),
USERELATIONSHIP(DimUsers[userID], FactProjects[userID])
)
me da el error:
Se detectó una dependencia circular: DimUsers[UsersProjectsCol], DimUsers[UsersIdeasCol], DimUsers[UsersProjectsCol].
Probé dos soluciones diferentes
1) siguiendo la sugerencia dada en muchas respuestas similares,
Pensé en calcular Medidas en lugar de columnas.
Sin embargo, esto es lo que sucede cuando muesto los dos diferentes
objetos en el objeto visual Tabla que muestra DimUsers[name] y DimUsers[role],
(tener una segmentación de datos en el cliente, que controla a los usuarios para que se muestren en la tabla)
utilizando los datos de la columna calculada
Annotation 2020-04-23 142346.jpg
(9 usuarios y 9 ideas distintas)
y cuando muesto también los datos de la medida
Annotation 2020-04-23 142443.jpg
Dispite mostrando el número correcto de ideas, este último claramente no imita
el primero, pero en su lugar muestra a todos los usuarios en DimUsers,por lo que incluso los de
otros clientes. En otras palabras, se pierde el efecto de la segmentación.
¿Por qué sucede esto y cómo puedo remediarlo?
2) Pensé en "engañar" DAX duplicando la tabla DimUsers y añadiendo el
columna calculada adicional en sus réplicas. Esto me sentí como exagerado, pero necesito una solución.
He duplicadoDimUsersCon
DimUsers2 - ADDCOLUMNS(DimUsers, "Dummy", BLANK())
y agregó una columna para calcular el número de proyectos para el usuario, con
UsersProjectsCol ? ...(última fórmula arriba)
Esta vez no hay ningún error de dependecencia circular, pero añadiendo el objeto al objeto visual de la tabla anterior,
muestra para cada usuario todos los proyectos distintos presentes en mi tabla FactProjects.
¿Puede alguien ayudarme a resolver esto, ya sea ayudándome a entender el comportamiento anómalo
de la tabla visual o me ayudan a eliminar el error de dependeción cicular? Muchas gracias
3 REPLIES 3
v-alq-msft
Community Support
Community Support

Hola, @andrea_chiappo

¿Podría compartir algunos datos de ejemplo y los resultados esperados con OneDrive para la Empresa? Enmascarar datos confidenciales antes de cargar,

Mediante el uso de 'Calcular', estamos pidiendo transformar el contenido de la fila actual en un contexto de filtro y esto modifica la lista de dependencias. Para obtener más información, puede consultar el documento .

Saludos

Allan

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

MFelix
Super User
Super User

Hola @andrea_chiappo ,

¿Creer que la relación entre la mesa es una correcta para muchos?

¿Cómo está transponiendo la columna a la medida que está haciendo la fórmula exacta?

Tenga en cuenta que las medidas se basan en el contexto, por lo que dependiendo de los parámetros, filtros, columnas, etc. que agregue a la medida y a su visualización el resultado puede ser incorrecto dentro del contexto, cree que eso es lo que está sucediendo en la segunda imagen donde tiene el total correcto pero las líneas no tienen ningún valor.

Mirando whar que está publicando no creo que sea necesario que tenga cálculos complejos en la información para devolver los valores que necesita.

¿Puede compartir algunos datos de muestra o maqueta de PBIX con el resultado esperado? Si informantion es sensible, ¿puede compartirlo a través de un mensaje privado?


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Gracias por su respuesta Félix, que también fue muy teling. Adóndero la sugerencia a la página de SQBLI fue reveladora.

Específicamente, el uso de ALLEXCEPT como primer filtro en CALCULATE hizo la magia

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.