Co se stane když nepoužijeme žádný filtr

Pokud nepoužijeme žádný filtr, bude zápis vypadat třeba takto:

  • No filter = SUM(my_table[Price])
a ve vizuálu fungují jen filtry dané kontextem vizuálu. Filtruje tedy pouze samotný vizuál (a filtry na stránce, slicery, ostatní vizuály....) - nic zajímavého.
 

Použití filtru bez filtrovací funkce

Nejkratší možný zápis filtru v míře vypadá takto. Není použitá speciální funkce, pouze se napíše samotné kritérium.

Filter without filter =
  • CALCULATE ( SUM ( my_table[Price] ), my_table[Color] = "Red" )
Výsledek je možná překvapivý, protože:
  • respektuje omezení daná zapsaným filtrovacím kritériem,
  • respektuje filtry vizuálu s výjimkou toho sloupce, na který jsme v míře napsali filtrovací kritérium.
to znamená, že ve skupině Alfy Romeo jsou pouze Alfy Romeo, ale v jednotlivých barvách jsou vždy pouze červené - i když se jedná o řádek s modrým autem.
 
 
Stejného výsledku byste dosáhli pokud byste zapsali toto (jen by byl zápis zbytečně dlouhý, takže to nedělejte): 
 
  • Filter with filter and ALL =
    CALCULATE (
        SUM ( my_table[Price] ),
        FILTER ( ALL ( my_table[Color] ), my_table[Color] = "Red" )
    )

Filtrování pomocí funkce FILTER a KEEPFILTER

Zápis bude vypadat nějak takto:

Filter with filter =
  • CALCULATE (
        SUM ( my_table[Price] ),
        FILTER ( my_table, my_table[Color] = "Red" )
)
Ještě lépe můžete použít KEEPFILTERS. Bude fungovat stejně jako předchozí FILTER, ale s kratším zápisem a lepším výkonem při větších tabulkách: To sloveo "KEEP" je odvozeno od toho, že filtr nad tímto sloupcem zůstává - neruší se.
  • Keepfilters =
    CALCULATE ( SUM ( my_table[Price] )KEEPFILTERS ( my_table[Color] = "Red" ) )

Výsledek bude vypadat v obou případech tak, jak to obvykle potřebujete. Číslo tedy:
  • bude respektovat všechny vizuálové filtry
  • a současně bude respektovat filtr definovaný mírou.

Filtrování pomocí VALUES

Funkce VALUES může být použitá třeba takto. Jde o to, že vrátí kontext "do normálu", tedy začnou se zohleďnovat řádky vizuálu. Může existovat využití, ale obvykle lze nahradit pomocí KEEPFILTER nebo FILTER.
Values =
  • CALCULATE (
        SUM ( my_table[Price] ),
        my_table[Color] = "Red",
        VALUES ( my_table[Color] )
    )

Takže co používat?

Pokud nechcete rušit kontext vizuálu (a většinou nechcete), použijte syntaxi s FILTERem nebo ještě lépe s KEEPFILTERS.
V opačném případě (asi jen výjimečně) použijte variantu bez speciální filtrovací funkce.

Napsat komentář

Vaše emailová adresa nebude publikována.

*

smazat formulářOdeslat komentář