INHOUDSOPGAWE
In hierdie tutoriaal sal ons kyk hoe om Excel-kolomnommers na die ooreenstemmende alfabetiese karakters te verander.
Wanneer jy komplekse formules in Excel bou, moet jy soms 'n kolomletter van 'n spesifieke sel of van 'n gegewe nommer. Dit kan op twee maniere gedoen word: deur ingeboude funksies of 'n pasgemaakte een te gebruik.
Hoe om kolomnommer in alfabet om te skakel (enkelletterkolomme)
In geval die kolomnaam bestaan uit 'n enkele letter, van A tot Z, jy kan dit kry deur hierdie eenvoudige formule te gebruik:
CHAR(64 + kol_nommer)Om byvoorbeeld nommer 10 om te skakel na 'n kolomletter, die formule is:
=CHAR(64 + 10)
Dit is ook moontlik om 'n nommer in een of ander sel in te voer en na daardie sel in jou formule te verwys:
=CHAR(64 + A2)
Hoe hierdie formule werk:
Die CHAR-funksie gee 'n karakter terug gebaseer op die karakterkode in die ASCII-stel. Die ASCII-waardes van die hoofletters van die Engelse alfabet is 65 (A) tot 90 (Z). Dus, om die karakterkode van hoofletter A te kry, voeg jy 1 by 64; om die karakterkode van hoofletter B te kry, voeg jy 2 by tot 64, ensovoorts.
Hoe om Excel-kolomnommer na letter (enige kolom) om te skakel
As jy op soek is na 'n veelsydige formule wat vir enige kolom in Excel werk (1 letter, 2 letter en 3 letter), dan sal jy 'n bietjie meer komplekse sintaksis moet gebruik:
SUBSTITUTE(ADDRESS(1, col_number, 4 ), "1", "")Met diekolom letter in A2, die formule neem hierdie vorm aan:
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")
Hoe hierdie formule werk:
Eerstens konstrueer jy 'n seladres met die kolomnommer van belang. Verskaf die volgende argumente vir die ADDRESS-funksie hiervoor:
- 1 vir rynommer (die rynommer maak nie regtig saak nie, so jy kan enige gebruik).
- A2 (die sel wat die kolomnommer bevat) vir kolom_nommer .
- 4 vir abs_num argument om 'n relatiewe verwysing terug te gee.
Met bogenoemde parameters gee die ADRES-funksie die teksstring "A1" as die resultaat terug.
Aangesien ons net 'n kolomletter nodig het, stroop ons die rynommer met behulp van die SUBSTITUT-funksie, wat soek na "1" (of watter rynommer jy ook al binne-in die ADDRESS-funksie hardkodeer het) in die teks "A1" en vervang dit met 'n leë string ("").
Kry kolomletter van kolomnommer deur gebruik te maak van pasgemaakte funksie Pasgemaakte funksie
As jy gereeld kolomnommers in alfabetiese karakters moet omskakel, dan kan 'n pasgemaakte gebruikergedefinieerde funksie (UDF) jou tyd geweldig bespaar.
Die kode van die funksie is mooi eenvoudig en reguit:
Publieke Funksie KolomBrief(kol_nu m) ColumnLetter = Split(Cells(1, col_num).Adres, "$" )(1) EindfunksieHier gebruik ons die Selle -eienskap om te verwys na 'n sel in ry 1 en die gespesifiseerde kolomnommer en die Adres -eienskap om 'n terug te geestring wat 'n absolute verwysing na daardie sel bevat (soos $A$1). Dan, die Split-funksie breek die teruggekeerde string in individuele elemente deur die $-teken as die skeiding te gebruik, en ons gee element (1), wat die kolomletter is, terug.
Plak die kode in die VBA-redigeerder, en jou nuwe Kolombrief -funksie is gereed vir gebruik. Vir die gedetailleerde leiding, sien asseblief: Hoe om VBA-kode in Excel in te voeg.
Vanuit die eindgebruikeroogpunt is die funksie se sintaksis so eenvoudig soos hierdie:
KolomLetter(kol_num)Waar kol_nommer is die kolomnommer wat jy in 'n letter wil omskakel.
Jou regte formule kan soos volg lyk:
=ColumnLetter(A2)
En dit sal terugkeer presies dieselfde resultate as inheemse Excel-funksies wat in die vorige voorbeeld bespreek is:
Hoe om kolomletter van sekere sel te kry
Om 'n kolomletter van 'n spesifieke sel, gebruik die KOLOM-funksie om die kolomnommer te herwin, en bedien daardie nommer aan die ADRES-funksie. Die volledige formule sal hierdie vorm aanneem:
PLAASVERVANG(ADRES(1, KOLOM( seladres), 4), "1", "")As 'n voorbeeld, kom ons soek 'n kolomletter van sel C5:
=SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")
Natuurlik is die resultaat "C" :)
Hoe om kolomletter van die huidige te kry sel
Om die letter van die huidige sel uit te werk, is die formule amper dieselfde as in die voorbeeld hierbo. Die enigste verskil is dat die COLUMN() funksie isgebruik met 'n leë argument om te verwys na die sel waar die formule is:
=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "")
Hoe om dinamiese reeksverwysing vanaf kolomnommer te skep
Hopelik het die vorige voorbeelde jou 'n paar nuwe onderwerpe gegee om na te dink, maar jy wonder dalk oor die praktiese toepassings.
In hierdie voorbeeld sal ons jou wys hoe om die "kolomnommer na letter te gebruik" "formule vir die oplossing van werklike take. Ons sal veral 'n dinamiese XLOOKUP-formule skep wat waardes uit 'n spesifieke kolom sal trek op grond van sy nommer.
Uit die voorbeeldtabel hieronder, veronderstel jy wil 'n winssyfer vir 'n gegewe projek kry (H2) ) en week (H3).
Om die taak uit te voer, moet jy XLOOKUP voorsien van die reeks waaruit waardes teruggestuur moet word. Aangesien ons net die weeknommer het, wat ooreenstem met die kolomnommer, gaan ons daardie nommer eers na 'n kolomletter omskakel en dan die reeksverwysing konstrueer.
Kom ons breek vir gerief die hele proses af. in 3 maklik om te volg stappe.
- Verander 'n kolomnommer na 'n letter
Met die kolomnommer in H3, gebruik die reeds bekende formule om dit na 'n alfabetiese te verander karakter:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
Wenk. As die nommer in jou datastel nie ooreenstem met die kolomnommer nie, maak seker dat jy die vereiste regstelling maak. Byvoorbeeld, as ons die week 1-data in kolom B gehad het, die week 2-data in kolom C, enso aan, dan sal ons H3+1 gebruik om die korrekte kolomnommer te kry.
- Konstrueer 'n string wat 'n reeksverwysing verteenwoordig
Om 'n reeksverwysing in die vorm van 'n string te bou, koppel jy die kolomletter wat deur die formule hierbo teruggestuur word aaneen met die eerste en laaste ry nommers. In ons geval is die dataselle in rye 3 tot 8, dus gebruik ons hierdie formule:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"
Gegee dat H3 "3" bevat, wat omgeskakel word na "C", ons formule ondergaan die volgende transformasie:
="C"&"3:"&"C"&"8"
En produseer die string C3:C8.
- Maak 'n dinamiese reeksverwysing
Om 'n teksstring te transformeer in 'n geldige verwysing wat Excel kan verstaan, nes die bogenoemde formule in die INDIREKTE funksie, en gee dit dan na die 3de argument van XLOOKUP:
=XLOOKUP(H2, E3:E8, INDIRECT(H4), "Not found")
Om ontslae te raak van 'n ekstra sel wat die terugkeerreeks bevat, kan jy die PLAASVERVANGER ADRES-formule binne die INDIREKTE funksie self plaas:
=XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"), "Not found")
Met ons pasgemaakte ColumnLetter-funksie kan jy 'n meer kompakte en elegante oplossing kry:
=XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Not found")
Dis hoe om 'n kolomletter van 'n nommer in Excel te vind. Ek bedank jou vir die lees en sien uit daarna om jou volgende week op ons blog te sien!
Oefenwerkboek om af te laai
Excel-kolomnommer tot letter - voorbeelde (.xlsm-lêer)