Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » zaklady » relativni-absolutni-odkazy-excel

Relativní a absolutní odkazy - MS Excel

není odkaz jako odkaz

Proč odkazy

Bez odkazů se v Excelu neobejdeme. Pokud do buňky nezapíšete =1+1, ale máte v buňce A1 =1, v buňce A2 =1, pokud potřebujete v buňce A3, mít součet tak zapíšete =A1+A2 a máte výsledek.

Dále si ukážeme další druhy odkazů. Jakmile ale odkazování pochopíte, uznáte, že jeho myšlenka je geniální.

Jaké jsou druhy odkazů

V MS Excelu se lze odkazovat dvěma typy zápisu:

  • klasickým A1 - tj. že řádky jsou označeny čísly a sloupce písmeny
  • programátorským R1C1 - Toto odkazování je trochu matoucí, osobně jej moc nepoužívám (jen při hledání chyb se někdy hodí), ale pokud se Vám libí tak není problém, abyste tento systém využívaly.

V obou typech zápisů existují 3 druhy odkazu (jejich použití ukážu na klasickém zápisu):

  • relativní A1 - když se vzorec zkopíruje, odkaz na další buňku se přizpůsobí nové pozici. Příklad: v buňce B1 zadáno (=A1) zkopírováním do buňky B2 se odkaz změní na (=A2).
  • absolutní $A$1 - odkaz se nezmění. Příklad: v buňce B1 zadáno (=$A$1) zkopírováním do buňky B2 se odkaz nezmění, zůstane na (=$A$1).
  • smíšený - tento odkaz může být buď:
    • řádkově absolutní A$1
    • sloupcově absolutní $A1

Poznámka: Přepínaní mezi absolutním, relativním, řádkově absolutním a sloupcově absolutním odkazem lze pomocí klávesové zkratky F4

Příklady odkazů:

Klasický odkaz A1 může být ještě doplněn o další upřesňující informace. Pokud máte výpočty pouze na jednom listu, není potřeba, ale máte-li rozsáhlý soubor o několika listech je potřeba se odkazovat na správný list. Případně se můžete odkazovat i do jiného sešitu. Navíc název souboru může obsahovat mezery. Takže v následujícím ukážu možnosti odkazování.

  • A1 - odkaz na buňku ve stejném listu
  • List2!A1 - odkaz na buňku v jiném listu
  • [priklad.xls]List1!A1 - sešit musí být otevřen
  • '[jiny nazev s mezerami.xls]List1'!A1 - musí být uvedeno v uvozovkách
  • 'C:\Dokumenty_moje\Excel\[priklad.xls]List1!A1

Poznámka: Odkazy mohou být absolutní, relativní nebo smíšené.

Jednoduchý příklad

Cena obdélníkových plechů

Představte si, že máte tabulku různých plechů. V řádku je výška ve sloupci šířka a v separátní buňce cena za 1m2 plechu. Vašim úkolem bude vypočíst cenu jednotlivých plechů.

Ukázka tabulky

obdélník šířka

obdélník výška
10 20 30 40 50
10     
20     
30     
40     
50     

Cena za 1m2 plechu je 50,- Kč

Postup řešení

Takže nejprve si vypočteme plochu. Čísla jsou volena schválně tak jednoduchá ať si můžete zkontrolovat výsledek z hlavy.

Výška x šířka =A2*B1

Ale tento vzorec platí pro první buňku při rozkopírováni v dalších buňkách, budou nesprávné údaje. takže odkaz musíme doplnit o absolutní smíšené odkazování tj.:

  • pro první část vzorce sloupcově, aby se neměnil sloupec, když kopírujeme doprava
  • pro druhou část vzorce, aby se neměnil řádek, když kopírujeme dolů

takže správný vzorec vypadá:

Výška x šířka =$A2*B$1

Poznámka: Je pravda, že můžete vzít buňku po buňce a do každé doplnit výška * šířka, ale při tabulce o 1000 položkách na to budete potřebovat týden.

Když už nám vzorec funguje, doplníme o cenu:

=$A12*B$1*$C$18

a máme hotovo

Příklad ke stažení zdarma

Ukázkový příklad Odkazy - Excel ke stažení zdarma soubor ve formátu *.xls

Závěrem

Takže už umíme a víme jak se odkazovat v MS Excelu.

Článek byl aktualizován: 01.05.2012 20:14



| tisk stránky TISK | nahoru NAHORU |
| |

Další články k tématu




Komentáře


jipi

Přidáno: 16.12.10 17:36

Dobrý den. Prosím o radu, zda je možné v makru, jehož součastí je je výběr pomocí automatického filtru provést odkaz na hodnotu v nějaké buňce tak, jak to jde např. u funkcí (př. u fce: kriterium: ">="&A1). Děkuji

Pavel Lasák

Přidáno: 18.12.10 20:31

to Jipi: Pokud chápu tak v makru bych použil podmínky: http://office.lasakovi.com/excel/vba/ms-excel-podminky-if-then-elseif-else/

jipi

Přidáno: 02.01.11 20:09

Dobrý den. "Kudy chodím, tudy chválím" "office.lasakovi.com". A tak tedy: "Vše nejhorší Vám a Vašim blízkým v novém roce ať se vyhne velkým obloukem". Ale bohužel něco chci návazně na předchozí dotaz neb jsem se asi špatně vyjádřil (stáří již nedovolí): mám v makru: ActiveSheet.Range("$A$5:$EN$65000").AutoFilter Field:=34, Criteria1:=">=100" _ , Operator:=xlAnd a potřeboval bych zaměnit "Criteria1:=">=100" (případně na datum: Criteria1:=">=1.1.2000") " za odkaz na hodnotu v "nějaké" buňce na jiném listu tak, jak to jde např. ve fci "SUMIFS" PODMÍNKA: ">="&A1. Dotaz: "A co takhle nějaká odměna za Vaši radu? Pro začátek aspoň kvalitní "Mělnické" víno kdybych věděl adresu. Přeci nejsme v komunismu podle hesla "Každému podle jeho potřeb". Já uznávám mimo jiné heslo, které jsem měl na rýsovacím prkně "Základem úspěch je motivace lidí", pokud možno kladná ... Zdraví Petr Jirmus (jipi)

Pavel Lasák

Přidáno: 03.01.11 15:55

To jipi> Dekuji. Ja jsem otazku spatne pochopil. VBA je nutno doplnit o: Dim strCriteria As String Range("G3").Select strCriteria = ActiveCell.FormulaR1C1 ActiveSheet.Range("$C$3:$D$7").AutoFilter Field:=2, Criteria1:=strCriteria, Operator:=xlAnd (v buňce G3 zadávat napr. ">=100", tj. vcetne znaminek) Jeste zapremyslim, zda to nepujde jednoduseji a elegantneji.

Pavel Lasák

Přidáno: 03.01.11 16:22

To Jipi: Takže ani strejda google neporadil elegantnější řešení. Pokud mi pošlete email lasak@centrum.cz tak mohu zaslat ukázku zpět.

Dim strCriteria As String
Range("G3").Select
strCriteria = ActiveCell.FormulaR1C1

ActiveSheet.Range("$C$3:$D$7").AutoFilter Field:=2, Criteria1:=strCriteria, Operator:=xlAnd

jipi

Přidáno: 03.01.11 20:43

Bingo! Chodí to. Smekám. Tak to je "A". A jak s tím "B"? Hezký zbytek dne jipi

xlnc

Přidáno: 24.07.11 00:46

Na datumy ve filtrech pozor, obzvláště na kód vygenerovaný českým Záznamníkem maker. Zkuste se inspirovat tady: http://excelplus.net/infusions/cvs/view_file.php?file_id=27

Pavel Lasák

Přidáno: 24.07.11 06:18

To xlnc: Děkuji za odkaz.

Stanislav

Přidáno: 20.09.11 15:01

Dobrý den, měl bych dotaz ohledně vytvoření relativního odkazu na jiný sešit. Mám jeden soubor, který hodlám používat jako šablonu a potom několik excelovských souborů s různýma datama, které se jmenují stejně. Potřebuji nějak dosáhnout toho, aby excel s daty, který otevřu, tak aby byly tyto data nataženy do souboru, který používám jako šablonu. Zatím jsem bohužel nebyl úspěšný, protože soubor šablona mi pořád natahuje data stále z jednoho a toho samého excelu s datama... Můžete mi prosím poradit? Předem díky.

Stanislav

Přidáno: 20.09.11 15:11

Případně mi prosím napište na email kachynas@seznam.cz, díky moc

Pavel Lasák

Přidáno: 20.09.11 17:39

To Stanislav: Soubory se jmenuji stejně? To potom musí byt v různých adresářích.

David K.

Přidáno: 21.10.11 07:41

Dobrý den, kopírování s abs. i relativními odkazy je jednoduché, ale s čím mám potíž je následující: LIST1 - 700 záznamů po řádku, od A1 do A700. LIST2, využívá na řádku 1:6 relativní odkaz na =LIST1!A1 (A1=LIST1!A1; A2=LIST1!A1; A3=LIST1!A1; A4=LIST1!A1; A5=LIST1!A1 a A6=LIST1!A1) protože s tím pak počítám dál a proto. ALE! Jakmile na řádku A7 dám kopírovat vložit, tak mi (velmi správně) excel napíše vzorec A7=LIST1!A6 tedy o 5 víc, ale já nutně potřebuji, aby se odkazoval na druhý řádek listu1. A nevím jak na to. Prostě rozkopírovat 700*6 se mi fakt nechce.

Pavel Lasák

Přidáno: 21.10.11 16:20

David K. Osobně bych si na to napsal skript ve VBA. Jak to udělat efektně bez VBA bohužel nevím.

David K.

Přidáno: 14.11.11 13:26

Nevadí, už jsem na to přišel. =INDEX('L:\abc\a\M\[1.xlsx]M'!B$2:B$990;ZAOKR.DOLŮ((ŘÁDEK('L:\abc\a\M\[1.xlsx]M'!B2)+2)/4;1);1) Kromě vyhledávání je finta jen ve funkci ŘÁDEK(), pak už to jen hladá. Vezme číslo řádku, vydělí počtem opakování (v mém případě 4), zaokrouhlí a přičte aktuální číslo řádku (začal jsem na řádku 2, tak +2, na řádku 5 pak +5) a funguje to...

Pavel Lasák

Přidáno: 14.11.11 16:11

To David K.: Děkuji za publikaci řešení.

Radek

Přidáno: 30.11.11 17:31

Dobrý den, chtěl bych se zeptat jak mám zadat vzorec pro to, aby když v buňce bude písmeno např "D" aby buňky celá zčervenala Děkuji za radu

Pavel Lasák

Přidáno: 30.11.11 17:59

To Radek: Použijte podmíněné formátování: Podmíněné formátování – Excel 2007, 2010

Přidáno: 30.11.11 18:35

To Pavel : :-D jak snadné jen si vzpomenout když to zrovna člověk potřebuje :-D mnohokrát Vám děkuji za okamžitou odpověď

Pavel Lasák

Přidáno: 30.11.11 20:40

To Radek: proto jsem vytvořil tyto stránky. Ať si to nemusím pamatovat :-)


Přidání nového komentáře




(vlož číslo šest)

Z bezpečnostních důvodu dočasně nemůžete použít HTML značky a URL. Děkuji za pochopení.
Děkuji, za Vaše komentáře.

Za obsah komentářů neodpovídám, jelikož jsou komentáře publikovány ihned po jejich napsání čtenářem. Toto nemohu nijak ovlivnit. Přesto si vyhrazuji možnost jakýkoli neslušný komentář smazat bez udání důvodu.




Nejnovější článek

Z článku o excel jsem jako poslední přidal či upravil článek 14.05.2012:
Kombinování funkcí - vzorců.

Nejčtenější článek




Google+

  

Facebook

facebook  

Novinky

Word: 12.5.2012:
Matematické rovnice (vzorce) - Word 2010

Excel: 14.05.2012:
Kombinování funkcí - vzorců

Access: 28.04.2012:
VBA - Jak spustit v MS Access

Power Point: 25.04.2012:
SmartArt - PowerPoint 2010

Outlook 26.04.2012:
Outlook 2010 - jak vypadá

Project: 05.04.2012:
Kalendář ukázka

OneNote: 17.10.2010:
OneNote 2010 – popis obrazovky

Office 30.04.2012:
Kde hledat odpovědi na dotazy o MS Office

Poděkování

Poděkování patří hlavně mojí nejbáječnější manželce.

LinkedIN

Translate

     

Stránky o MS Office produktu společnosti Micosoft. Neslouží jako technická podpora.
| Email na autora: lasak@centrum.cz | Copyright © : Pavel a Danka 2006 - 2012 |
| Doporučuji: Advokátní kancelář Brno - Dana Lasáková | 8213

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.