Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and a 50 percent discount on exams.
Get startedEarn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola a todos.
Necesito ayuda para escribir una medida o crear una tabla para resolver mi problema.
Tengo una tabla, donde los datos están en formato plano.
fecha | nombre | grupo | valor |
1 ene | Nombre1 | A | 1 |
3 ene | Nombre1 | A | 2 |
4 ene | Nombre1 | B | 4 |
4 ene | Nombre2 | B | 3 |
Entonces hago Pivot.
fecha | nombre | A | B |
1 ene | Nombre1 | 1 | |
3 ene | Nombre1 | 2 | |
4 ene | Nombre1 | 4 | |
4 ene | Nombre2 | 3 |
Pero en mi tabla los datos se insertan solo cuando se ha cambiado algo, por ejemplo, el valor para algún grupo.
Así que necesito una medida o tabla que para cada nombre muestre los datos más recientes en una columna:
nombre | A | B |
Nombre1 | 2 | 4 |
Nombre2 | 3 | 3 |
Por cierto, tengo 140 columnas después de pivotar, si es importante.
Por lo tanto, es muy similar a la dinámica habitual, pero la función de agregación es seleccionar los datos más recientes.
Sería muy apreciado para cualquier ayuda.
Solved! Go to Solution.
No @wokroll
Puede filtrar la tabla para mantener solo las filas con los datos más recientes y, a continuación, hacer pivotar como lo hizo. A continuación se muestran los pasos.
En primer lugar, agrupe la tabla por columna Nombre y Grupo, agregando Todas las filas en una columna AllData.
En segundo lugar, agregue una columna personalizada para filtrar cada valor de tabla en la columna AllData. De este modo, cada valor de tabla seguirá siendo sólo la fila de datos más reciente.
En tercer lugar, quite las columnas excepto la columna Personalizada. A continuación, expanda Columna personalizada. Obtendrá una tabla filtrada que solo permanecen los datos más recientes. Puedes pivotarlo como lo hiciste.
Puede pegar los códigos siguientes en una consulta en blanco para ver todos los pasos.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMtQ11zVU0lHyS8xNBdGOQGyoFKsDlzRGkzRCljRBknQCYhNskkZQSWNckiBjTZViYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Name = _t, Group = _t, Value = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Name", type text}, {"Group", type text}, {"Value", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Name", "Group"}, {{"AllData", each _, type table [Date=nullable date, Name=nullable text, Group=nullable text, Value=nullable number]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each let newestDate = List.Max([AllData][Date]) in Table.SelectRows([AllData],each [Date]=newestDate)),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}),
#"Expanded Custom" = Table.ExpandTableColumn(#"Removed Other Columns", "Custom", {"Date", "Name", "Group", "Value"}, {"Date", "Name", "Group", "Value"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Date"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Group]), "Group", "Value", List.Sum)
in
#"Pivoted Column"
saludos
Equipo de soporte de la comunidad _ Jing
Si esta publicación ayuda, por favor acéptala como la solución para ayudar a otros miembros a encontrarla.
@wokroll no es necesario dinamizar los datos, manténgalo sin dinamizar, todas las dos medidas siguientes:
Latest Value =
VAR __t = MAX ( 'Table'[Date] )
RETURN
CALCULATE ( SUM ( 'Table'[ Value] ), 'Table'[Date] = __t )
New Value = SUMX ( SUMMARIZE ('Table', 'Table'[ Name ], 'Table'[Group] ), [Latest Value] )
En el objeto visual de matriz, use Nombre en filas Grupo en columnas y Nueva medida de valor en valor y obtendrá el resultado.
✨ Síguenos en LinkedIn
Consulta mi última entrada de blog La potencia del uso de grupos de cálculo con relaciones inactivas (Parte 1) (perytus.com) Me gustaría ❤ elogios si mi solución ayudó. 👉 Si puede pasar tiempo publicando la pregunta, también puede hacer esfuerzos para dar Felicitaciones a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!
⚡ Visítenos en https://perytus.com, su ventanilla única para proyectos, formación y consultoría relacionados con Power BI.⚡
Gracias por su ayuda. Se ve muy bien.
Pero desafortunadamente me di cuenta de que necesito hacerlo como una tabla en Power Query. Porque más adelante tendré que hacer algunas transformaciones que solo están disponibles en Power Query (pivotar, buscar números).
¿Es posible hacer eso en Power Query?
No @wokroll
Puede filtrar la tabla para mantener solo las filas con los datos más recientes y, a continuación, hacer pivotar como lo hizo. A continuación se muestran los pasos.
En primer lugar, agrupe la tabla por columna Nombre y Grupo, agregando Todas las filas en una columna AllData.
En segundo lugar, agregue una columna personalizada para filtrar cada valor de tabla en la columna AllData. De este modo, cada valor de tabla seguirá siendo sólo la fila de datos más reciente.
En tercer lugar, quite las columnas excepto la columna Personalizada. A continuación, expanda Columna personalizada. Obtendrá una tabla filtrada que solo permanecen los datos más recientes. Puedes pivotarlo como lo hiciste.
Puede pegar los códigos siguientes en una consulta en blanco para ver todos los pasos.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMtQ11zVU0lHyS8xNBdGOQGyoFKsDlzRGkzRCljRBknQCYhNskkZQSWNckiBjTZViYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t, Name = _t, Group = _t, Value = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}, {"Name", type text}, {"Group", type text}, {"Value", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Name", "Group"}, {{"AllData", each _, type table [Date=nullable date, Name=nullable text, Group=nullable text, Value=nullable number]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each let newestDate = List.Max([AllData][Date]) in Table.SelectRows([AllData],each [Date]=newestDate)),
#"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}),
#"Expanded Custom" = Table.ExpandTableColumn(#"Removed Other Columns", "Custom", {"Date", "Name", "Group", "Value"}, {"Date", "Name", "Group", "Value"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Date"}),
#"Pivoted Column" = Table.Pivot(#"Removed Columns", List.Distinct(#"Removed Columns"[Group]), "Group", "Value", List.Sum)
in
#"Pivoted Column"
saludos
Equipo de soporte de la comunidad _ Jing
Si esta publicación ayuda, por favor acéptala como la solución para ayudar a otros miembros a encontrarla.
Gracias, que parece una buena idea!