2016-07-21 52 views
1

In Excel, Power Query, ich möchte meine Daten zu filtern, um alle zu bringen, wenn nichts in der Parametertabelle erwähnt (die alle Daten bringen soll), aber es funktioniert nicht. ..Power Query - Filter von allen, wenn der Parameter leer ist

irgendwelche Vorschläge?

project = if param {1} [Value] ="" then "*" else param {1} [Value], 
    "Filtered Rows" = Table.SelectRows(#"Changed Type", each ([Project] = project)) 

abfragen jetzt ein bisschen geändert, jetzt habe ich 3 Bedingungen

let 

    param = Excel.CurrentWorkbook(){[Name="Secim"]}[Content], 

    malzeme = if param {0} [Description] = "" then "*" else param {0} [Description], 
    proje = if param {1} [Value] ="" then "*" else param {1} [Value], 
    firma = if param {2} [Value] ="" then "*" else param {2} [Value], 

    #"Filtered Rows" = Table.SelectRows(#"Changed Type", each ([CODE] = firma) and ([Project] = proje) and ([Material Code] = malzeme)) 
in 
    #"Filtered Rows" 

Antwort

2

Sie müssen entweder die Bedingungen ändern, oder überhaupt keine Filterung zu tun. So etwas sollte funktionieren:

"Filtered Rows" = if project = "" then #"Changed Type" else Table.SelectRows(#"Changed Type", each [Project] = project)

+0

danke für die schnelle antwort. Ich habe 3 Bedingungen für 3 verschiedene Spalten. –

+0

überhaupt keine Ideen? –

+0

was ich tun kann, ist für jeden Filter kann ich die replizieren (Verweis Rücken an Rücken) und wenden Sie den Filter in 3 Teile, aber erfrischend wird sehr langsam sein ... –

0

i gelöst, die Frage mit folgenden Abfrage:

beginnt mit:


param = Excel.CurrentWorkbook(){[Name="Secim"]}[Content], 


    malzeme = param {0} [Value], 
    proje = param {1} [Value], 
    firma = param {2} [Value], 

und endet mit:


#"Filtered Rows" = if proje = null then #"Changed Type" else Table.SelectRows(#"Changed Type", each [Project] = proje), 
    #"Filtered Rows1" = if malzeme = null then #"Filtered Rows" else Table.SelectRows(#"Filtered Rows", each [Material Code] = malzeme), 
    #"Filtered Rows2" = if firma = null then #"Filtered Rows1" else Table.SelectRows(#"Filtered Rows1", each [CODE] = firma) 


    in 
    #"Filtered Rows2" 
Verwandte Themen