Sådan konverteres Excel-kolonnummer til bogstav

  • Del Dette
Michael Brown

I denne vejledning vil vi se på, hvordan du ændrer Excel-kolonnumre til de tilsvarende alfabetiske tegn.

Når du opbygger komplekse formler i Excel, kan du nogle gange have brug for at få et kolonnebogstav fra en bestemt celle eller fra et bestemt tal. Dette kan gøres på to måder: ved at bruge indbyggede funktioner eller en brugerdefineret funktion.

    Sådan konverteres kolonnetal til alfabet (kolonner med et enkelt bogstav)

    Hvis kolonnens navn består af et enkelt bogstav fra A til Z, kan du få det ved at bruge denne enkle formel:

    CHAR(64 + col_number )

    For at konvertere tallet 10 til et kolonnebogstav er formlen f.eks:

    =CHAR(64 + 10)

    Det er også muligt at indtaste et tal i en celle og henvise til denne celle i din formel:

    =CHAR(64 + A2)

    Sådan fungerer denne formel:

    CHAR-funktionen returnerer et tegn baseret på tegnkoden i ASCII-sættet. ASCII-værdierne for de store bogstaver i det engelske alfabet er 65 (A) til 90 (Z). For at få tegnkoden for stort A skal du altså lægge 1 til 64, for at få tegnkoden for stort B skal du lægge 2 til 64 og så videre.

    Sådan konverteres Excel-kolonnummer til bogstav (enhver kolonne)

    Hvis du er på udkig efter en alsidig formel, der fungerer for alle kolonner i Excel (1 bogstav, 2 bogstaver og 3 bogstaver), skal du bruge en lidt mere kompleks syntaks:

    SUBSTITUTE(ADRESSE(1, col_number , 4), "1", "")

    Med kolonnebogstavet i A2 har formlen denne form:

    =SUBSTITUT(ADRESSE(1, A2, 4), "1", "")

    Sådan fungerer denne formel:

    Først konstrueres en celleadresse med det ønskede kolonnenummer, og der angives følgende argumenter til ADDRESS-funktionen:

    • 1 for row_num (rækkeantallet er egentlig ligegyldigt, så du kan bruge et hvilket som helst).
    • A2 (cellen med kolonnenummeret) for kolonne_nummer .
    • 4 for abs_num argumentet for at returnere en relativ reference.

    Med ovenstående parametre returnerer ADDRESS-funktionen tekststrengen "A1" som resultat.

    Da vi kun har brug for et kolonnebogstav, fjerner vi rækkens nummer ved hjælp af funktionen SUBSTITUTE, som søger efter "1" (eller det rækkenummer, du har hardcodet i ADDRESS-funktionen) i teksten "A1" og erstatter det med en tom streng (""").

    Hent kolonnebogstav fra kolonnetal ved hjælp af brugerdefineret funktion Brugerdefineret funktion

    Hvis du regelmæssigt skal konvertere kolonnetal til alfabetiske tegn, kan en brugerdefineret brugerdefineret funktion (UDF) spare dig meget tid.

    Koden til funktionen er ret enkel og ligetil:

    Public Function ColumnLetter(col_num) ColumnLetter = Split(Cells(1, col_num).Address, "$" )(1) End Function

    Her bruger vi den Celler til at henvise til en celle i række 1 og det angivne kolonnenummer og Adresse for at returnere en streng, der indeholder en absolut reference til den pågældende celle (f.eks. $A$1). Derefter opdeler Split-funktionen den returnerede streng i individuelle elementer ved at bruge $-tegnet som separator, og vi returnerer element (1), som er kolonnebogstavet.

    Indsæt koden i VBA-editoren, og din nye ColumnLetter Funktionen er klar til brug. Du kan finde en detaljeret vejledning i: Sådan indsætter du VBA-kode i Excel.

    Set fra slutbrugerens syntaks er funktionens syntaks så enkel som denne:

    ColumnLetter(col_num)

    Hvor col_num er det kolonnenummer, som du vil konvertere til et bogstav.

    Din rigtige formel kan se således ud:

    =SpalteBogstav(A2)

    Og den returnerer nøjagtig de samme resultater som de originale Excel-funktioner, der blev diskuteret i det foregående eksempel:

    Sådan får du kolonne bogstav i en bestemt celle

    Hvis du vil identificere et kolonnebogstav i en bestemt celle, skal du bruge funktionen COLUMN til at finde kolonnens nummer, og du skal bruge dette nummer til ADDRESS-funktionen. Den komplette formel får denne form:

    SUBSTITUTE(ADRESSE(1, KOLONNE( cell_address ), 4), "1", "")

    Lad os f.eks. finde et kolonnebogstav i celle C5:

    =SUBSTITUT(ADRESSE(1, KOLONNE(C5), 4), "1", "")

    Resultatet er naturligvis "C" :)

    Sådan får du kolonnebogstavet i den aktuelle celle

    For at beregne bogstavet i den aktuelle celle er formlen næsten den samme som i ovenstående eksempel. Den eneste forskel er, at funktionen COLUMN() bruges med et tomt argument for at henvise til den celle, hvor formlen er:

    =SUBSTITUT(ADRESSE(1, KOLONNE(), 4), "1", "")

    Sådan oprettes en reference for dynamisk område fra kolonnenummer

    Forhåbentlig har de foregående eksempler givet dig nogle nye emner til eftertanke, men du undrer dig måske over de praktiske anvendelser.

    I dette eksempel viser vi dig, hvordan du kan bruge formlen "kolonnetal til bogstav" til at løse opgaver i det virkelige liv. Vi opretter især en dynamisk XLOOKUP-formel, der trækker værdier fra en bestemt kolonne på baggrund af dens nummer.

    Lad os antage, at du ud fra nedenstående tabel ønsker at få et overskudstal for et givet projekt (H2) og en given uge (H3).

    For at udføre opgaven skal du give XLOOKUP det område, hvorfra værdierne skal returneres. Da vi kun har ugenummeret, som svarer til kolonnens nummer, konverterer vi først dette nummer til et kolonnebogstav og konstruerer derefter intervallet.

    Lad os for nemheds skyld opdele hele processen i 3 trin, der er nemme at følge.

    1. Konverter et kolonnetal til et bogstav

      Med kolonnenummeret i H3 kan du bruge den allerede kendte formel til at ændre det til et alfabetisk tegn:

      =SUBSTITUT(ADRESSE(1, H3, 4), "1", "")

      Tip: Hvis nummeret i dit datasæt ikke svarer til kolonnenummeret, skal du sørge for at foretage den nødvendige korrektion. Hvis vi f.eks. havde dataene for uge 1 i kolonne B, dataene for uge 2 i kolonne C osv., ville vi bruge H3+1 for at få det korrekte kolonnenummer.

    2. Konstruere en streng, der repræsenterer en intervalreference

      Hvis du vil oprette en områdehenvisning i form af en streng, skal du sammenkæde det kolonnebogstav, der returneres af ovenstående formel, med det første og sidste rækketal. I vores tilfælde er datacellerne i række 3 til 8, så vi bruger denne formel:

      =SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"

      Da H3 indeholder "3", som omdannes til "C", undergår vores formel følgende omdannelse:

      ="C"&"3:"&"C"&"8"

      Og producerer strengen C3:C8.

    3. Lav en reference for det dynamiske område

      Hvis du vil omdanne en tekststreng til en gyldig reference, som Excel kan forstå, skal du indlejre ovenstående formel i INDIRECT-funktionen og derefter sende den til det tredje argument i XLOOKUP:

      =XLOOKUP(H2, E3:E8, INDIRECT(H4), "Ikke fundet")

      Hvis du vil slippe for en ekstra celle, der indeholder strengen for returområdet, kan du placere formlen SUBSTITUTE ADDRESS i selve INDIRECT-funktionen:

      =XLOOKUP(H2, E3:E8, INDIRECT(SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"), "Ikke fundet")

    Med vores brugerdefinerede ColumnLetter-funktion kan du få en mere kompakt og elegant løsning:

    =XLOOKUP(H2, E3:E8, INDIRECT(ColumnLetter(H3) & "3:" & ColumnLetter(H3) & "8"), "Not found")

    Sådan finder du et kolonnebogstav ud fra et tal i Excel. Jeg takker for din læsning og glæder mig til at se dig på vores blog i næste uge!

    Arbejdsbog til download

    Excel kolonnenummer til bogstav - eksempler (.xlsm-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.