< návrat zpět

MS Excel


Téma: PowerQuery - použití hodnoty z buňky jako param. rss

Zaslal/a 10.2.2021 23:54

Ahoj,
potřebuji použít hodnotu z buňky jako parametr pro filtrování jiné tabulky s tím, že pokud bude buňka prázdná, tak filtr zobrazí všechny hodnoty z daného sloupce.
První část umím, ale nedaří se mi napsat smysluplnou podmínku pro ošetření toho, aby v případě, že bude hodnota buňky null zobrazil filtr všechny hodnoty daného sloupce.
Pomůžete někdo?

Zaslat odpověď >

Strana:  « předchozí  1 2
#049842
avatar
Pro více sloupců a více hledaných hodnot ve sloupci:

Načtení filtrů

// Tabulka_filtr
let
Zdroj = Excel.CurrentWorkbook(){[Name="Tabulka_filtr"]}[Content],
#"Změněný typ" = Table.TransformColumnTypes(Zdroj,{{"A", type any}, {"B", type any}, {"C", type text}}),
#"Ošetření prázdného textu" = Table.ReplaceValue(#"Změněný typ","",null,Replacer.ReplaceValue,{"A", "B", "C"})
in
#"Ošetření prázdného textu"


Filtrování:


// Tabulka_data
let
Zdroj = Excel.CurrentWorkbook(){[Name="Tabulka1"]}[Content],
tabulka = Table.TransformColumnTypes(Zdroj,{{"A", Int64.Type}, {"B", type any}, {"C", type text}}),
FitrovaneSloupce = Table.ColumnNames(#"Tabulka_filtr"),
#"Filtrovano" = List.Accumulate(
FitrovaneSloupce,
tabulka, (x, s) =>
let
HodnotyFiltru = List.RemoveNulls(Table.Column(Tabulka_filtr,s)),
xxx = if List.Count(HodnotyFiltru) > 0 then
Table.SelectRows(x, each List.Contains(HodnotyFiltru, Record.Field(_, "" & s & "")))
else x
in
xxx
)
in
#"Filtrovano"


Hlavičky v tabulce filtrů (pokud chceme sloupec filtrovat) se musí shodovat s daty.citovat
#049849
avatar
Moc Vám všem děkuju za pomoc.
Obzvlášť @Dingo za soubor se vzory a funkčním řešením od @lubo.
A @lubo za řešení, to poslední vypadá skvěle, ale o hodně převyšuje moje znalosti:(.

K tomu řešení lubo2 mám ještě jeden doplňující dotaz, proč musí být za názvem funkce závorky s číslicí?
.....
TXT_ = if Filtr_textu(1) = null or Filtr_textu(1) = "" then true else Filtr_textu(1),
HODN_ = if Filtr_hodnoty(1) = null or Filtr_hodnoty(1) = "" then true else Filtr_hodnoty(1),
// Pokud nechceme filtrovat, tak vracíme původní tabulku
Filtr1 = if TXT_ = true then #"Změněný typ" else Table.SelectRows(#"Změněný typ", each [text] = TXT_),
Filtr2 = if HODN_ = true then Filtr1 else Table.SelectRows(Filtr1, each [hodnota] = HODN_)citovat

Strana:  « předchozí  1 2

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje