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.
Hola
Estoy buscando ayuda con un error de dependencia circular DAX que no puedo lograr evitar. He intentado usar ALLEXCEPT pero no he sido capaz de resolver mi problema. A continuación se muestra una versión simplificada del problema que tengo. He enviado mi código M para la creación de consultas, así como el código de las dos columnas calculadas que estoy buscando hacer. Una columna por sí misma funciona bien
Código M
dejar
Fuente = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XY5LDsAgCAXvwtqcGq67ecWxvtfo4iWFhMlIZM3vFrhgAAYN3mEFGWJKIMRoYWPktEsg7Kn/NIO04yeq3jXuIeft+hpT81LvdOMXquXtZFjpsVR+c9MOi4qu1dn0qMempT6Jw/ZwSKwPQ===", BinaryEncoding.Base64), Compression.Deflate)), deje _t = (texto con valores NULL de tipo) meta [Serialized.Text = true]) en la tabla de tipos [Product = _t, Date = _t, Value1 = _t, Value2 = _t]),
#"Filas ordenadas" = Table.Buffer(Table.Sort(Source,{{"Date", Order.Ascending}})),
#"Filas agrupadas" = Table.Group(#"Filas ordenadas", {"Product"}, {{"Grouped", cada _, tabla de tipos [Product=nullable number, Date=nullable date, Value1=nullable number, Value2=nullable number]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Indexed", cada Table.AddIndexColumn([Grouped],"Index",0,1)),
#"Columnas eliminadas" = Table.RemoveColumns(#"Added Custom",{"Product", "Grouped"}),
#"Expanded {0}" = Table.ExpandTableColumn(#"Columnas eliminadas", "Indexed", {"Product", "Date", "Value1", "Value2", "Index"}, {"Product", "Date", "Value1", "Value2", "Index"}),
#"Tipo cambiado" = Table.TransformColumnTypes(#"Expanded {0}",{{"Product", type text}, {"Date", type date}, {"Value1", Int64.Type}, {"Value2", Int64.Type}, {"Index", Int64.Type}})
en
#"Tipo cambiado"
Dos medidas para las sumas de los dos valores
Suma de valor1 = SUM(Data[Value1])
Suma de Valor2 = SUM(Data[Value2])
Valor1 Cambio =
VAR FirstFilesIndex = CALCULATE(MIN([Index]), FILTER(ALLEXCEPT('Data','Data'[Product]), Data[Index] + 1 =EARLIER('Data'[Index])))
devolución
IF(ISBLANK(FirstFilesIndex), 0, [Sum of Value1] - CALCULATE([Sum of Value1],FILTER(ALLEXCEPT('Data',Data[Product]),'Data'[Index] + 1 =EARLIER(Data[Index]))
Segunda columna calculada para hacer lo mismo con Value2. Aquí es donde aparece la dependencia circular
Cambio de Valor2 =
VAR FirstFilesIndex = CALCULATE(MIN([Index]), FILTER(ALLEXCEPT('Data','Data'[Product]), Data[Index] + 1 =EARLIER('Data'[Index])))
devolución
IF(ISBLANK(FirstFilesIndex), 0, [Sum of Value2] - CALCULATE([Sum of Value2],FILTER(ALLEXCEPT('Data',Data[Product]),'Data'[Index] + 1 =EARLIER(Data[Index])))
Cualquier idea de cómo resolver esto sería apreciada. Si puedo encontrar la manera de enviar mi archivo .pbix estaría más que feliz de si ayuda
Solved! Go to Solution.
Nunca había visto medidas usadas de esta manera. No lo recomiendo.
Así que creo que usted debe reemplazar el uso de las medidas en cada columna con el DAX apropiado - no demasiado complicado de hacer.
El DAX es un poco de viento largo, pero parece que funcionará.
--------------
Avísame cómo te pones
"Sintiéndonos un poco tenues"- Nada de eso por favor, todos aprendemos en este foro. Curiosamente, respondí a una pregunta 5 minutos después y la persona estaba usando medidas en una columna calculada.
En cuanto al DAX, si lo entiendo correctamente, FirstFilesIndex devuelve en blanco si estamos en la fila más temprana para cada producto (luego poner 0 en la columna) pero no necesitamos hacer eso, solo tienes que buscar Data[Index] = 0.
Ya no uso más antes- prefiero las variables. Pero no es un problema.
Es probable que el índice tampoco sea necesario, ya que tiene el campo de fecha. ¿Es un problema de rendimiento? Probablemente no.
Buena suerte.
Nunca había visto medidas usadas de esta manera. No lo recomiendo.
Así que creo que usted debe reemplazar el uso de las medidas en cada columna con el DAX apropiado - no demasiado complicado de hacer.
El DAX es un poco de viento largo, pero parece que funcionará.
--------------
Avísame cómo te pones
Gracias HotChili! Sentirse un poco tenue que era una solución directa. Pero sí, como usted sugirió, la eliminación de las medidas y la sustitución de las referencias a ellas en las columnas calculadas tiene cosas fijas
Por curiosidad, ¿hay alguna recomendación que pueda dar para simplificar el DAX? Parece funcionar bien, pero si hay eficiencias que se podrían hacer sería interesante escuchar
Gracias de nuevo por la respuesta rápida!
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |