2017-08-15 86 views
0

我有一個名爲FinancialQuery的Excel PowerQuery FinancialQuery依賴於表中的一個值,稱爲參數 每次用戶更改參數值並單擊Refresh時,查詢將根據用戶輸入PowerQuery過濾器參數值

然而,在金融查詢的最後一個步驟是基於相同的參數值 代替的具有「17213」上行過濾

#"Filtered Rows On OU" = Table.SelectRows(#"Renamed Columns", each [OperatingUnit] = "17213") 

我想立足於相同的過濾器函數值fullfilepath

#"Filtered Rows On OU" = Table.SelectRows(#"Renamed Columns", each [OperatingUnit] = fullfilepath) 

當我把語法powerquery是認爲我過濾的字fullfilepath

是否有人可以幫助我的語法?

這裏是我完整的代碼

'Parameters Table 
Parameter Value 
File Path 17213.csv 



' fnGetParameter 
(ParameterName as text) => 
let 
    ParamSource = Excel.CurrentWorkbook(){[Name="Parameters"]}[Content], 
    ParamRow = Table.SelectRows(ParamSource, each ([Parameter]=ParameterName)), 
    Value= 
    if Table.IsEmpty(ParamRow)=true 
    then null 
    else Record.Field(ParamRow{0},"Value") 
in 
    Value 


'Financial Query 
let 
    fullfilepath = fnGetParameter("File Path"), 
    Source = SharePoint.Files("https://Personal.sharepoint.com/FOA/BD", [ApiVersion = 15]), 
    #"Filtered Rows" = Table.SelectRows(Source, each ([Folder Path] = "https://Personal.sharepoint.com/FOA/BD/Budget/DataSources/Financials/") and ([Extension] = ".csv") and ([Name] = fullfilepath)), 
    #"ActiveFile" = #"Filtered Rows"{[Name=fullfilepath,#"Folder Path"="https://Personal.sharepoint.com/FOA/BD/Budget/DataSources/Financials/"]}[Content], 
    #"Imported CSV" = Csv.Document(#"ActiveFile",[Delimiter=",", Columns=23, Encoding=1252, QuoteStyle=QuoteStyle.None]), 
    #"Promoted Headers" = Table.PromoteHeaders(#"Imported CSV", [PromoteAllScalars=true]), 
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"P01", Currency.Type}, {"P02", Currency.Type}, {"P03", Currency.Type}, {"P04", Currency.Type}, {"P05", Currency.Type}, {"P06", Currency.Type}, {"P07", Currency.Type}, {"P08", Currency.Type}, {"P09", Currency.Type}, {"P10", Currency.Type},{"P11", Currency.Type},{"P12", Currency.Type}}), 
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"P01", "01"}, {"P02", "02"}, {"P03", "03"}, {"P04", "04"}, {"P05", "05"}, {"P06", "06"}, {"P07", "07"}, {"P08", "08"}, {"P09", "09"}, {"P10", "10"}, {"P11", "11"}, {"P12", "12"}}), 
    #"Filtered Rows On OU" = Table.SelectRows(#"Renamed Columns", each [OperatingUnit] = "17213")  
in 
    #"Filtered Rows On OU" 

我也附上了我powerquery語法的圖片。

PowerQuery Syntax

+0

我認爲[這](https://blog.oraylis.de/ 2013/05/using-dynamic-parameter-values-in-power-query-queries /)描述了你的情況。 – NickyvV

回答

0

我加入Text.Replace(fullfilepath, 「CSV」, 「」) 最終語法

let 
    fullfilepath = fnGetParameter("File Path"), 
    Source = SharePoint.Files("https://ihcorp.sharepoint.com/FOA/BD", [ApiVersion = 15]), 
    #"Filtered Rows" = Table.SelectRows(Source, each ([Folder Path] = "https://ihcorp.sharepoint.com/FOA/BD/Budget/DataSources/Financials/") and ([Extension] = ".csv") and ([Name] = fullfilepath)), 
    #"ActiveFile" = #"Filtered Rows"{[Name=fullfilepath,#"Folder Path"="https://ihcorp.sharepoint.com/FOA/BD/Budget/DataSources/Financials/"]}[Content], 
    #"Imported CSV" = Csv.Document(#"ActiveFile",[Delimiter=",", Columns=23, Encoding=1252, QuoteStyle=QuoteStyle.None]), 
    #"Promoted Headers" = Table.PromoteHeaders(#"Imported CSV", [PromoteAllScalars=true]), 
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"P01", Currency.Type}, {"P02", Currency.Type}, {"P03", Currency.Type}, {"P04", Currency.Type}, {"P05", Currency.Type}, {"P06", Currency.Type}, {"P07", Currency.Type}, {"P08", Currency.Type}, {"P09", Currency.Type}, {"P10", Currency.Type},{"P11", Currency.Type},{"P12", Currency.Type}}), 
    #"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"P01", "01"}, {"P02", "02"}, {"P03", "03"}, {"P04", "04"}, {"P05", "05"}, {"P06", "06"}, {"P07", "07"}, {"P08", "08"}, {"P09", "09"}, {"P10", "10"}, {"P11", "11"}, {"P12", "12"}}), 
    #"Filtered Rows1" = Table.SelectRows(#"Renamed Columns", each [OperatingUnit] = Text.Replace(fullfilepath,".csv","")) 
in 
    #"Filtered Rows1"