Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
Jak funguje v Microsoft Excelu funkce POSUN (OFFSET) a jak ji prakticky využít? Funkci POSUN naleznete v kategorií: vyhledávací a referenční na kartě Vzorce.
Doplněno: 16.1.2016 o příklady POSUN s ŘÁDKY, POSUN s ŘÁDKY
V tomto článku Vás podrobněji seznámím s vyhledávací a referenční funkci POSUN (v anglické verzi Microsoft Excelu OFFSET).
Vrátí odkaz na oblast, která obsahuje určený počet řádků a sloupců, posunut od zadané buňky (nebo oblasti buněk). Vrácený odkaz může být jedna buňka nebo oblast buněk.
POSUN(odkaz; řádky; sloupce; [výška]; [šířka])
OFFSET(odkaz; řádky; sloupce; [výška]; [šířka])
Jak použít funkci POSUN
POSUN(C3;2;3;1;1)
rovná se F5. Zadáte-li tento vzorec na listu, zobrazí aplikace Microsoft Excel hodnotu uloženou v buňce F5.
POSUN(C3:E5;-1;0;3;3)
rovná se C2:E4
POSUN(C3:E5;0;-3;3;3)
rovná se #REF!
Potřebujete-li dynamicky zvolit sloupce pro výpočet.
V ukázce je použít výpočet sumy SUMA. Použít lze i jiné matematické funkce, jako průměr, max, min, hodnoty, atd.
=SUMA(POSUN(B22;0;H24;3;1))
Poznámka: V tabulce je použito navíc podmíněné formátování, kter ukazuje který sloupce je právě vybrán.
Soubor Praktická použití funkce POSUN pro sloupce ve spojení s funkci SUMA - ke stažení zdarma.
Potřebujete-li dynamicky zvolit sloupce pro výpočet. Tj. u sloupce dynamicky měnit polohu (výšku). Z předchozí kapitoly už umíte pracovat s řádkem. Teď ukáží jak k němu přidat další dynamickou volbu (jeho poloha).
V ukázce je použít výpočet sumy SUMA. Použít lze i jiné matematické funkce, jako průměr, max, min, hodnoty, atd.
=PRŮMĚR(POSUN(C10;POČET(C10:C30)-7;0;7;1))
Soubor Praktická použití funkce POSUN pro dynamický sloupec. ve spojení s funkci SUMA - ke stažení zdarma.
Potřebujete-li dynamicky zvolit pro výpočet řádky.
V ukázce je použit výpočet sumy (využitím funkce SUMA). Použít lze i jiné matematické funkce (podobně jako v předchozí ukázce), např. průměr, max, min, hodnoty, atd.
=SUMA(POSUN(B28;H28;1;1;4))
Poznámka: V tabulce je použito podmíněné formátování, které ukazuje který sloupc je právě vybrán.
Soubor Praktická použití funkce POSUN pro řádky ve spojení s funkci SUMA - ke stažení zdarma.
Potřebujete-li dynamicky provádět výpočty v oblasti buněk. Vychází z předchozích ukázek pro řádky a sloupce. Pro doplnění a dokreslení je zmíněno.
V ukázce je použít výpočet sumy pomocí funkce SUMA, PRŮMĚR, a nalezení maximální hodnoty MAX. Použít lze i jiné matematické funkce.
=SUMA(POSUN(B37;0;1;H38;H40))
Poznámka: V tabulce je použito podmíněné formátování, které ukazuje která oblast je právě vybrána.
Soubor Praktická použití funkce POSUN pro oblast ve spojení s funkci SUMA - ke stažení zdarma.
K řešení lze využít i funkci INDEX. Jak toto provést je uvedeno v článku JAk využít INDEX ve spojení se SUMA, PRŮMĚR, MIN, MAX - při hledání v dynamické oblasti. Děkuji Pepe za nápad odkaz.
Z komentáře
Dobrý den, prosím o pomoc, zasekla jsem se u jedné věci. Nevíte někdo, jak udělat průměry vždy 4 čísel pod sebou v jednom sloupci a udělat z toho druhý sloupec? Poznámka: Ve sloupci A mám 4 údaje pro každou hodinu a potřebuji tyto 4 hodnoty zprůměrovat a udělat nový sloupec B, kde bude vždy 1 hodnota (průměrná) pro každou hodinu. Potřebuji, aby se mi oblast buněk, která se průměruje posouvala o 4 místa dolu, ale když rozkopíruji vzorec do celého sloupce, oblast buněk se posouvá vždy jen o jeden řádek. Bez použití kontingence (která z důvodu nutné aktualizace vždy při změně vstupních dat není vhodná), jde to? Předem děkuji za pomoc. Adéla
Řešení. Pro jistotu jsem udělal dynamickou volbu počtu řádku (ať lze zvolit, jak velká má být oblast zda 4, nebo jako v mém případě 6). V emailu byl podobný dotaz na oblast o 10-ti prvcích ;)
Pro SUMU
=SUMA(POSUN($B$7;((D8-1)*$E$4)+1;0;$E$4;1))
Pro PRŮMĚR
=PRŮMĚR(POSUN($B$7;((D8-1)*$E$4)+1;0;$E$4;1))
Ukázka
Soubor Praktická řešení za použití funkce POSUN - ke stažení zdarma.
Využití funkce POSUN ve spojení s dalšími funkcemi například PRŮMĚR, MEDIAN, MIN, MAX, atd.
=SUMA(POSUN(B3;0;1;1;4))
Poznámka: Z tohoto příkladu se může zdát, že použití funkce SUMA:
=SUMA(C3:E3)
je rychlejší. Což máte pravdu, ale pokud máte složitější tabulky, kdy nevíte, kolik řádku a sloupců máte, je tato metoda pro implementaci jednodušší (přes proměné pouze posunete na správný řádek/sloupec a ohraničíte požadovaný počet/ velikost oblasti). Změnou jednoho parametru můžete automaticky změnit oblast kterou pak automaticky spočtete.
Podobně můžete použít ve spojení s funkcemi MIN a MAX. Kdy nalezne minimum, maximum v danné oblasti.
Postupně doplním i další praktické ukázky...
Soubor Praktické použití funkce POSUN - ke stažení zdarma.
Potřebuji z tabulky získat průsečík hodnt. Máte tabulku regiony a roky, s údají o prodejích. Výběrem regionu a roku je potřeba do buňky získat daný průsečik.
Do pomocných buněk zadáte region a požadovaný rok:
=POSUN(A4;POZVYHLEDAT(B13;A5:A9;0);POZVYHLEDAT(B14;B4:E4;0))
Ukázka
Soubor Praktické použití POSUN s POZVYHLEDAT - ke stažení zdarma.
Poznámka: Lze řešit i pomocí funkce SVYHLEDAT.
Ze zdrojové tabulky potřebuji získat každou druhou hodnotu. Případně každou x-tou.
=POSUN($B$6;ŘÁDKY($B$6:B6)*2;0)
Ukázka
Ukázka pro každou x-tou
Soubor Praktické použití POSUN s ŘÁDKY ve spojení s funkci SUMA - ke stažení zdarma.
Sešity s praktickými ukázkámi použití funkce POSUN v Microsoft Excel si můžete stáhnout zdarma:
Další vyhledávací funkce jsem popsal v článku: Odkaz na seznam dalších vyhledávacích funkcí. K dispozici jsou tyto funkce:
Soubor Jak na funkci POSUN (OFFSET) v pdf ke stažení zdarma.
Napadá Vás něco k funkci POSUN? Do komentářů můžete doplnit své postřehy, ukázky použití funkce, atd.
Článek byl aktualizován: 24.03.2023 13:39
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ů.
Přidáno: 15.12.12 12:38
Perfektní návod a příklady. Tvé stránky jsou super.
Přidáno: 15.12.12 16:41
To BigBoss: Jsem rád, že Ti stránky pomahají.
Přidáno: 08.04.13 10:16
krasna vec, zase mi to usetri par zbytecnych chvilek v praci. Moc dik!
Přidáno: 08.04.13 21:49
To Petr Janes: Rádo se stalo.
Přidáno: 24.04.13 17:58
Perfektní vysvětlení s příklady. Díky
Přidáno: 06.08.13 17:40
Vazne pekne zpracovane s priklady a perfektnimi ukazkami i slozitejsich aplikaci. Dekuju
Přidáno: 11.08.13 22:18
To Marťa a Vitek: Rádo se stalo.
Přidáno: 28.03.14 10:24
Díky, za ukázky funkce POSUN. Je fakt parádní.
Přidáno: 28.03.14 20:31
To Tonda: A ve spojení s INDEX, POZVYHLEDAT, NEPŘÍMÝ.ODKAZ atd. jdou dělat další úžasné věci ;)
Přidáno: 06.06.14 08:59
Pavle, fakt skvělý ! Smekám!
Přidáno: 21.06.14 19:11
Geniální návod, konečně jsem pochopila tuto funkci. Díky za tento web a návody moc mi pomáhají. Adéla
Přidáno: 23.06.14 06:59
To Adéla, Tomáš: Rádo se stalo, ať návody slouží.
Přidáno: 13.02.15 09:20
Dobrý den, prosím o pomoc, zasekla jsem se u jedné věci. Nevíte někdo, jak udělat průměry vždy 4 čísel pod sebou v jednom sloupci a udělat z toho druhý sloupec? Poznámka: Ve sloupci A mám 4 údaje pro každou hodinu a potřebuji tyto 4 hodnoty zprůměrovat a udělat nový sloupec B, kde bude vždy 1 hodnota (průměrná) pro každou hodinu. Potřebuji, aby se mi oblast buněk, která se průměruje posouvala o 4 místa dolu, ale když rozkopíruji vzorec do celého sloupce, oblast buněk se posouvá vždy jen o jeden řádek. Bez použití kontingence (která z důvodu nutné aktualizace vždy při změně vstupních dat není vhodná), jde to? Předem děkuji za pomoc. Adéla
Přidáno: 19.04.15 09:44
To Adéla: řešení je doplněno v článku.
Přidáno: 30.06.15 10:41
Velmi dobre vysvetlena funkce Offset. Mozna by stalo za zminku zminit i non-volatile alternativu index, ktera je sice o neco malo slozitejsi, nicmene je vyrazne vhodnejsi pri velkem mnozstvi radku/sloupcu/funkci, protoze pokazde neprepocitava vzorce. Praci to pak vyrazne urychli.
Přidáno: 01.07.15 16:13
Abych byl konkretni: napriklad vzorec z kapitoly "Vypocet v oblasti" =SUMA(POSUN(B37;0;1;H38;H40)) se da nahradit vzorcem =SUMA(C37:INDEX(C37:E39;H38,H40))
Přidáno: 05.07.15 12:21
To Pepe: děkuji za doplnění, už je nově uvedeno u funkce INDEX, POZVYHLEDAT, kam se logicky hodí. Do článku jsem doplnil odkaz ať čtenáře mají možnost projít i další možné řešení.
Přidáno: 04.08.15 15:43
Diky za perfektni navod - mel jsem stejny problem jako kdysi Adela (prumerovani z vice hodnot - konkretne ze sloupce s tisici hodnotami vytvorit sloupec se 100 hodnotami, kde graf z nej je vyhlazenejsi). Sice se mi nepodarilo plne pochopit, jak vzorec funguje, ale podarilo se mi jej bez vetsich problemu aplikovat :-) Mockrat diky - i adblock jsem si pro tuto stranku deaktivoval, autor si to urcite zaslouzi!
Přidáno: 18.08.15 15:42
Dobrý den, ve spojitosti s touto funkcí jsem narazil na oříšek. Snažili jsme se ji použít při vyhledávání v jiném souboru, což funguje, ale pouze do chvíle, než zdrojový soubor zavřeme. Funkce pak vrací hlášku: #HODNOTA Použitá syntaxe: =POSUN('C:\Users\xxx\Desktop\[zdroj.xlsx]List1'!$D$4;0;1;1;1) Nevíte někdo, kde děláme chybu? Díky předem, M.
Přidáno: 10.10.15 16:14
To Martin D.: Některé funkce jako např. POSUN (OFFSET) požadují, aby byl zdroj otevřen. Chybu neděláte, jde o vlastnost Excel. Nutno otevřít zdrojový sešit.
Přidáno: 17.01.16 09:34
Čučím jak tele na nový vrata! Úžasný!
Přidáno: 17.01.16 17:31
To Ramon: Děkuji a to je jenom funkce POSUN ;)
Přidáno: 05.02.16 09:07
Dobrý den, mám jednoduché zadání, ale nedaří se. Mám hodnotu v buňce D1, potřebuji tuto hodnotu vyhledat v sloupci A1:A100 a zapsat do buňky D2 hodnotu na řádku pod vyhledaným záznamem. Nedaří se mi vytvořit funkci. =POSUN(SVYHLEDAT(D1;A1:A100;1);1;0) Děkuji za pomoc. Honza
Přidáno: 12.02.16 12:41
Honza: Vhodnejsi je pouzit index+match. Napr takto: =Index(A1:A100;pozvyhledat(D1;A1:A100,0)+1)
Přidáno: 12.02.16 12:51
Nebo pokud chcete pouzit Posun, muzete nasledovne: =Posun(A1;;;pozvyhledat(D1;A1:A100,0)+1)
Přidáno: 17.02.16 13:43
To Pepe: Díky moc, funguje to parádně.
Přidáno: 16.03.16 07:33
Neuveriteľné! Úžasná dokumentácia!
Přidáno: 03.11.16 12:13
To Reddy: Děkuji
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 - 2024 |