cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Power Participant
Power Participant

m Código - Editor de consultas avanzado - cambiar el origen

Ff

Hello Community - Me gustaría cambiar el origen de mis datos de un archivo de Excel que vive en mi disco duro, a un flujo de datos que hemos creado recientemente.

El reto, es que he creado columnas combinadas, varias transformaciones, etc.... a las columnas de mi tabla, y no quiero volver a hacer todo esto. ¿Hay alguna manera de modificar el código M para que simplemente haga referencia a la nueva fuente.... pero todavía mantiene todas las diversas transformaciones que he hecho? A continuación se muestra un ejemplo del código M del flujo de datos.

Dejar
Fuente: PowerBI.Dataflows(null),
"cc333e94-8511-4f27-a7d2-e782b4eccd6b" ? Source-[workspaceId"cc333e94-8511-4f27-a7d2-e782b4eccd6b"],[Datos],
"ab939b42-7cc8-4583-b91d-9ee159a94932" á "cc333e94-8511-4f27-a7d2-e782b4eccd6b" ,[dataflowId"ab939b42-7cc8-4583-b91d-9ee159a94932"]-[Datos],
ShippedOrdersALL_Query1 "ab939b42-7cc8-4583-b91d-9ee159a94932" ?[entity"ShippedOrdersALL_Query"]-[Datos]
En
ShippedOrdersALL_Query1

1 ACCEPTED SOLUTION

@texmexdragon - OK, aquí va:

let
Source = PowerBI.Dataflows(null),
#"cc333e94-8511-4f27-a7d2-e782b4eccd6b" = Source{[workspaceId="cc333e94-8511-4f27-a7d2-e782b4eccd6b"]}[Data],
#"ab939b42-7cc8-4583-b91d-9ee159a94932" = #"cc333e94-8511-4f27-a7d2-e782b4eccd6b"{[dataflowId="ab939b42-7cc8-4583-b91d-9ee159a94932"]}[Data],
ShippedOrdersALL_Query1 = #"ab939b42-7cc8-4583-b91d-9ee159a94932"{[entity="ShippedOrdersALL_Query"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(ShippedOrdersALL_Query1, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Net Price", Currency.Type}, {"ChinaOrder", type logical}, {"EMEAOrder", type logical}, {"MunichOrder", type logical}, {"MEXOrder", type logical}, {"Market", type text}, {"Region", type text}, {"Team ID", type text}, {"Team Name", type text}, {"Due Date", type date}, {"Taken By", type text}, {"Order Date", type date}, {"Item", type text}, {"Order", type text}, {"Customer", type text}, {"Bill to ST", type text}, {"Bill to ZIP", type text}, {"Bill to Country", type text}, {"Ship To Address", type text}, {"Ship To City", type text}, {"ShipTo State", type text}, {"Ship To ZIP", type text}, {"Ship To Country", type text}, {"Salesperson", type text}, {"End User Type", type text}, {"Status", type text}, {"Date Shipped", type date}, {"Family Code", type text}, {"Product Code", type text}, {"Line", type text}, {"Credit Hold", type logical}, {"Description", type text}, {"Name", type text}, {"Qty Shipped", Int64.Type}}),
#"Appended Query" = Table.Combine({#"Changed Type", #"Flu Shipped 2019"}),
#"Added Conditional Column" = Table.AddColumn(#"Appended Query", "Custom", each if [Date Shipped] <> null then "Ordered-Shipped" else "Ordered-Not Shipped"),
#"Renamed Columns" = Table.RenameColumns(#"Added Conditional Column",{{"Custom", "Shipped Status"}}),
#"Changed Type3" = Table.TransformColumnTypes(#"Renamed Columns",{{"Shipped Status", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type3",{"Net Price", "derTotPrice", "Total Price", "Total Price_1"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns",{{"Line", Int64.Type}, {"Shipped Price", Currency.Type}}),
#"Replaced Value15" = Table.ReplaceValue(#"Changed Type2","TYLERS","Tyler Sandison",Replacer.ReplaceText,{"Salesperson"}),
#"Duplicated Column1" = Table.DuplicateColumn(#"Replaced Value15", "Date Shipped", "Date Shipped - Copy"),
#"Renamed Columns2" = Table.RenameColumns(#"Duplicated Column1",{{"Date Shipped - Copy", "Date Shipped Month"}}),
#"Extracted Month" = Table.TransformColumns(#"Renamed Columns2",{{"Date Shipped Month", Date.Month, Int64.Type}}),
in
#"Renamed Columns1"

---------------------------------------

@ me in replies or I'll lose your thread!!!

I have a NEW book! 
DAX Cookbook from Packt
Over 120 DAX Recipes!




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

Proud to be a Super User!




View solution in original post

6 REPLIES 6
Super User IV
Super User IV

@texmexdragon - Entonces, en teoría sí. Parece que tiene su consulta de flujo de datos y tiene su consulta de Excel. Vaya al Editor avanzado en la consulta de flujo de datos y copie la línea origen y las 2 líneas siguientes. así que:

Fuente: PowerBI.Dataflows(null),
"cc333e94-8511-4f27-a7d2-e782b4eccd6b" ? Source-[workspaceId"cc333e94-8511-4f27-a7d2-e782b4eccd6b"],[Datos],
"ab939b42-7cc8-4583-b91d-9ee159a94932" á "cc333e94-8511-4f27-a7d2-e782b4eccd6b" ,[dataflowId"ab939b42-7cc8-4583-b91d-9ee159a94932"]-[Datos],
ShippedOrdersALL_Query1 "ab939b42-7cc8-4583-b91d-9ee159a94932" ?[entity"ShippedOrdersALL_Query"]-[Datos]

Ahora, vaya a su consulta de Excel en el Editor avanzado y reemplace la línea Origen y probablemente Navegación por las que copió. Agregue una coma "," después de la última línea que pegue. En el siguiente paso a continuación donde pegó, cambie la referencia a la fila para que sea "ShippedOrdersALL_Query1" donde anteriormente era el paso de navegación.

Si puede publicar las primeras 10 líneas más o menos de su consulta de Excel, probablemente pueda ser muy específico.


---------------------------------------

@ me in replies or I'll lose your thread!!!

I have a NEW book! 
DAX Cookbook from Packt
Over 120 DAX Recipes!




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

Proud to be a Super User!




Gracias @Greg_Deckler

Ok, así que aquí están las primeras líneas de la consulta M (archivo Excel como código fuente). (También he añadido la declaración "in"... pero, por supuesto, se refiere a la última línea de mi declaración total de "dejar"... que no se muestra en su totalidad aquí).

Dejar
Fuente: Excel.Workbook(File.Contents("C:-Usuarios-d.davis-Osram GmbH-Business Ops Team - Documents-Power Bi Reporting-Flu_Shipped Orders.xlsx"), null, true),
Sheet1_Sheet de origen de la fuente [Artículo"Hoja1","Hoja"]-[Datos],
"Encabezados promocionados" - Table.PromoteHeaders(Sheet1_Sheet, [PromoteAllScalars-true]),
"Tipo de cambio" - Table.TransformColumnTypes('Encabezados promocionados",'Precio neto', 'Currency.Type', ''ChinaOrder', tipo lógico', ''EMEAOrder',''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''escriba logical, "Market", escriba texto, "Región", escriba texto, "ID de equipo", escriba texto, "Nombre del equipo", escriba texto, "Fecha de vencimiento", escriba fecha, "Tomado por", escriba texto, "Fecha de pedido", "Fecha de pedido", escriba la fecha,"Elemento", "Elemento", escriba texto, "Pedido", escriba text, "Bill to ZIP", escriba text, "Bill to Country", escriba text, "Enviar a dirección", escriba texto, "Enviar a la ciudad", escriba texto, "Enviar a estado", escriba texto, escriba texto, escriba texto "Vendedor", escriba texto, "Tipo de usuario final", escriba texto, "Estado", escriba texto, "Fecha enviada", escriba fecha, "Código de familia", escriba texto, "Código de producto", escriba texto, "Línea", escriba texto, "Retención de crédito", "Retención de crédito" , escriba logical, "Description", escriba text, "Name", escriba text, "Qty Shipped", Int64.Type?),
"Consulta anexa" - Table.Combine(-"Changed Type", "Flu Shipped 2019"-),
"Añadida columna condicional" - Table.AddColumn(-"Appended Query", "Custom", each if [Date Shipped] <> null then "Ordered-Shipped" else "Ordered-Not Shipped"),
"Columnas renombradas" - Table.RenameColumns("Añadida columna condicional", "Custom", "Estado enviado" )
"Tipo de cambio3" - Table.TransformColumnTypes("Columnas renombradas","Estado enviado", tipo de texto),
"Columnas eliminadas" - Table.RemoveColumns(-"Changed Type3","Net Price", "derTotPrice", "Total Price", "Total Price_1")),
"Changed Type2" á Table.TransformColumnTypes(''Columnas eliminadas'','Línea', Int64.Type', ''Precio enviado', 'Currency.Type'),
"Valor reemplazado15" - Table.ReplaceValue(-"Changed Type2","TYLERS","Tyler Sandison",Replacer.ReplaceText,'Vendedor"')
"Columna duplicada1" - Table.DuplicateColumn(-"Valor reemplazado15", "Fecha de envío", "Fecha de envío - Copia"),
"Columnas renombradas2" - Table.RenameColumns(-"Duplicated Column1","Fecha enviada - Copia", "Fecha de envío del mes"-),
"Mes extraído" - Table.TransformColumns(-"Columnas renombradas2","Fecha de Mes Enviado", Fecha.Mes, Int64.Type),

En
"Columnas renombradas1"

@texmexdragon - OK, aquí va:

let
Source = PowerBI.Dataflows(null),
#"cc333e94-8511-4f27-a7d2-e782b4eccd6b" = Source{[workspaceId="cc333e94-8511-4f27-a7d2-e782b4eccd6b"]}[Data],
#"ab939b42-7cc8-4583-b91d-9ee159a94932" = #"cc333e94-8511-4f27-a7d2-e782b4eccd6b"{[dataflowId="ab939b42-7cc8-4583-b91d-9ee159a94932"]}[Data],
ShippedOrdersALL_Query1 = #"ab939b42-7cc8-4583-b91d-9ee159a94932"{[entity="ShippedOrdersALL_Query"]}[Data],
#"Promoted Headers" = Table.PromoteHeaders(ShippedOrdersALL_Query1, [PromoteAllScalars=true]),
#"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Net Price", Currency.Type}, {"ChinaOrder", type logical}, {"EMEAOrder", type logical}, {"MunichOrder", type logical}, {"MEXOrder", type logical}, {"Market", type text}, {"Region", type text}, {"Team ID", type text}, {"Team Name", type text}, {"Due Date", type date}, {"Taken By", type text}, {"Order Date", type date}, {"Item", type text}, {"Order", type text}, {"Customer", type text}, {"Bill to ST", type text}, {"Bill to ZIP", type text}, {"Bill to Country", type text}, {"Ship To Address", type text}, {"Ship To City", type text}, {"ShipTo State", type text}, {"Ship To ZIP", type text}, {"Ship To Country", type text}, {"Salesperson", type text}, {"End User Type", type text}, {"Status", type text}, {"Date Shipped", type date}, {"Family Code", type text}, {"Product Code", type text}, {"Line", type text}, {"Credit Hold", type logical}, {"Description", type text}, {"Name", type text}, {"Qty Shipped", Int64.Type}}),
#"Appended Query" = Table.Combine({#"Changed Type", #"Flu Shipped 2019"}),
#"Added Conditional Column" = Table.AddColumn(#"Appended Query", "Custom", each if [Date Shipped] <> null then "Ordered-Shipped" else "Ordered-Not Shipped"),
#"Renamed Columns" = Table.RenameColumns(#"Added Conditional Column",{{"Custom", "Shipped Status"}}),
#"Changed Type3" = Table.TransformColumnTypes(#"Renamed Columns",{{"Shipped Status", type text}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type3",{"Net Price", "derTotPrice", "Total Price", "Total Price_1"}),
#"Changed Type2" = Table.TransformColumnTypes(#"Removed Columns",{{"Line", Int64.Type}, {"Shipped Price", Currency.Type}}),
#"Replaced Value15" = Table.ReplaceValue(#"Changed Type2","TYLERS","Tyler Sandison",Replacer.ReplaceText,{"Salesperson"}),
#"Duplicated Column1" = Table.DuplicateColumn(#"Replaced Value15", "Date Shipped", "Date Shipped - Copy"),
#"Renamed Columns2" = Table.RenameColumns(#"Duplicated Column1",{{"Date Shipped - Copy", "Date Shipped Month"}}),
#"Extracted Month" = Table.TransformColumns(#"Renamed Columns2",{{"Date Shipped Month", Date.Month, Int64.Type}}),
in
#"Renamed Columns1"

---------------------------------------

@ me in replies or I'll lose your thread!!!

I have a NEW book! 
DAX Cookbook from Packt
Over 120 DAX Recipes!




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

Proud to be a Super User!




View solution in original post

@Greg_Deckler Greg - Con tu publicación inicial pude hacer que las cosas funcionaras. Desafío es la nueva tabla de flujo de datos (encabezados de campo) no coinciden con muchos de los encabezados de campo en la antigua tabla de Excel.... pero estoy trabajando a través de ellos uno por uno en el editor de consultas.

En ese estado.... hay una manera de combinar pasos en uno. Este es un ejemplo en vivo que estoy haciendo en este momento. Por cualquier razón, el flujo de datos (que está conectado a través de la API en nuestro sistema ERP cojo) escupe 0 y 1 para lo que se supone que es una columna VERDADERO/FALSO. Por lo tanto, tengo que hacer dos pasos Reemplazar, uno de ellos está a continuación.... para reemplazar el 0 y cambiarlo a FALSE. A continuación, repito este paso una segunda vez para obtener el valor 1... cambio a VERDADERO... entonces puedo cambiar el tipo de columna a TRUE/FALSE.

¿Hay alguna manera de combinar esos dos "pasos de reemplazo"... en un paso en el editor de consultas?

• Table.ReplaceValue(-"Renamed Columns13","0","False",Replacer.ReplaceText,'AR"-)

@texmexdragon - No veo ninguna manera de hacer eso aquí: https://docs.microsoft.com/en-us/powerquery-m/table-replacevalue

Probablemente estás empezando a salir de mi profundidad con Power Query, simplemente hackeo en él. @ImkeF o @edhans podrían ayudar, pero es posible que desee iniciar un nuevo subproceso y convertirlos en él.


---------------------------------------

@ me in replies or I'll lose your thread!!!

I have a NEW book! 
DAX Cookbook from Packt
Over 120 DAX Recipes!




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

Proud to be a Super User!




Hola @texmexdragon ,

la única función de reemplazo que conozco que acepta varios pares de reemplazo es List.ReplaceMatchingItems.

Así que para aplicarlo a los valores escalares, uno tiene que ajustar el código un poco:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlCK1YlWMgSTBkgkUCQWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) ) in type table [Column1 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}}),
    OneStepTransformation = Table.TransformColumns(#"Changed Type", {{"Column1", each List.ReplaceMatchingItems({_}, {{0, false}, {1, true}}){0}}})
in
    OneStepTransformation

Por favor, encuentre el código comentado a continuación que debería ayudar a entender lo que está pasando:

image.png

Imke Feldmann (The BIccountant)

If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!

How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries

Helpful resources

Announcements
secondImage

Happy New Year from Power BI

This is a must watch for a message from Power BI!

December Update

Check it Out!

Click here to read more about the December 2020 Updates!

Community Blog

Check it Out!

Click here to read the latest blog and learn more about contributing to the Power BI blog!

Get Ready for Power BI Dev Camp

Get Ready for Power BI Dev Camp

Mark your calendars and join us for our next Power BI Dev Camp!.

Top Solution Authors