Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak získat hodnotu z předchozí řádku v Power Query?
Jak jí získat bez chybové hodnoty v prvním/posledním záznamu?
Funguje v Excel a Power BI
Získaní předchozí/následující hodnoty z tabulky, tak aby sloupec neobsahoval chybovou hodnotu, ale třeba null.
Pokud chcete získat hodnotu z předchozího řádku, předpokládám, že tabulku máte seřazenou (například podle měsíců) a jen chcete mít informaci jak byl zisk v předchozím měsící a nechcete řešit využitím DAX. V tomto článku se na funkční řešení.
Možná vás napadne, že podobný postup využijete i pro jiná řešení (například tip na ošetření chyb).
Pro přehlednost je článek rozdělen na kapitoly:
Předpokládám, že již umíte v M-ku vložit vlastní sloupec a přejmenovat krok (na text bez speciálních znaku).
Mějte k dispozici seřazenou tabulku se jmény, kdy potřebujete do aktuálního řádku získat jméno z předchozího. U prvního jména je jasné, že před tímto jménem nic není tak bude buňka prázdná. Podobně pokud potřebujete získat jméno následující. Za posledním jménem již nikdo není tak tato buňka bude prázdná.
Podobně pokud budete chtít získat 2 jména před či za. Zde je jasné, že dvou prvních/posledních jmen nebudou hodnoty.
Ukázka snad řekne více než několik slov.
Jako první vás napadne podívat se využitím vlastního sloupce na předchozí řádek. Proto si k tabulce přidáte indexovaný sloupec (ano máte již očíslovaný sloupec ID, ale kdyby nebyl k dispozici). Na hodnotu na konkrétním řádku se můžete podívat tak, že za název sloupce v hranatých závorkách zapíšete a číslo řádku, ze kterého chcete získat zapíšete ve složených závorkách (kdy první řádek je označenu nulou).
Takže vás do dialogového okna Vlastní sloupec napadne zadat odkaz na předchozí hodnotu, který bohužel nebude fungovat, protože M-ko neví z kterého kroku hodnotu daného sloupce vzít:
[Jméno]{[Index]-1}
Pokud ale do dialogového okna Vlastní sloupec se odkážete na existující krok "PredchozíKrok" název sloupce ze kterého potřebuji získat [Jméno] a jelikož mám k dispozici i sloupec Index tak ho využiji, k informaci, potřebuji hodnotu z předchozího řádku proto hodnotu ze sloupce a odečtu jedničku {[Index]-1}. Vzorec bude vypadat:
PrechoziKrok [Jméno]{[Index]-1}
Výsledkem bude téměř co potřebujete, jen ta chybová hodnota v prvním řádku, je nesympatické (a nechcete přidávat další zbytečný krok). V další kapitole jen ošetříme a budete mít hotovo.
Ač na první pohled elegantní, tak nevýhoda řešení je jeho výpočetní náročnost pro větší a velké tabulky!
Děkuji za tip od Pavel Adam.
Zbývá jen ošetři využitím try ... otherwise a místo chyby budu chtít hodnotu null, vzorec bude vypadat:
try PrechoziKrok [Jméno]{[Index]-1} otherwise null
Výsledek
Z mého pohledu vypadá lépe.
Vyřešit následující řádek, vás asi napadne:
try PredchoziKrok [Jméno]{[Index]+1} otherwise null
Případně o dva, tři řádky, atd.
Co takhle spojist duplikované tabulky využitím Merge (Sloučit)?
V přípravě.
Narazili jste na nějaký problém/ nejasnost? Máte tip na doplnění, můžete to zmínit v komentářích.
Článek byl aktualizován: 23.10.2023 21:17
Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.
Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.
Můžete být prvními co zanechají smysluplný komentář.
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
LinkedIn... |
Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |