Obsah
V tomto návode sa pozrieme na to, ako zmeniť čísla stĺpcov programu Excel na príslušné abecedné znaky.
Pri vytváraní zložitých vzorcov v programe Excel môžete niekedy potrebovať získať písmeno stĺpca konkrétnej bunky alebo z daného čísla. To možno urobiť dvoma spôsobmi: pomocou vstavaných funkcií alebo vlastnej funkcie.
Ako previesť číslo stĺpca na abecedu (stĺpce s jedným písmenom)
Ak názov stĺpca pozostáva z jedného písmena od A po Z, môžete ho získať pomocou tohto jednoduchého vzorca:
CHAR(64 + col_number )Napríklad na prevod čísla 10 na písmeno stĺpca sa použije vzorec:
=CHAR(64 + 10)
Je tiež možné zadať číslo do niektorej bunky a odkazovať na túto bunku vo vzorci:
=CHAR(64 + A2)
Ako tento vzorec funguje:
Funkcia CHAR vracia znak na základe kódu znaku v súbore ASCII. Hodnoty ASCII veľkých písmen anglickej abecedy sú 65 (A) až 90 (Z). Ak teda chcete získať kód znaku veľkého písmena A, pripočítajte 1 k 64; ak chcete získať kód znaku veľkého písmena B, pripočítajte 2 k 64 atď.
Ako previesť číslo stĺpca programu Excel na písmeno (akýkoľvek stĺpec)
Ak hľadáte univerzálny vzorec, ktorý funguje pre akýkoľvek stĺpec v programe Excel (1-písmenový, 2-písmenový a 3-písmenový), budete musieť použiť trochu zložitejšiu syntax:
SUBSTITUTE(ADRESA(1, col_number , 4), "1", "")Pri písmene stĺpca v A2 má vzorec tento tvar:
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")
Ako tento vzorec funguje:
Najprv skonštruujte adresu bunky s číslom stĺpca, ktorý vás zaujíma. Na tento účel zadajte funkcii ADDRESS nasledujúce argumenty:
- 1 pre číslo_riadku (na čísle riadku nezáleží, takže môžete použiť ľubovoľné).
- A2 (bunka obsahujúca číslo stĺpca) pre column_num .
- 4 pre abs_num argument na vrátenie relatívneho odkazu.
S uvedenými parametrami funkcia ADDRESS vráti ako výsledok textový reťazec "A1".
Keďže potrebujeme len písmeno stĺpca, číslo riadku odstránime pomocou funkcie SUBSTITUTE, ktorá v texte "A1" vyhľadá "1" (alebo akékoľvek číslo riadku, ktoré ste natvrdo zadali vo funkcii ADDRESS) a nahradí ho prázdnym reťazcom ("").
Získanie písmena stĺpca z čísla stĺpca pomocou vlastnej funkcie Vlastná funkcia
Ak potrebujete pravidelne konvertovať čísla stĺpcov na abecedné znaky, potom vám vlastná funkcia definovaná používateľom (UDF) môže výrazne ušetriť čas.
Kód funkcie je celkom jednoduchý a prehľadný:
Public Function ColumnLetter(col_num) ColumnLetter = Split(Cells(1, col_num).Address, "$" )(1) End FunctionTu používame Bunky na odkaz na bunku v riadku 1 a na číslo zadaného stĺpca a na vlastnosť Adresa vlastnosť vrátiť reťazec obsahujúci absolútny odkaz na danú bunku (napríklad $A$1). Potom funkcia Split rozdelí vrátený reťazec na jednotlivé prvky pomocou znaku $ ako oddeľovača a my vrátime prvok (1), čo je písmeno stĺpca.
Vložte kód do editora VBA a váš nový ColumnLetter Funkcia je pripravená na použitie. Podrobný návod nájdete v časti: Ako vložiť kód VBA do programu Excel.
Z pohľadu koncového používateľa je syntax funkcie jednoduchá:
ColumnLetter(col_num)Kde col_num je číslo stĺpca, ktoré chcete previesť na písmeno.
Váš skutočný vzorec môže vyzerať takto:
=ColumnLetter(A2)
A vráti presne tie isté výsledky ako natívne funkcie Excelu, o ktorých sme hovorili v predchádzajúcom príklade:
Ako získať písmeno stĺpca určitej bunky
Ak chcete identifikovať písmeno stĺpca konkrétnej bunky, použite funkciu COLUMN na získanie čísla stĺpca a toto číslo naservírujte funkcii ADDRESS. Celý vzorec bude mať tento tvar:
SUBSTITUTE(ADRESA(1, STĹPEC( cell_address ), 4), "1", "")Ako príklad nájdime písmeno stĺpca bunky C5:
=SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")
Výsledok je samozrejme "C" :)
Ako získať písmeno stĺpca aktuálnej bunky
Ak chcete zistiť písmeno aktuálnej bunky, vzorec je takmer rovnaký ako vo vyššie uvedenom príklade. Jediný rozdiel je v tom, že funkcia COLUMN() sa používa s prázdnym argumentom, ktorý odkazuje na bunku, v ktorej sa vzorec nachádza:
=SUBSTITUTE(ADRESA(1, STĹPEC(), 4), "1", "")
Ako vytvoriť referenciu dynamického rozsahu z čísla stĺpca
Dúfame, že predchádzajúce príklady vám poskytli nové podnety na zamyslenie, ale možno vás zaujímajú praktické aplikácie.
V tomto príklade si ukážeme, ako použiť vzorec "číslo stĺpca na písmeno" na riešenie úloh z reálneho života. Konkrétne vytvoríme dynamický vzorec XLOOKUP, ktorý vytiahne hodnoty z konkrétneho stĺpca na základe jeho čísla.
Predpokladajme, že zo vzorovej tabuľky nižšie chcete získať údaj o zisku pre daný projekt (H2) a týždeň (H3).
Na splnenie úlohy je potrebné poskytnúť XLOOKUP-u rozsah, z ktorého má vrátiť hodnoty. Keďže máme k dispozícii len číslo týždňa, ktoré zodpovedá číslu stĺpca, prevedieme najprv toto číslo na písmeno stĺpca a potom skonštruujeme odkaz na rozsah.
Pre uľahčenie si celý proces rozdelíme do 3 ľahko vykonateľných krokov.
- Prevod čísla stĺpca na písmeno
Pri čísle stĺpca v H3 použite už známy vzorec na jeho zmenu na abecedný znak:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
Tip. Ak sa číslo v súbore údajov nezhoduje s číslom stĺpca, nezabudnite vykonať požadovanú opravu. Napríklad, ak by sme mali údaje za 1. týždeň v stĺpci B, údaje za 2. týždeň v stĺpci C atď.
- Konštrukcia reťazca reprezentujúceho odkaz na rozsah
Ak chcete vytvoriť odkaz na rozsah vo forme reťazca, spojte písmeno stĺpca vrátené vyššie uvedeným vzorcom s číslom prvého a posledného riadku. V našom prípade sa dátové bunky nachádzajú v riadkoch 3 až 8, preto použijeme tento vzorec:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"
Vzhľadom na to, že H3 obsahuje znak "3", ktorý je prevedený na znak "C", náš vzorec prejde nasledujúcou transformáciou:
="C"&"3:"&"C"&"8"
A vytvorí reťazec C3:C8.
- Vytvorte referenčný dynamický rozsah
Ak chcete transformovať textový reťazec na platný odkaz, ktorému Excel rozumie, vložte vyššie uvedený vzorec do funkcie INDIRECT a potom ho odovzdajte tretiemu argumentu funkcie XLOOKUP:
=XLOOKUP(H2, E3:E8, INDIRECT(H4), "Nenájdené")
Ak sa chcete zbaviť ďalšej bunky obsahujúcej reťazec návratového rozsahu, môžete vzorec SUBSTITUTE ADDRESS umiestniť do samotnej funkcie INDIRECT:
=XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"), "Not found")
Pomocou našej vlastnej funkcie ColumnLetter môžete získať kompaktnejšie a elegantnejšie riešenie:
=XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Not found")
Takto sa v Exceli vyhľadáva písmeno stĺpca z čísla. Ďakujem vám za prečítanie a teším sa na vás na našom blogu budúci týždeň!
Cvičebnica na stiahnutie
Excel číslo stĺpca na písmeno - príklady (.xlsm súbor)