Forum Discussion
wetscott
Helper I
5 years agoPass Function Name to another Function to use
Hi All, I've dumped all the Sample Querys/Files/etc from my pbix in favour of a handful of function capable of getting each unique data source ready to be combine. On my combined tables, I run ...
v-alq-msft
Community Support
5 years agoHi, wetscott
You may create a function like below.
Func:
(tab as table)=>
let
#"Rename Source Column" = Table.RenameColumns(tab, {"Name", "DataDate"}),
#"Keep Only DataDate & Content" = Table.SelectColumns(#"Rename Source Column", {"DataDate", "Content"}),
#"Extracted Date" = Table.TransformColumns(#"Keep Only DataDate & Content", {{"DataDate", each Text.Start(_, 8), type text}}),
#"Changed Type" = Table.TransformColumnTypes(#"Extracted Date",{{"DataDate", type date}}),
#"Added ReportingDate" = Table.AddColumn(#"Changed Type", "ReportingDate", each Date.EndOfMonth(Date.AddMonths([DataDate], -1)), type date),
#"Invoke BW Function" = Table.AddColumn(#"Added ReportingDate", "DataFile", each #"Excel"([Content])),
#"Removed Content" = Table.SelectColumns(#"Invoke BW Function",{"DataDate", "ReportingDate", "DataFile"}),
#"Get DataFile Column Names 1" = Table.AddColumn(#"Removed Content", "GetColumnNames", each Table.ColumnNames([DataFile])),
#"Get DataFile Column Names 2" = Table.SelectColumns(#"Get DataFile Column Names 1",{"GetColumnNames"}),
#"Get DataFile Column Names 3" = Table.ExpandListColumn(#"Get DataFile Column Names 2", "GetColumnNames"),
#"Get DataFile Column Names 4" = Table.Distinct(#"Get DataFile Column Names 3"),
#"Expanded Data Files" = Table.ExpandTableColumn(#"Removed Content", "DataFile", #"Get DataFile Column Names 4"[GetColumnNames])
in
#"Expanded Data Files"
Then you may try the following query to see if it helps.
let
Source = SharePoint.Contents(SharepointSite, [ApiVersion = 15]),
#"Level 1" = Source{[Name="Shared Documents"]}[Content],
#"Level 2" = #"Level 1"{[Name="Branch"]}[Content],
#"Level 3" = #"Level 2"{[Name="PowerBI Dashboards"]}[Content],
#"Level 4" = #"Level 3"{[Name="DataSources"]}[Content],
#"Level 5" = #"Level 4"{[Name="Profit Center Report"]}[Content],
#"SetupTable" = Func(#"Level 5")
in
#"SetupTable"
Best Regards
Allan
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
wetscott
Helper I
5 years agoThanks Allan,
Unfortunately I'm getting the below error trying this.
An error occurred in the ‘Standard’ query. Expression.Error: We cannot convert the value "Excel" to type Function.
Details:
Value=Excel
Type=[Type]