2016-07-21 2 views
1

В Excel, Power Query, я хочу отфильтровать свои данные, чтобы принести все, когда в таблице параметров ничего не сказано (что должно привести все данные), но оно не работает. ..power query - фильтровать все, когда параметр пуст

любые предложения?

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

Теперь запрос немного изменился, теперь у меня есть 3 условия

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" 

ответ

2

Вы должны либо изменить условия или не делать никакой фильтрации на всех. Нечто подобное должно работать:

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

+0

спасибо за быстрый ответ. У меня есть три условия для трех разных столбцов. –

+0

нет идей вообще? –

+0

что я могу сделать, это для каждого фильтра, я могу реплицировать (ссылаться на спину) и применять фильтр в 3 части, но обновление будет очень медленным ... –

0

я решил вопрос с ниже запроса:

начинается с:


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


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

и заканчивается:


#"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" 
Смежные вопросы