Ynhâldsopjefte
Yn dizze tutorial sille wy sjen hoe't jo Excel-kolomnûmers feroarje kinne nei de oerienkommende alfabetyske tekens.
By it bouwen fan komplekse formules yn Excel, moatte jo soms in kolomletter fan in spesifike sel of fan in opjûn nûmer. Dit kin op twa manieren dien wurde: troch ynboude funksjes te brûken of in oanpaste.
Hoe kinne jo kolomnûmer yn alfabet konvertearje (kolommen mei ien letter)
In gefal de kolomnamme bestiet út ien letter, fan A oant Z, jo kinne it krije troch dizze ienfâldige formule te brûken:
CHAR(64 + col_number)Om bygelyks nûmer 10 te konvertearjen nei in kolomletter, de formule is:
=CHAR(64 + 10)
It is ek mooglik om in nûmer yn te fieren yn guon sel en ferwize nei dy sel yn jo formule:
=CHAR(64 + A2)
Hoe wurket dizze formule:
De CHAR-funksje jout in karakter werom basearre op de karakterkoade yn 'e ASCII-set. De ASCII-wearden fan 'e haadletters fan it Ingelske alfabet binne 65 (A) oant 90 (Z). Dus, om de karakterkoade fan haadletter A te krijen, foegje jo 1 ta oan 64; om de karakterkoade fan haadletter B te krijen, foegje jo 2 ta oan 64 ta, ensfh.
Hoe kinne jo Excel-kolomnûmer nei letter (elke kolom) konvertearje
As jo op syk binne nei in alsidige formule dy't wurket foar elke kolom yn Excel (1 letter, 2 letter en 3 letter), dan moatte jo in wat kompleksere syntaksis brûke:
SUBSTITUTE(ADDRESS(1, col_number, 4 ), "1", "")Mei dekolom letter yn A2, de formule hat dizze foarm:
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")
Hoe wurket dizze formule:
Earst konstruearje jo in seladres mei it kolomnûmer fan belang. Jou dêrfoar de folgjende arguminten oan de ADDRESS-funksje:
- 1 foar row_num (it rigenûmer makket net echt út, dus jo kinne elk brûke).
- A2 (de sel mei it kolomnûmer) foar column_num .
- 4 foar abs_num argumint om in relative referinsje werom te jaan.
Mei de boppesteande parameters jout de ADDRESS-funksje de tekststring "A1" as resultaat werom.
Om't wy mar in kolomletter nedich hawwe, strippe wy it rigenûmer mei help fan de SUBSTITUTE-funksje, dy't siket nei "1" (of hokker rigenûmer jo ek yn 'e ADDRESS-funksje hardcodeard hawwe) yn 'e tekst "A1" en ferfangt it mei in lege tekenrige ("").
Krij kolombrief fan kolomnûmer mei gebrûk fan oanpaste funksje Oanpaste funksje
As jo regelmjittich kolomnûmers yn alfabetyske tekens omsette moatte, dan kin in oanpaste brûker-definieare funksje (UDF) jo tiid enoarm besparje.
De koade fan 'e funksje is moai plain and straightforward:
Public Function ColumnLetter(col_nu m) ColumnLetter = Split(Sellen(1, col_num).Adres, "$" )(1) EinfunksjeHjir brûke wy de eigenskip Sellen om te ferwizen nei in sel yn rige 1 en de oantsjutte kolomnûmer en it Adres -eigenskip om atekenrige mei in absolute ferwizing nei dy sel (lykas $A$1). Dan brekt de Split-funksje de weromjûne tekenrige yn yndividuele eleminten mei it $-teken as skieding, en wy jouwe elemint (1) werom, dat is de kolomletter.
Paste de koade yn de VBA-bewurker, en jo nije funksje ColumnLetter is klear foar gebrûk. Foar de detaillearre begelieding, sjoch asjebleaft: Hoe kinne jo VBA-koade ynfoegje yn Excel.
Fanút it eachpunt fan ein-brûkers is de syntaksis fan de funksje sa ienfâldich as dit:
ColumnLetter(col_num)Wêr col_num is it kolomnûmer dat jo wolle omsette yn in letter.
Jo echte formule kin der sa útsjen:
=ColumnLetter(A2)
En it sil weromkomme krekt deselde resultaten as native Excel-funksjes besprutsen yn it foarige foarbyld:
Hoe kinne jo in kolomletter fan in bepaalde sel krije
Om in kolomletter te identifisearjen fan in spesifike sel, brûk de KOLOM funksje te heljen it kolom nûmer, en tsjinje dat nûmer oan de ADRES funksje. De folsleine formule sil dizze foarm oannimme:
SUBSTITUTE(ADRES(1, COLUMN( seladres), 4), "1", "")Litte wy as foarbyld in kolomletter fine fan sel C5:
=SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")
Fansels is it resultaat "C" :)
Hoe kinne jo de kolomletter fan 'e aktuele krije sel
Om de letter fan 'e aktuele sel út te wurkjen, is de formule hast itselde as yn it boppesteande foarbyld. It ienige ferskil is dat de funksje COLUMN () isbrûkt mei in leech argumint om te ferwizen nei de sel wêr't de formule is:
=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "")
Hoe kinne jo dynamysk berikferwizing meitsje fan kolomnûmer
Hooplik hawwe de foargeande foarbylden jo wat nije ûnderwerpen jûn om nei te tinken, mar jo freegje jo miskien ôf oer de praktyske tapassingen.
Yn dit foarbyld sille wy jo sjen litte hoe't jo it "kolomnûmer nei letter brûke" " formule foar it oplossen fan echte taken. Yn it bysûnder, wy sille meitsje in dynamyske XLOOKUP formule dy't sil lûke wearden út in spesifike kolom basearre op syn nûmer. ) en wike (H3).
Om de taak te foltôgjen, moatte jo XLOOKUP it berik leverje wêrfan wearden weromkomme moatte. Om't wy allinich it wikenûmer hawwe, dat oerienkomt mei it kolomnûmer, sille wy dat nûmer earst konvertearje nei in kolomletter, en dan de berikferwizing konstruearje.
Litte wy foar it gemak it hiele proses ferbrekke. yn 3 maklik te folgjen stappen.
- Konvertearje in kolomnûmer nei in letter
Mei it kolomnûmer yn H3, brûk de al bekende formule om it te feroarjen yn in alfabetysk karakter:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
Tip. As it nûmer yn jo dataset net oerienkomt mei it kolomnûmer, wês dan wis dat jo de fereaske korreksje meitsje. Bygelyks, as wy de wike 1 gegevens yn kolom B hiene, de wike 2 gegevens yn kolom C, ensa fierder, dan soene wy H3+1 brûke om it juste kolomnûmer te krijen.
- Konstruearje in tekenrige dy't in berikferwizing fertsjintwurdiget
Om in berikferwizing te bouwen yn 'e foarm fan in tekenrige, ferbine jo de kolomletter weromjûn troch de boppesteande formule mei de earste en lêste rige nûmers. Yn ús gefal binne de gegevenssellen yn rigen 3 oant 8, dus brûke wy dizze formule:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"
Mei it each op dat H3 "3" befettet, dy't wurdt omboud ta "C", ús formule ûndergiet de folgjende transformaasje:
="C"&"3:"&"C"&"8"
En produsearret de tekenrige C3:C8.
- Make in referinsje dynamysk berik
Om in tekststring te transformearjen yn in jildige referinsje dy't Excel kin begripe, nêst de boppesteande formule yn 'e INDIRECT funksje, en jou it dan troch nei it 3e argumint fan XLOOKUP:
=XLOOKUP(H2, E3:E8, INDIRECT(H4), "Not found")
Om in ekstra sel kwyt te reitsjen dy't de tekenrige foar weromkommende berik befettet, kinne jo de formule SUBSTITUTE ADDRESS pleatse binnen de INDIREKTE funksje sels:
=XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"), "Not found")
Mei ús oanpaste ColumnLetter-funksje kinne jo in kompakter en eleganter oplossing krije:
=XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Not found")
Dat is hoe't jo in kolombrief fine fan in nûmer yn Excel. Ik tankje jo foar it lêzen en sjoch út nei jo nije wike op ús blog!
Oefeningswurkboek foar download
Excel-kolomnûmer nei letter - foarbylden (.xlsm-bestân)