Jak przekonwertować numer kolumny w Excelu na literę

  • Udostępnij To
Michael Brown

W tym tutorialu przyjrzymy się, jak zmienić numery kolumn w Excelu na odpowiadające im znaki alfabetu.

Podczas budowania złożonych formuł w programie Excel, czasami możesz potrzebować uzyskać literę kolumny z określonej komórki lub z danej liczby. Można to zrobić na dwa sposoby: za pomocą wbudowanych funkcji lub niestandardowych.

    Jak zamienić numer kolumny na alfabet (kolumny jednoliterowe)

    W przypadku, gdy nazwa kolumny składa się z jednej litery, od A do Z, można ją uzyskać za pomocą tego prostego wzoru:

    CHAR(64 + col_number )

    Na przykład, aby przekształcić liczbę 10 na literę kolumny, wzór to:

    =CHAR(64 + 10)

    Możliwe jest również wprowadzenie liczby w jakiejś komórce i odwołanie się do tej komórki w swojej formule:

    =CHAR(64 + A2)

    Jak działa ta formuła:

    Funkcja CHAR zwraca znak na podstawie kodu znaku w zbiorze ASCII. Wartości ASCII wielkich liter alfabetu angielskiego to 65 (A) do 90 (Z). Zatem, aby uzyskać kod znaku wielkiej litery A, dodajemy 1 do 64; aby uzyskać kod znaku wielkiej litery B, dodajemy 2 do 64 itd.

    Jak przekonwertować numer kolumny w Excelu na literę (dowolna kolumna)

    Jeśli szukasz uniwersalnej formuły, która działa dla dowolnej kolumny w Excelu (1 literowej, 2 literowej i 3 literowej), to będziesz musiał użyć nieco bardziej złożonej składni:

    SUBSTYTUT(ADRES(1, col_number , 4), "1", "")

    Przy literze kolumny w A2 formuła przyjmuje taką postać:

    =SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")

    Jak działa ta formuła:

    Najpierw konstruujemy adres komórki z numerem interesującej nas kolumny. W tym celu podajemy następujące argumenty do funkcji ADRES:

    • 1 za suma wierszy (numer wiersza nie ma tak naprawdę znaczenia, więc możesz użyć dowolnego).
    • A2 (komórka zawierająca numer kolumny) dla kolumna_num .
    • 4 za abs_num argument, aby zwrócić odniesienie względne.

    Przy powyższych parametrach funkcja ADRES zwraca jako wynik ciąg tekstowy "A1".

    Ponieważ potrzebujemy tylko litery z kolumny, pozbawiamy numer wiersza za pomocą funkcji SUBSTITUTE, która szuka "1" (lub dowolnego numeru wiersza, który został hardcoded wewnątrz funkcji ADDRESS) w tekście "A1" i zastępuje go pustym łańcuchem ("").

    Pobierz literę z kolumny z numeru kolumny używając funkcji niestandardowej Funkcja niestandardowa

    Jeśli musisz regularnie konwertować numery kolumn na znaki alfabetyczne, to niestandardowa funkcja zdefiniowana przez użytkownika (UDF) może ogromnie zaoszczędzić Twój czas.

    Kod funkcji jest dość prosty i nieskomplikowany:

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

    Tutaj używamy Komórki aby odnieść się do komórki w wierszu 1 i podanego numeru kolumny oraz Adres aby zwrócić łańcuch zawierający bezwzględne odwołanie do tej komórki (np. $A$1). Następnie funkcja Split rozbija zwrócony łańcuch na poszczególne elementy używając znaku $ jako separatora i zwracamy element (1), który jest literą kolumny.

    Wklej kod w edytorze VBA, a twój nowy ColumnLetter funkcja jest gotowa do użycia. Szczegółowe wskazówki znajdziesz w artykule: Jak wstawić kod VBA w Excelu.

    Z punktu widzenia użytkownika końcowego składnia funkcji jest tak prosta jak:

    ColumnLetter(col_num)

    Gdzie suma kolumn to numer kolumny, który chcemy zamienić na literę.

    Twoja prawdziwa formuła może wyglądać następująco:

    =ColumnLetter(A2)

    I zwróci dokładnie takie same wyniki jak natywne funkcje Excela omówione w poprzednim przykładzie:

    Jak uzyskać literę kolumny określonej komórki

    Aby określić literę kolumny w konkretnej komórce, należy za pomocą funkcji KOLUMNA pobrać numer kolumny i podać ten numer do funkcji ADRES. Kompletna formuła przyjmie taki kształt:

    SUBSTYTUT(ADRES(1, KOLUMNA( adres komórki ), 4), "1", "")

    Jako przykład znajdźmy literę kolumny komórki C5:

    =SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")

    Oczywiście wynik to "C" :)

    Jak uzyskać literę kolumny bieżącej komórki

    Aby opracować literę bieżącej komórki, formuła jest prawie taka sama jak w powyższym przykładzie. Jedyna różnica polega na tym, że funkcja COLUMN() jest używana z pustym argumentem, aby odwołać się do komórki, w której znajduje się formuła:

    =SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "")

    Jak utworzyć odniesienie zakresu dynamicznego z numeru kolumny

    Mam nadzieję, że poprzednie przykłady dały Ci kilka nowych tematów do przemyśleń, ale być może zastanawiasz się nad praktycznymi zastosowaniami.

    W tym przykładzie pokażemy, jak wykorzystać formułę "numer kolumny do litery" do rozwiązywania zadań z życia wziętych. W szczególności stworzymy dynamiczną formułę XLOOKUP, która będzie wyciągać wartości z określonej kolumny na podstawie jej numeru.

    Na podstawie poniższej przykładowej tabeli załóżmy, że chcesz uzyskać wartość zysku dla danego projektu (H2) i tygodnia (H3).

    Aby wykonać zadanie, należy przekazać XLOOKUP zakres, z którego ma zwrócić wartości. Ponieważ dysponujemy tylko numerem tygodnia, który odpowiada numerowi kolumny, najpierw przekonwertujemy ten numer na literę kolumny, a następnie skonstruujemy odwołanie do zakresu.

    Dla ułatwienia podzielmy cały proces na 3 łatwe do wykonania kroki.

    1. Konwersja numeru kolumny na literę

      Mając numer kolumny w H3, użyj znanej już formuły, aby zmienić go na znak alfabetu:

      =SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")

      Wskazówka: Jeśli numer w zestawie danych nie odpowiada numerowi kolumny, pamiętaj, aby dokonać wymaganej korekty. Na przykład, jeśli dane z tygodnia 1 znajdują się w kolumnie B, dane z tygodnia 2 w kolumnie C i tak dalej, to użyjemy H3+1, aby uzyskać prawidłowy numer kolumny.

    2. Konstruuje łańcuch reprezentujący odniesienie do zakresu

      Aby zbudować odwołanie do zakresu w postaci ciągu znaków, konkatenujemy literał kolumny zwrócony przez powyższą formułę z pierwszym i ostatnim numerem wiersza. W naszym przypadku komórki z danymi znajdują się w wierszach od 3 do 8, więc używamy tej formuły:

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

      Biorąc pod uwagę, że H3 zawiera "3", które jest zamieniane na "C", nasz wzór ulega następującej transformacji:

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

      I produkuje ciąg C3:C8.

    3. Wykonaj odniesienie do zakresu dynamicznego

      Aby przekształcić ciąg tekstowy w prawidłowe odwołanie, które Excel może zrozumieć, zagnieżdż powyższą formułę w funkcji INDIRECT, a następnie przekaż ją do 3. argumentu XLOOKUP:

      =XLOOKUP(H2, E3:E8, INDIRECT(H4), "Nie znaleziono")

      Aby pozbyć się dodatkowej komórki zawierającej ciąg zakresu zwrotnego, można umieścić formułę SUBSTITUTE ADDRESS wewnątrz samej funkcji INDIRECT:

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

    Dzięki naszej niestandardowej funkcji ColumnLetter możesz uzyskać bardziej kompaktowe i eleganckie rozwiązanie:

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

    Oto jak znaleźć literę kolumny z liczby w Excelu. Dziękuję za przeczytanie i czekam na Ciebie na naszym blogu za tydzień!

    Zeszyt ćwiczeń do pobrania

    Excel numer kolumny na literę - przykłady (plik .xlsm)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.