Tartalomjegyzék
Ebben a bemutatóban azt nézzük meg, hogyan lehet az Excel oszlopszámokat a megfelelő ábécés karakterekre cserélni.
Amikor összetett képleteket építünk az Excelben, néha szükségünk lehet arra, hogy egy adott cellából vagy egy adott számból egy oszlop betűjelét kapjuk meg. Ezt kétféleképpen tehetjük meg: beépített függvények vagy egyéni függvények használatával.
Az oszlopszám ábécévé alakítása (egybetűs oszlopok)
Ha az oszlop neve egyetlen betűből áll, A-tól Z-ig, akkor az alábbi egyszerű képlet segítségével kaphatja meg:
CHAR(64 + col_number )Például a 10-es számot oszlopbetűvé alakítjuk a következő képlettel:
=CHAR(64 + 10)
Az is lehetséges, hogy beír egy számot valamelyik cellába, és arra a cellára hivatkozik a képletben:
=CHAR(64 + A2)
Hogyan működik ez a képlet:
A CHAR függvény egy karaktert ad vissza az ASCII-készletben szereplő karakterkód alapján. Az angol ábécé nagybetűinek ASCII-értékei 65 (A) és 90 (Z) között vannak. Tehát az A nagybetű karakterkódjának megadásához 1 és 64; a B nagybetű karakterkódjának megadásához 2 és 64, és így tovább.
Hogyan lehet az Excel oszlopszámot betűvé alakítani (bármilyen oszlop)
Ha olyan sokoldalú képletet keres, amely az Excel bármelyik oszlopához (1 betűs, 2 betűs és 3 betűs) használható, akkor egy kicsit összetettebb szintaxist kell használnia:
HELYETTESÍTŐ(CÍM(1, col_number , 4), "1", "")Az A2 oszlop betűjelével a képlet a következő formát ölti:
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")
Hogyan működik ez a képlet:
Először egy cellacímet kell létrehozni a kívánt oszlopszámmal. Ehhez az ADDRESS függvénynek a következő argumentumokat kell megadni:
- 1 a következőhöz row_num (a sorszám nem igazán számít, így bármelyiket használhatja).
- A2 (az oszlopszámot tartalmazó cella) a következőknél column_num .
- 4 a következőhöz abs_num argumentummal egy relatív hivatkozást ad vissza.
A fenti paraméterekkel az ADDRESS függvény az "A1" szöveges karakterláncot adja vissza eredményként.
Mivel nekünk csak egy oszlop betűjére van szükségünk, a SUBSTITUTE függvény segítségével eltávolítjuk a sorszámot, amely az "A1" szövegben megkeresi az "1" (vagy bármilyen sorszámot, amelyet az ADDRESS függvényben keményen kódoltunk), és üres karakterlánccal ("") helyettesíti.
Az oszlop betűjének kinyerése az oszlopszámból egyéni függvény segítségével Egyéni függvény
Ha rendszeresen át kell alakítania az oszlopszámokat ábécés karakterekké, akkor egy egyéni, felhasználó által definiált függvény (UDF) rengeteg időt takaríthat meg.
A függvény kódja elég egyszerű és egyszerű:
Public Function ColumnLetter(col_num) ColumnLetter = Split(Cells(1, col_num).Address, "$" )(1) End FunctionItt használjuk a Sejtek tulajdonságot, hogy az 1. sorban lévő cellára és a megadott oszlopszámra hivatkozzon, és a Cím: tulajdonsággal egy olyan karakterláncot ad vissza, amely abszolút hivatkozást tartalmaz az adott cellára (például $A$1). Ezután a Split függvény a visszaadott karakterláncot a $ jelet elválasztóként használva egyes elemekre bontja, és visszaadja az (1) elemet, amely az oszlop betűje.
Illessze be a kódot a VBA-szerkesztőbe, és az új ColumnLetter A részletes útmutatást lásd: Hogyan illesszünk be VBA-kódot az Excelbe.
A végfelhasználó szempontjából a függvény szintaxisa ilyen egyszerű:
ColumnLetter(col_num)Hol col_num az az oszlopszám, amelyet betűvé kíván alakítani.
A valódi képlet a következőképpen nézhet ki:
=ColumnLetter(A2)
És pontosan ugyanazokat az eredményeket adja vissza, mint az előző példában tárgyalt natív Excel-funkciók:
Hogyan kaphatom meg az oszlop betűjét bizonyos cellában
Egy adott cella oszlopbetűjének azonosításához a COLUMN függvénnyel kérje ki az oszlopszámot, és ezt a számot adja meg az ADDRESS függvénynek. A teljes képlet ezt a formulát fogja felvenni:
SUBSTITUTE(CÍM(1, OSZLOP( cell_address ), 4), "1", "")Példaként keressük meg a C5-ös cella egyik oszlopának betűjelét:
=SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")
Az eredmény nyilvánvalóan "C" :)
Hogyan kapjuk meg az aktuális cella oszlop betűjelét
Az aktuális cella betűjelének kiszámításához a képlet majdnem ugyanaz, mint a fenti példában. Az egyetlen különbség az, hogy a COLUMN() függvényt üres argumentummal használjuk, hogy arra a cellára hivatkozzunk, ahol a képlet van:
=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "")
Hogyan hozzunk létre dinamikatartomány-hivatkozást az oszlopszámból
Remélhetőleg az előző példák adtak néhány új gondolatébresztő témát, de talán elgondolkodott a gyakorlati alkalmazásokon.
Ebben a példában megmutatjuk, hogyan használhatja az "oszlopszámot betűre" képletet valós feladatok megoldására. Különösen egy dinamikus XLOOKUP képletet hozunk létre, amely egy adott oszlopból húz értékeket annak száma alapján.
Tegyük fel, hogy az alábbi mintatáblázatból egy adott projektre (H2) és hétre (H3) vonatkozó nyereségszámot szeretne kapni.
A feladat elvégzéséhez meg kell adnunk az XLOOKUP-nak azt a tartományt, amelyből az értékeket visszaadja. Mivel nekünk csak a hét száma áll rendelkezésünkre, amely megfelel az oszlopszámnak, először ezt a számot alakítjuk át oszlopbetűvé, és csak ezután konstruáljuk meg a tartományhivatkozást.
Az egyszerűség kedvéért az egész folyamatot 3 könnyen követhető lépésre bontjuk.
- Egy oszlopszám átalakítása betűvé
A H3-ban lévő oszlopszámot a már ismert képlet segítségével változtassa át betűrendes karakterre:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
Tipp: Ha az adatkészletben szereplő szám nem egyezik az oszlopszámmal, mindenképpen végezze el a szükséges korrekciót. Ha például az 1. hét adatai a B oszlopban, a 2. hét adatai a C oszlopban, és így tovább, akkor a H3+1 segítségével kapjuk meg a helyes oszlopszámot.
- Egy tartományreferenciát reprezentáló karakterlánc konstruálása
A tartományhivatkozás string formájában történő létrehozásához a fenti képlet által visszaadott oszlop betűjelét és az első és utolsó sorszámot kell összekapcsolni. Esetünkben az adatcellák a 3-tól 8-ig terjedő sorokban vannak, ezért ezt a képletet használjuk:
=SUBSTITUTE(ADRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADRESS(1, H3, 4), "1", "") & "8"
Tekintettel arra, hogy a H3 "3-at" tartalmaz, amelyet "C"-vé alakítunk át, a képletünk a következő átalakuláson megy keresztül:
="C"&"3:"&"C"&"8"
És a C3:C8 karakterláncot eredményezi.
- Dinamikatartomány-referencia készítése
A szöveges karakterlánc Excel által értelmezhető, érvényes hivatkozássá alakításához a fenti képletet fészkelje be az INDIRECT függvénybe, majd adja át az XLOOKUP 3. argumentumának:
=XLOOKUP(H2, E3:E8, INDIRECT(H4), "Nem található")
A visszatérési tartomány karakterláncát tartalmazó extra cellától való megszabaduláshoz a SUBSTITUTE ADDRESS képletet magában az INDIRECT függvényben is elhelyezheti:
=XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADRESS(1, H3, 4), "1", "") & "8"), "Nem található")
Egyéni ColumnLetter funkcióval kompaktabb és elegánsabb megoldást kaphat:
=XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Not found")
Így találjuk meg az oszlop betűjét egy számból az Excelben. Köszönöm, hogy elolvastad és várom a jövő heti blogunkon!
Gyakorlati munkafüzet letölthető
Excel oszlopszám betűre - példák (.xlsm fájl)