2017-08-15 3 views
0

J'ai une Excel PowerQuery appelée FinancialQuery La requête financière dépend d'une valeur dans une table appelée Paramètres Chaque fois que l'utilisateur modifie la valeur du paramètre et cliquez sur Actualiser, la requête va apporter des données sur la base de la une entrée d'utilisateurPowerQuery Filtre sur la valeur du paramètre

Cependant, la dernière étape de la requête financier est de filtrer sur les lignes par rapport à la même valeur de paramètre au lieu d'avoir « 17213 »

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

je voudrais baser le filtre sur le même valeur de la fonction chemin_fichier

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

quand je mets cette syntaxe powerquery pense que je suis le filtrage sur le mot fullfilepath

Quelqu'un peut-il aider à me s'il vous plaît la syntaxe?

Voici mon code complet

'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" 

J'ai joint une photo de ma syntaxe powerquery.

PowerQuery Syntax

+0

Je crois que [ce] (https://blog.oraylis.de/ 2013/05/using-dynamic-paramètre-values-in-power-query-requêtes /) décrit votre situation. – NickyvV

Répondre

0

I ajouté Text.Replace (fullfilepath, "csv", "") Syntaxe finale

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"