¿Cambiar fuente de archivo a carpeta?

Un usuario Pregunto ✅

coreyp

Hola chicos,

Comencé en mi informe actual con un solo archivo xlsx como fuente de datos mientras intentaba averiguar todos los pasos y DAX que necesitaba para crear un modelo funcional. Ahora que he completado todo lo que necesito, quiero cambiar la fuente a una carpeta. Los archivos xlsx en la carpeta son los mismos que la fuente del documento xlsx inicial, solo para diferentes rangos de fechas de datos.

como puedo cambiar mi fuente escribe? Sé cómo cambiarlo a un documento xlsx diferente, pero no hay forma de cambiar el tipo.

Aquí está el código de mi consulta inicial:

let
    Source = Excel.Workbook(File.Contents("C:UserscoreypfeiferDocuments_Business Analytics by Corey_Order FulfillmentKPIBARRE32.26.18-03.25.18.xlsx"), null, true),
    #"KPI Report_Sheet" = Source{[Item="KPI Report",Kind="Sheet"]}[Data],
    #"Promoted Headers" = Table.PromoteHeaders(#"KPI Report_Sheet", [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"ORD NO", Int64.Type}, {"REF ORD NO", type text}, {"CARRIER", type text}, {"SHIP DATE", type date}, {"DUE DATE", type date}, {"ORDER CLOSED TSTAMP", type datetime}, {"PICK COMPLETED TSTAMP", type datetime}, {"ORDER RCV DATE", type datetime}, {"NO OF LINES", Int64.Type}, {"ADDR NAME", type text}, {"SHIPPED QTY", Int64.Type}}),
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"ORD NO", "Order Number"}, {"REF ORD NO", "REF Order Number"}, {"CARRIER", "Carrier"}, {"SHIP DATE", "Ship Date"}, {"DUE DATE", "Due Date"}, {"ORDER CLOSED TSTAMP", "Order Closed TStamp"}, {"PICK COMPLETED TSTAMP", "Pick Complete TStamp"}, {"ORDER RCV DATE", "Order Received TStamp"}, {"NO OF LINES", "Count of SKUs"}, {"ADDR NAME", "Ship To Name"}, {"SHIPPED QTY", "Total Units"}}),
    #"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Order Received TStamp", "Order Number", "REF Order Number", "Ship Date", "Due Date", "Ship To Name", "Count of SKUs", "Total Units", "Carrier", "Pick Complete TStamp", "Order Closed TStamp"}),
    #"Added Conditional Column" = Table.AddColumn(#"Reordered Columns", "Custom", each if Text.StartsWith([REF Order Number], "W") then "Wholesale" else if Text.StartsWith([REF Order Number], "S") then "Wholesale" else "Retail"),
    #"Reordered Columns1" = Table.ReorderColumns(#"Added Conditional Column",{"Order Received TStamp", "Order Number", "REF Order Number", "Custom", "Ship Date", "Due Date", "Ship To Name", "Count of SKUs", "Total Units", "Carrier", "Pick Complete TStamp", "Order Closed TStamp"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Reordered Columns1",{{"Custom", type text}}),
    #"Renamed Columns1" = Table.RenameColumns(#"Changed Type1",{{"Custom", "Order Type"}}),
    #"Added Conditional Column1" = Table.AddColumn(#"Renamed Columns1", "Custom", each if [Order Type] = "Retail" then 1 else if [Order Type] = "Wholesale" then 3 else null),
    #"Reordered Columns2" = Table.ReorderColumns(#"Added Conditional Column1",{"Order Received TStamp", "Order Number", "REF Order Number", "Order Type", "Custom", "Ship Date", "Due Date", "Ship To Name", "Count of SKUs", "Total Units", "Carrier", "Pick Complete TStamp", "Order Closed TStamp"}),
    #"Changed Type2" = Table.TransformColumnTypes(#"Reordered Columns2",{{"Custom", type duration}}),
    #"Renamed Columns2" = Table.RenameColumns(#"Changed Type2",{{"Custom", "Order Type Deadline"}}),
    #"Split Column by Delimiter" = Table.SplitColumn(Table.TransformColumnTypes(#"Renamed Columns2", {{"Order Received TStamp", type text}}, "en-US"), "Order Received TStamp", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Order Received TStamp.1", "Order Received TStamp.2"}),
    #"Changed Type3" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Order Received TStamp.1", type date}, {"Order Received TStamp.2", type time}}),
    #"Renamed Columns3" = Table.RenameColumns(#"Changed Type3",{{"Order Received TStamp.1", "Order Received Date"}, {"Order Received TStamp.2", "Order Received Time"}}),
    #"Split Column by Delimiter1" = Table.SplitColumn(Table.TransformColumnTypes(#"Renamed Columns3", {{"Pick Complete TStamp", type text}}, "en-US"), "Pick Complete TStamp", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Pick Complete TStamp.1", "Pick Complete TStamp.2"}),
    #"Changed Type4" = Table.TransformColumnTypes(#"Split Column by Delimiter1",{{"Pick Complete TStamp.1", type date}, {"Pick Complete TStamp.2", type time}}),
    #"Renamed Columns4" = Table.RenameColumns(#"Changed Type4",{{"Pick Complete TStamp.1", "Pick Complete Date"}, {"Pick Complete TStamp.2", "Pick Complete Time"}}),
    #"Split Column by Delimiter2" = Table.SplitColumn(Table.TransformColumnTypes(#"Renamed Columns4", {{"Order Closed TStamp", type text}}, "en-US"), "Order Closed TStamp", Splitter.SplitTextByEachDelimiter({" "}, QuoteStyle.Csv, false), {"Order Closed TStamp.1", "Order Closed TStamp.2"}),
    #"Changed Type5" = Table.TransformColumnTypes(#"Split Column by Delimiter2",{{"Order Closed TStamp.1", type date}, {"Order Closed TStamp.2", type time}}),
    #"Renamed Columns5" = Table.RenameColumns(#"Changed Type5",{{"Order Closed TStamp.1", "Order Closed Date"}, {"Order Closed TStamp.2", "Order Closed Time"}}),
    #"Removed Columns" = Table.RemoveColumns(#"Renamed Columns5",{"Order Type Deadline"}),
    #"Changed Type6" = Table.TransformColumnTypes(#"Removed Columns",{{"Order Number", type text}}),
    #"Renamed Columns6" = Table.RenameColumns(#"Changed Type6",{{"Total Units", "Units"}})
in
    #"Renamed Columns6"

Y aquí está el código de una nueva consulta que creé dirigiéndome a la carpeta. Quiero mantener todos los pasos aplicados desde arriba, simplemente agregados a todos los archivos.

let
    Source = Folder.Files("C:UserscoreypfeiferDocuments_Business Analytics by Corey_Order FulfillmentKPIBARRE3"),
    #"Added Custom" = Table.AddColumn(Source, "Custom", each Excel.Workbook([Content],true)),
    #"Removed Other Columns" = Table.SelectColumns(#"Added Custom",{"Custom"}),
    #"Expanded Custom" = Table.ExpandTableColumn(#"Removed Other Columns", "Custom", {"Name", "Data", "Item", "Kind", "Hidden"}, {"Name", "Data", "Item", "Kind", "Hidden"}),
    #"Filtered Rows" = Table.SelectRows(#"Expanded Custom", each [Kind] = "Sheet"),
    #"Removed Other Columns1" = Table.SelectColumns(#"Filtered Rows",{"Data"}),
    #"Expanded Data" = Table.ExpandTableColumn(#"Removed Other Columns1", "Data", {"ORD NO", "REF ORD NO", "CARRIER", "SHIP DATE", "DUE DATE", "ORDER CLOSED TSTAMP", "PICK COMPLETED TSTAMP", "ORDER RCV DATE", "NO OF LINES", "ADDR NAME", "SHIPPED QTY"}, {"ORD NO", "REF ORD NO", "CARRIER", "SHIP DATE", "DUE DATE", "ORDER CLOSED TSTAMP", "PICK COMPLETED TSTAMP", "ORDER RCV DATE", "NO OF LINES", "ADDR NAME", "SHIPPED QTY"})
in
    #"Expanded Data"

¿Puedes ayudarme aquí?

mfelix

Hola @CoreyP,

Cuando realiza una conexión a una carpeta, tiene 3 opciones/subopciones en la parte inferior de la carpeta:

  • Combinar
    • Combinar y editar
    • Combinar y cargar
  • Carga
  • Editar

Si elige el primero con la opción de Editar, obtendrá una función creada que le permite hacer una maqueta de su tratamiento de datos que luego se aplicará a todos los archivos en su carpeta. Consulte el enlace para obtener más información.

Luego puede copiar todos sus pasos desde la primera consulta a la tabla con el nombre Transform Sample File From FileName y obtener el resultado esperado.

Esto también se puede hacer a mano si desea ser un poco más perspicaz de lo que se está haciendo, consulte este enlace con otro ejemplo.

Saludos,

mfelix

mfelix

Hola @CoreyP,

Cuando realiza una conexión a una carpeta, tiene 3 opciones/subopciones en la parte inferior de la carpeta:

  • Combinar
    • Combinar y editar
    • Combinar y cargar
  • Carga
  • Editar

Si elige el primero con la opción de Editar, obtendrá una función creada que le permite hacer una maqueta de su tratamiento de datos que luego se aplicará a todos los archivos en su carpeta. Consulte el enlace para obtener más información.

Luego puede copiar todos sus pasos desde la primera consulta a la tabla con el nombre Transform Sample File From FileName y obtener el resultado esperado.

Esto también se puede hacer a mano si desea ser un poco más perspicaz de lo que se está haciendo, consulte este enlace con otro ejemplo.

Saludos,

mfelix

DebbieE

En respuesta a mfelix

Hola ,

Tengo el mismo problema, comencé con un solo archivo csv. Luego se crearon muchos pasos para transformar los datos, luego agregué muchas medidas nuevas, etc. e informes.

Ahora quiero cambiar la fuente de datos a una carpeta con varios archivos. Hice clic en la fuente en Pasos aplicados, pero debe especificar un nombre de archivo para cambiarlo. Luego fui a Nueva fuente y creé mi nueva fuente de carpetas que acaba de crearme un nuevo conjunto de datos sin ninguno de mis pasos o nuevas medidas en su contra. Todos mis mosaicos se basan en la fuente de datos anterior.

No estoy seguro de lo que quieres decir con…

«Luego, puede copiar todos sus pasos desde la primera consulta a la tabla con el nombre Transform Sample File From FileName y obtener el resultado esperado».

Para mí, parece que no puede cambiar de una fuente de datos de un solo archivo a una carpeta. Cualquier ayuda sería apreciada.

mfelix

En respuesta a DebbieE

Hola @DebbieE,

Si va al Editor avanzado en la vista de consulta, puede reemplazar los pasos que tiene por los del archivo único.

Debe realizar una nueva consulta basada en una carpeta, luego ir a su primera consulta y copiar en el editor avanzado ver los pasos de la transformación de los datos, ir a la consulta Transformar archivo de muestra y copiar los pasos también en la vista avanzada editor, esto cambiará la forma en que se trata el archivo de muestra sin tener que repetir cada paso.

Saludos,

mfelix

DebbieE

En respuesta a mfelix

Gracias, eso ahorrará algo de tiempo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *