Obsah
Tento návod poskytuje stručný úvod do syntaxe funkcie ADDRESS a ukazuje, ako ju použiť na vrátenie adresy bunky programu Excel a ďalšie informácie.
Ak chcete vytvoriť odkaz na bunku v programe Excel, môžete ručne zadať súradnice stĺpca a riadku. Prípadne môžete získať adresu bunky programu Excel z čísel riadkov a stĺpcov dodaných funkcii ADDRESS. Sama o sebe je takmer zbytočná, v kombinácii s inými funkciami môže byť táto technika jediným riešením v situáciách, keď nie je možné priamo odkázať na bunku.
Funkcia Excel ADDRESS - syntax a základné použitie
Funkcia ADDRESS je určená na získanie adresy bunky v programe Excel na základe zadaných čísel riadkov a stĺpcov. Adresa bunky sa vráti ako textový reťazec, nie ako skutočný odkaz.
Funkcia je k dispozícii vo všetkých verziách aplikácie Excel pre Microsoft 365 - Excel 2007.
Syntax funkcie ADDRESS je nasledujúca:
ADDRESS(číslo_riadku, číslo_stĺpca, [abs_num], [a1], [sheet_text])Vyžadujú sa prvé dva argumenty:
číslo_riadku - číslo riadku, ktoré sa má použiť v odkaze na bunku.
column_num - číslo stĺpca na vytvorenie odkazu na bunku.
Posledné tri argumenty, ktoré určujú formát odkazu na bunku, sú nepovinné:
abs_num - typ odkazu, absolútny alebo relatívny. Môže mať ľubovoľné z nižšie uvedených čísel; predvolené je absolútne.
- 1 alebo vynechaný - absolútny odkaz na bunku ako $A$1
- 2 - zmiešaný odkaz: relatívny stĺpec a absolútny riadok ako A$1
- 3 - zmiešaný odkaz: absolútny stĺpec a relatívny riadok ako $A1
- 4 - relatívny odkaz na bunku, napríklad A1
a1 - referenčný štýl, A1 alebo R1C1. Ak sa vynechá, použije sa predvolený štýl A1.
- 1 alebo TRUE alebo vynechané - vráti adresu bunky v štýle odkazu A1, kde stĺpce sú písmená a riadky sú čísla.
- 0 alebo FALSE - vráti adresu bunky v referenčnom štýle R1C1, kde sú riadky a stĺpce reprezentované číslami.
sheet_text - názov pracovného hárku, ktorý sa má zahrnúť do externého odkazu. Názov hárku by sa mal zadať ako textový reťazec a mal by byť uzavretý v úvodzovkách, napr. "Sheet2". Ak sa vynechá, nepoužije sa žiadny názov pracovného hárku a adresa sa predvolene nastaví na aktuálny hárok.
Napríklad:
=ADDRESS(1,1)
- vráti adresu prvej bunky (t. j. bunky na priesečníku prvého riadku a prvého stĺpca) ako absolútny odkaz na bunku $A$1.
=ADRESA(1,1,4)
- vráti adresu prvej bunky ako relatívny odkaz na bunku A1.
V nasledujúcej tabuľke nájdete niekoľko ďalších typov odkazov, ktoré môžu byť vrátené vzorcami ADDRESS.
Vzorec | Výsledok | Popis |
=ADDRESS(1,2) | $B$1 | Absolútny odkaz na bunku |
=ADRESA(1,2,4) | B1 | Relatívny odkaz na bunku |
=ADRESA(1,2,2) | B$1 | Relatívny stĺpec a absolútny riadok |
=ADRESA(1,2,3) | $B1 | Absolútny stĺpec a relatívny riadok |
=ADRESA(1,2,1,FALSE) | R1C2 | Absolútny odkaz v štýle R1C1 |
=ADRESA(1,2,4,FALSE) | R[1]C[2] | Relatívny odkaz v štýle R1C1 |
=ADDRESS(1,2,1,, "Sheet2") | List2!$B$1 | Absolútny odkaz na iný list |
=ADDRESS(1,2,4,, "Sheet2") | List2!B1 | Relatívny odkaz na iný list |
Ako používať funkciu ADDRESS v programe Excel - príklady vzorcov
Nižšie uvedené príklady ukazujú, ako použiť funkciu ADDRESS vo väčších vzorcoch na vykonanie zložitejších úloh.
Vrátiť hodnotu bunky v danom riadku a stĺpci
Ak je vaším cieľom získať hodnotu z konkrétnej bunky na základe čísla jej riadku a stĺpca, použite funkciu ADDRESS spolu s funkciou INDIRECT:
INDIRECT(ADDRESS(číslo_riadku, číslo_stĺpca))Funkcia ADDRESS vypíše adresu bunky ako text. Funkcia INDIRECT zmení tento text na normálny odkaz a vráti hodnotu z príslušnej bunky.
Ak chcete napríklad získať hodnotu bunky na základe čísla riadku v E1 a čísla stĺpca v E2, použite tento vzorec:
=INDIRECT(ADRESA(E1,E2))
Získanie adresy bunky s najvyššou alebo najnižšou hodnotou
V tomto príklade najprv nájdeme najvyššiu a najnižšiu hodnotu v rozsahu B2:B7 pomocou funkcií MAX a MIN a tieto hodnoty vypíšeme do špeciálnych buniek:
Bunka E2: =MAX(B2:B7)
Bunka F2: =MIN(B2:B7)
A potom použijeme funkciu ADDRESS v kombinácii s funkciou MATCH na získanie adries buniek.
Bunka s maximálnou hodnotou:
=ADRESA(MATCH(E2,B:B,0), STĹPEC(B2))
Bunka s minimálnou hodnotou:
=ADRESA(MATCH(F2,B:B,0), STĹPEC(B2))
V prípade, že nechcete mať najvyššiu a najnižšiu hodnotu v samostatných bunkách, môžete funkciu MAX/MIN vložiť do prvého argumentu funkcie MATCH. Napríklad:
Bunka s najvyššou hodnotou:
=ADRESA(MATCH(MAX(B2:B7),B:B,0), STĹPEC(B2))
Bunka s najnižšou hodnotou:
=ADRESA(MATCH(MIN(B2:B7),B:B,0), STĹPEC(B2))
Ako tieto vzorce fungujú
Na zistenie čísla riadku použijete funkciu MATCH(hodnota_hľadania, pole_hľadania, [typ_zhody]), ktorá vráti relatívnu pozíciu hodnoty_hľadania v poli_hľadania. V našom vzorci je hodnota_hľadania číslo vrátené funkciou MAX alebo MIN a pole_hľadania je celý stĺpec. Z toho vyplýva, že relatívna pozícia hodnoty_hľadania v poli presne zodpovedá číslu riadku na hárku.
Na zistenie čísla stĺpca použijete funkciu COLUMN. Samozrejme, nič vám nebráni zadať číslo priamo do vzorca, ale COLUMN vám ušetrí námahu s ručným počítaním v prípade, že sa cieľový stĺpec nachádza uprostred listu.
Získanie písmena stĺpca z čísla stĺpca
Ak chcete premeniť ľubovoľné číslo na písmeno stĺpca, použite funkciu ADDRESS vo vnútri funkcie SUBSTITUTE:
SUBSTITUTE(ADRESA(1, column_number ,4), "1","")Ako príklad nájdime písmeno stĺpca zodpovedajúce číslu v A2:
=SUBSTITUTE(ADDRESS(1,A2,4), "1","")
Pri pohľade na výsledky nižšie môžeme povedať, že prvý stĺpec na hárku je A, čo je zrejmé; 10. stĺpec je J, 50. stĺpec je AX a 100. stĺpec je CV:
Ako tento vzorec funguje
Na začiatok nastavte funkciu ADDRESS tak, aby vracala relatívny odkaz na prvú bunku v cieľovom stĺpci:
- Pre číslo riadku použite 1.
- Pre číslo stĺpca zadajte odkaz na bunku obsahujúcu číslo, v našom prípade A2.
- Ako argument abs_num zadajte 4.
Výsledkom je, že ADDRESS(1,A2,4) vráti A1.
Ak sa chcete zbaviť súradnice riadku, zabaľte vyššie uvedený vzorec do funkcie SUBSTITUTE a nahraďte "1" prázdnym reťazcom (""). Hotovo!
Získanie adresy pomenovaného rozsahu
Ak chcete nájsť adresu pomenovaného rozsahu v programe Excel, musíte najprv získať odkaz na prvú a poslednú bunku a potom ich spojiť. Toto funguje trochu inak v preddynamickom programe Excel (2019 a staršie) a v programe Excel s dynamickým poľom (Office 365 a Excel 2021). Nižšie uvedené príklady sú pre programy Excel 2019 - Excel 2007. Pokyny pre programy Excel 365 a Excel 2021 nájdete tu.
Ako získať adresu prvej bunky v rozsahu
Ak chcete vrátiť odkaz na prvú bunku v pomenovanom rozsahu, použite tento všeobecný vzorec:
ADDRESS(ROW( rozsah ),COLUMN( rozsah ))Za predpokladu, že rozsah je pomenovaný "Sales", skutočný vzorec vyzerá takto:
=ADDRESS(ROW(Sales), COLUMN(Sales))
A vráti adresu ľavej hornej bunky v rozsahu:
V tomto vzorci funkcie ROW a COLUMN vrátia pole všetkých čísel riadkov a stĺpcov v rozsahu. Na základe týchto čísel funkcia ADDRESS vytvorí pole adries buniek. Keďže je však vzorec zadaný v jednej bunke, zobrazí sa len prvá položka poľa, ktorá zodpovedá prvej bunke v rozsahu.
Ako získať adresu poslednej bunky v rozsahu
Ak chcete zistiť adresu poslednej bunky v pomenovanom rozsahu, použite tento všeobecný vzorec:
ADDRESS(ROW( rozsah )+ROWS( rozsah )-1,COLUMN( rozsah )+COLUMNS( rozsah )-1)Pri použití na náš rozsah s názvom "Predaj" má vzorec nasledujúci tvar:
=ADDRESS(ROW(Sales) + ROWS(Sales)-1, COLUMN(Sales) + COLUMNS(Sales)-1)
A vráti odkaz na pravú dolnú bunku rozsahu:
Tentoraz potrebujeme trochu zložitejšie výpočty, aby sme zistili číslo riadku. Podobne ako v predchádzajúcom príklade nám funkcia ROW poskytne pole všetkých čísel riadkov v rozsahu, v našom prípade {4;5;6;7}. Potrebujeme tieto čísla "posunúť" o celkový počet riadkov mínus 1, aby sa prvá položka v poli stala číslom posledného riadku. Na zistenie celkového počtu riadkov použijeme funkciu ROWS aod jeho výsledku odpočítame 1: (4-1=3). Potom ku každému prvku pôvodného poľa pripočítame 3, aby sme vykonali požadovaný posun: {4;5;6;7} + 3 = {7;8;9;10}.
Číslo stĺpca sa vypočíta podobným spôsobom: {2,3,4}+3-1 = {4,5,6}
Z uvedených polí čísel riadkov a stĺpcov funkcia ADDRESS zostaví pole adries buniek, ale vráti len prvú adresu zodpovedajúcu poslednej bunke v rozsahu.
Rovnaký výsledok možno dosiahnuť aj výberom maximálnych hodnôt z polí čísel riadkov a stĺpcov. Toto však funguje len vo vzorci poľa, ktorý si na správne dokončenie vyžaduje stlačenie klávesovej skratky Ctrl + Shift + Enter:
=ADDRESS(MAX(ROW(Sales)), MAX(COLUMN(Sales))
Ako získať úplnú adresu pomenovaného rozsahu
Ak chcete vrátiť úplnú adresu pomenovaného rozsahu, stačí spojiť dva vzorce z predchádzajúcich príkladov a vložiť medzi ne operátor rozsahu (:).
ADDRESS(ROW( rozsah ), COLUMN( rozsah )) & ":" & ADDRESS(ROW( rozsah ) + ROWS( rozsah )-1, COLUMN( rozsah ) + COLUMNS( rozsah )-1)Aby to fungovalo pre našu vzorovú sadu údajov, nahradíme všeobecný názov "range" skutočným názvom rozsahu "Sales":
=ADDRESS(ROW(Sales), COLUMN(Sales)) & ":" & ADDRESS(ROW(Sales) + ROWS(Sales)-1, COLUMN(Sales) + COLUMNS(Sales)-1)
A získať kompletnú adresu rozsahu ako absolútne odkaz $B$4:$D$7:
Vrátenie adresy rozsahu ako relatívne (bez znaku $, ako napríklad B4:D7), nastavte argument abs_num v oboch funkciách ADDRESS na hodnotu 4:
=ADDRESS(ROW(Sales), COLUMN(Sales), 4) & ":" & ADDRESS(ROW(Sales) + ROWS(Sales)-1, COLUMN(Sales) + COLUMNS(Sales)-1, 4)
Rovnaké zmeny možno samozrejme vykonať aj v jednotlivých vzorcoch pre prvú a poslednú bunku a výsledok bude vyzerať podobne:
Ako získať adresu pomenovaného rozsahu v aplikáciách Excel 365 a Excel 2021
Na rozdiel od tradičného správania "jeden vzorec - jedna bunka" v starších verziách sa v novom Exceli každý vzorec, ktorý môže potenciálne vrátiť viacero hodnôt, správa automaticky. Takéto správanie sa nazýva prelievanie.
Napríklad, namiesto vrátenia adresy prvej bunky, nasledujúci vzorec vypíše adresy každej bunky v pomenovanom rozsahu:
=ADDRESS(ROW(Sales), COLUMN(Sales))
Získanie adresy prvá bunka len musíte povoliť implicitný priesečník, ktorý je predvolene spustený v programe Excel 2019 a starších. Na tento účel vložte pred názvy rozsahov symbol @ (operátor implicitného priesečníka):
=ADDRESS(@ROW(Sales), @COLUMN(Sales))
Podobným spôsobom môžete opraviť aj iné vzorce.
Ak chcete získať posledná bunka v rozsahu:
=ADDRESS(@ROW(Sales) + ROWS(Sales)-1, @COLUMN(Sales) + COLUMNS(Sales)-1)
Ak chcete získať adresa pomenovaného rozsahu :
=ADDRESS(@ROW(Sales), @COLUMN(Sales)) & ":" & ADDRESS(@ROW(Sales) + ROWS(Sales)-1, @COLUMN(Sales) + COLUMNS(Sales)-1)
Na nasledujúcom obrázku sú zobrazené výsledky:
Tip. Pri otvorení pracovného hárka so vzorcami vytvorenými v staršej verzii v dynamickom poli Excel automaticky vloží operátor implicitného priesečníka.
Takto sa v Exceli vracia adresa bunky. Ak sa chcete bližšie pozrieť na všetky vzorce, o ktorých sa hovorí v tomto návode, môžete si stiahnuť náš vzorový zošit nižšie. Ďakujem vám za prečítanie a dúfam, že sa na našom blogu uvidíme budúci týždeň!
Cvičebnica na stiahnutie
Funkcia Excel ADDRESS - príklady vzorcov (.xlsx súbor)