Tento krátký návod popisuje, jak v Power Query v Excelu nebo v dotazech Power BI získat hodnotu z předchozího (nebo předpředchozího, nebo následujícího…) řádku.

Jsou zde uvedeny dva postupy. Jeden kratší s využitím funkce List.Range. Druhý je delší, ale nevyžaduje přímé psaní v jazyce M.

Hodnota z předchozího řádku pomocí List.Range

Budeme chtít získat v každém řádku zvířátko z řádku předchozího. Např. pro Guinea pig se má objevit Hamster atd.

Pozor, v tabulce potřebuji mít indexovací sloupec.

Funkce pak vypadá takto:

  • =List.Range(
       Source[Animal],
       [Index]-1,
       1)

Protože:

  • =List.Range(
       Source[Animal], – sloupec, ze kterého se berou hodnoty
       [Index]-1, – první položka v pořadí, kterou chceme získat je předchozí, tedy na Indexu se posuneme o jednu hodnotu zpět
       1) – chceme vytáhnout vždy jen jednu položku

Po extrahování řádků vypadá tabulka nějak takto. Chybu z prvního řádku můžeme snadno nahradit za jakoukoliv jinou hodnotu.

Kromě uvedeného postupu se na to dá jít také trochu jinak, např tímto zápisem:

  • =Source[Animal]{[Index]-2}

Hodnota z předchozího řádku, bez ručního psaní M

Tedy např. v této tabulce:

bychom chtěli získat hodnoty z předchozího řádku, takhle:

Jak na to?

Nejprve přidáme indexovací sloupec:

Pak přičteme jedničku (pokud se chceme vracet o jeden řádek):

Pak zmergujeme tabulku “samu se sebou”. Klíčem bude posunoutý a neposunutý index:

Rozklikneme dvojitou šipku a zobrazíme původní hodnotu z propojeného dotazu:

Vyhodíme indexovací sloupce a je hotovo: