Innholdsfortegnelse
I denne veiledningen skal vi se på hvordan du endrer Excel-kolonnetall til de tilsvarende alfabetiske tegnene.
Når du bygger komplekse formler i Excel, kan det hende du må få en kolonnebokstav i en bestemt celle eller fra et gitt tall. Dette kan gjøres på to måter: ved å bruke innebygde funksjoner eller en egendefinert.
Hvordan konvertere kolonnenummer til alfabet (enkeltstavskolonner)
I tilfelle kolonnenavnet består av en enkelt bokstav, fra A til Å, du kan få det ved å bruke denne enkle formelen:
CHAR(64 + kolonnetall)For eksempel, for å konvertere tall 10 til en kolonnebokstav, er formelen:
=CHAR(64 + 10)
Det er også mulig å skrive inn et tall i en celle og referere til den cellen i formelen din:
=CHAR(64 + A2)
Slik fungerer denne formelen:
CHAR-funksjonen returnerer et tegn basert på tegnkoden i ASCII-settet. ASCII-verdiene til de store bokstavene i det engelske alfabetet er 65 (A) til 90 (Z). Så, for å få tegnkoden med stor bokstav A, legger du til 1 til 64; for å få tegnkoden til stor B, legger du til 2 til 64, og så videre.
Hvordan konvertere Excel-kolonnenummer til bokstav (hvilken som helst kolonne)
Hvis du leter etter en allsidig formel som fungerer for en hvilken som helst kolonne i Excel (1 bokstav, 2 bokstaver og 3 bokstaver), så må du bruke litt mer kompleks syntaks:
SUBSTITUTE(ADRESSE(1, kolnummer, 4 ), "1", "")Medkolonnebokstav i A2, har formelen denne formen:
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")
Hvordan denne formelen fungerer:
Først konstruerer du en celleadresse med kolonnenummeret av interesse. For dette, oppgi følgende argumenter til ADRESSE-funksjonen:
- 1 for radnummer (radnummeret spiller ingen rolle, så du kan bruke hvilken som helst).
- A2 (cellen som inneholder kolonnenummeret) for kolonnenummer .
- 4 for abs_nummer argument for å returnere en relativ referanse.
Med parametrene ovenfor returnerer ADRESSE-funksjonen tekststrengen "A1" som resultat.
Siden vi bare trenger en kolonnebokstav, stripper vi radnummeret ved hjelp av ERSTATT-funksjonen, som søker etter "1" (eller hvilket radnummer du har hardkodet inne i ADRESSE-funksjonen) i teksten "A1" og erstatter den med en tom streng ("").
Få kolonnebokstav fra kolonnenummer ved hjelp av egendefinert funksjon Egendefinert funksjon
Hvis du trenger å konvertere kolonnetall til alfabetiske tegn med jevne mellomrom, kan en tilpasset brukerdefinert funksjon (UDF) spare mye tid.
Koden til funksjonen er ganske fin. enkelt og greit:
Public Function ColumnLetter(col_nu m) ColumnLetter = Split(Cells(1, col_num).Adresse, "$" )(1) SluttfunksjonHer bruker vi egenskapen Cells for å referere til en celle i rad 1 og spesifisert kolonnenummer og egenskapen Adresse for å returnere enstreng som inneholder en absolutt referanse til den cellen (som $A$1). Deretter bryter Split-funksjonen den returnerte strengen i individuelle elementer ved å bruke $-tegnet som skilletegn, og vi returnerer element (1), som er kolonnebokstaven.
Lim inn koden i VBA-editoren, og din den nye funksjonen Kolonnebokstav er klar til bruk. For detaljert veiledning, se: Hvordan sette inn VBA-kode i Excel.
Fra sluttbrukerens synspunkt er funksjonens syntaks så enkel som denne:
ColumnLetter(col_num)Hvor col_num er kolonnenummeret du vil konvertere til en bokstav.
Den virkelige formelen din kan se ut som følger:
=ColumnLetter(A2)
Og den vil returnere nøyaktig de samme resultatene som opprinnelige Excel-funksjoner som ble diskutert i forrige eksempel:
Hvordan få kolonnebokstav for en bestemt celle
For å identifisere en kolonnebokstav i en spesifikk celle, bruk COLUMN-funksjonen for å hente kolonnenummeret, og server det nummeret til ADRESSE-funksjonen. Den komplette formelen vil ha denne formen:
ERSTATTER(ADRESSE(1, KOLUMN( celleadresse), 4), "1", "")La oss som et eksempel finne en kolonnebokstav av celle C5:
=SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")
Selvfølgelig er resultatet "C" :)
Hvordan får du kolonnebokstaven til gjeldende celle
For å regne ut bokstaven til gjeldende celle, er formelen nesten den samme som i eksemplet ovenfor. Den eneste forskjellen er at COLUMN()-funksjonen erbrukes med et tomt argument for å referere til cellen der formelen er:
=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "")
Hvordan lage dynamisk områdereferanse fra kolonnenummer
Forhåpentligvis har de tidligere eksemplene gitt deg noen nye emner du kan tenke deg om, men du lurer kanskje på de praktiske bruksområdene.
I dette eksemplet viser vi deg hvordan du bruker "kolonnenummer til bokstav " formel for å løse virkelige oppgaver. Spesielt vil vi lage en dynamisk XLOOKUP-formel som vil trekke verdier fra en spesifikk kolonne basert på dens nummer.
Fra eksempeltabellen nedenfor, anta at du ønsker å få et overskuddstall for et gitt prosjekt (H2) ) og uke (H3).
For å utføre oppgaven, må du gi XLOOKUP intervallet for å returnere verdier. Siden vi bare har ukenummeret, som tilsvarer kolonnenummeret, skal vi først konvertere dette tallet til en kolonnebokstav, og deretter konstruere områdereferansen.
For enkelhets skyld, la oss bryte ned hele prosessen i 3 enkle å følge trinn.
- Konverter et kolonnenummer til en bokstav
Med kolonnenummeret i H3, bruk den allerede kjente formelen for å endre den til en alfabetisk tegn:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
Tips. Hvis nummeret i datasettet ditt ikke samsvarer med kolonnenummeret, sørg for å foreta den nødvendige korrigeringen. For eksempel, hvis vi hadde uke 1-data i kolonne B, uke 2-data i kolonne C, også videre, så bruker vi H3+1 for å få riktig kolonnenummer.
- Konstruer en streng som representerer en områdereferanse
For å bygge en områdereferanse i form av en streng, setter du sammen kolonnebokstaven som returneres av formelen ovenfor med den første og siste radnummer. I vårt tilfelle er datacellene i rad 3 til 8, så vi bruker denne formelen:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"
Gitt at H3 inneholder "3", som konverteres til "C", formelen vår gjennomgår følgende transformasjon:
="C"&"3:"&"C"&"8"
Og produserer strengen C3:C8.
- Lag en dynamisk områdereferanse
For å transformere en tekststreng til en gyldig referanse som Excel kan forstå, nester du formelen ovenfor i INDIREKTE-funksjonen og sender den til det tredje argumentet til XLOOKUP:
=XLOOKUP(H2, E3:E8, INDIRECT(H4), "Not found")
For å bli kvitt en ekstra celle som inneholder returområdestrengen, kan du plassere ERSTATTADRESSE-formelen i selve INDIREKTE-funksjonen:
=XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"), "Not found")
Med vår tilpassede ColumnLetter-funksjon kan du få en mer kompakt og elegant løsning:
=XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Not found")
Det er hvordan finne en kolonnebokstav fra et tall i Excel. Jeg takker for at du leser og ser frem til å se deg på bloggen vår neste uke!
Øvningsarbeidsbok for nedlasting
Excel-kolonne nummer til bokstav - eksempler (.xlsm-fil)