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.
Esta es mi mesa biiiiig. Contiene todos los cambios realizados en una tabla de base de datos junto con la fecha.
No necesito importar toda la mesa. Sólo necesito el valor "Status" de cada "Nombre" en dos fechas específicas - 20190902 y 20191002. Así es como la tabla debe verse después de importarla:
¿Qué código M lo haría?
Solved! Go to Solution.
Después de todo el día de pensamiento, prueba y error, se me ocurrió algo aceptable. El código M no es tan difícil como DAX. Me gusta. Felicidades a @SteveCampbell que me animó a probar la interfaz de usuario.
let
Source = Excel.Workbook(File.Contents("C:\Temp\PBI_example.xlsx"), null, true),
Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Table1_Table,{{"Date", Int64.Type}, {"Name", type text}, {"Status", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "DateGroup", each if [Date] <= 20191002 then
if [Date] <= 20190902
then 20190902
else 20191002
else 0),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Added Custom", {{"Date", type text}}, "en-US"),{"Date", "Status"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"DateStatus"),
#"Grouped Rows" = Table.Group(#"Merged Columns", {"Name", "DateGroup"}, {{"MaxDateStatus", each List.Max([DateStatus]), type text}}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Grouped Rows", "MaxDateStatus", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"MaxDateStatus.1", "MaxDateStatus.2"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"MaxDateStatus.1", Int64.Type}, {"MaxDateStatus.2", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"MaxDateStatus.1"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"DateGroup", "Name", "MaxDateStatus.2"})
in
#"Reordered Columns"
Esto muestra el estado solo si se ha cambiado de la marca de tiempo anterior. Podré calcular el estado restante con Power BI. Usando este código M sólo importaré los datos que necesito, evitando toneladas de filas inútiles.
Después de todo el día de pensamiento, prueba y error, se me ocurrió algo aceptable. El código M no es tan difícil como DAX. Me gusta. Felicidades a @SteveCampbell que me animó a probar la interfaz de usuario.
let
Source = Excel.Workbook(File.Contents("C:\Temp\PBI_example.xlsx"), null, true),
Table1_Table = Source{[Item="Table1",Kind="Table"]}[Data],
#"Changed Type" = Table.TransformColumnTypes(Table1_Table,{{"Date", Int64.Type}, {"Name", type text}, {"Status", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "DateGroup", each if [Date] <= 20191002 then
if [Date] <= 20190902
then 20190902
else 20191002
else 0),
#"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Added Custom", {{"Date", type text}}, "en-US"),{"Date", "Status"},Combiner.CombineTextByDelimiter(";", QuoteStyle.None),"DateStatus"),
#"Grouped Rows" = Table.Group(#"Merged Columns", {"Name", "DateGroup"}, {{"MaxDateStatus", each List.Max([DateStatus]), type text}}),
#"Split Column by Delimiter" = Table.SplitColumn(#"Grouped Rows", "MaxDateStatus", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"MaxDateStatus.1", "MaxDateStatus.2"}),
#"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"MaxDateStatus.1", Int64.Type}, {"MaxDateStatus.2", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"MaxDateStatus.1"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"DateGroup", "Name", "MaxDateStatus.2"})
in
#"Reordered Columns"
Esto muestra el estado solo si se ha cambiado de la marca de tiempo anterior. Podré calcular el estado restante con Power BI. Usando este código M sólo importaré los datos que necesito, evitando toneladas de filas inútiles.
@Zyg_D , al agregar una conexión desde la base de datos puede dar una consulta (bajo propiedad anticipada). Para esta tabla, cree una conexión y agregue la consulta.
@amitchandak escribió:@Zyg_D, al agregar una conexión desde la base de datos puede dar una consulta (bajo propiedad anticipada). Para esta tabla, cree una conexión y agregue la consulta.
Hola, @amitchandak . Gracias por la captura de pantalla. La fuente principal de los datos es, de hecho, la base de datos. Sin embargo, obtengo estos datos de un flujo de datos de Power BI. Esta opción no me permite introducir una consulta SQL. Supongo, la única opción que tengo es el código M? Quiero subrayar que no quiero importar toda la tabla en mi modelo.
No es necesario escribir el código específicamente, cargarlo en la interfaz de usuario y el usuario de los filtros en los encabezados de columna.
Did I answer your question? Mark my post as a solution! Proud to be a Super User!
Connect with me!
Stay up to date on
Read my blogs on
@SteveCampbell escribió:No es necesario escribir el código específicamente, cargarlo en la interfaz de usuario y el usuario de los filtros en los encabezados de columna.
Puede que tengas razón. Pido ayuda, porque no estoy creando la mesa deseada por mi cuenta. No es un filtro simple. También debe tener en cuenta los datos de otra columna... Intenté agrupar y ordenar en varias columnas, pero hasta ahora no tuve suerte. Le agradecería mucho su ayuda.
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 | |
2 | |
2 | |
2 | |
1 |