Как да конвертирате номер на колона в Excel към писмо

  • Споделя Това
Michael Brown

В този урок ще разгледаме как да променим номерата на колоните в Excel в съответните азбучни знаци.

Когато изграждате сложни формули в Excel, понякога може да ви се наложи да получите буква от колона на определена клетка или от дадено число. Това може да стане по два начина: чрез използване на вградени функции или на потребителски такива.

    Как да превърнете номера на колоната в азбука (еднобуквени колони)

    Ако името на колоната се състои от една буква от A до Z, можете да го получите, като използвате тази проста формула:

    CHAR(64 + col_number )

    Например, за да преобразувате числото 10 в буква от колона, формулата е:

    =CHAR(64 + 10)

    Възможно е също така да въведете число в някоя клетка и да се позовавате на тази клетка във формулата си:

    =CHAR(64 + A2)

    Как работи тази формула:

    Функцията CHAR връща символ въз основа на кода на символа в набора ASCII. Стойностите на ASCII на главните букви от английската азбука са от 65 (A) до 90 (Z). Така че, за да получите кода на символа на главна буква A, добавете 1 към 64; за да получите кода на символа на главна буква B, добавете 2 към 64 и т.н.

    Как да конвертирате номера на колоната в Excel в буква (всяка колона)

    Ако търсите универсална формула, която да работи за всяка колона в Excel (1-буквена, 2-буквена и 3-буквена), ще трябва да използвате малко по-сложен синтаксис:

    SUBSTITUTE(АДРЕС(1, col_number , 4), "1", "")

    При буквата на колоната в A2 формулата има следния вид:

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

    Как работи тази формула:

    Първо, конструирайте адрес на клетката с номера на интересуващата ви колона. За тази цел подайте следните аргументи на функцията ADDRESS:

    • 1 за row_num (номерът на реда не е от значение, така че можете да използвате произволен).
    • A2 (клетката, съдържаща номера на колоната) за номер на колона (column_num) .
    • 4 за abs_num за връщане на относителна референция.

    С горните параметри функцията ADDRESS връща като резултат текстовия низ "A1".

    Тъй като се нуждаем само от буква в колоната, премахваме номера на реда с помощта на функцията SUBSTITUTE, която търси "1" (или какъвто номер на ред сте кодирали във функцията ADDRESS) в текста "A1" и го заменя с празен низ ("").

    Получаване на буквата на колоната от номера на колоната с помощта на потребителска функция Потребителска функция

    Ако редовно трябва да преобразувате номера на колони в азбучни знаци, потребителски дефинирана функция (UDF) може да ви спести много време.

    Кодът на функцията е доста прост и ясен:

    Публична функция ColumnLetter(col_num) ColumnLetter = Split(Cells(1, col_num).Address, "$" )(1) Край на функцията

    Тук използваме Клетки да се отнася до клетка в ред 1 и посочения номер на колона, а свойството Адрес След това функцията Split разбива върнатия низ на отделни елементи, като използва знака $ като разделител, и връща елемент (1), който е буквата на колоната.

    Поставете кода в редактора на VBA и новата ви ColumnLetter За подробни указания вижте: Как да вмъкнете код VBA в Excel.

    От гледна точка на крайния потребител синтаксисът на функцията е прост:

    ColumnLetter(col_num)

    Къде: col_num е номерът на колоната, който искате да превърнете в буква.

    Вашата реална формула може да изглежда по следния начин:

    =ColumnLetter(A2)

    Тя ще върне точно същите резултати като родните функции на Excel, разгледани в предишния пример:

    Как да получите буквата на колоната на определена клетка

    За да определите буквата на колона от определена клетка, използвайте функцията COLUMN, за да извлечете номера на колоната, и подайте този номер на функцията ADDRESS. Цялата формула ще има следния вид:

    SUBSTITUTE(АДРЕС(1, КОЛОНА( cell_address ), 4), "1", "")

    Като пример, нека намерим буквата на колоната на клетка C5:

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

    Очевидно резултатът е "C" :)

    Как да получите буквата на колоната на текущата клетка

    За да се определи буквата на текущата клетка, формулата е почти същата като в горния пример. Единствената разлика е, че функцията COLUMN() се използва с празен аргумент, за да се посочи клетката, в която се намира формулата:

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

    Как да създадем референтен динамичен обхват от номера на колоната

    Надяваме се, че предишните примери са ви дали някои нови теми за размисъл, но може би се чудите за практическите им приложения.

    В този пример ще ви покажем как да използвате формулата "номер на колона към буква" за решаване на задачи от реалния живот. По-специално ще създадем динамична формула XLOOKUP, която ще извлича стойности от определена колона въз основа на нейния номер.

    Да предположим, че от примерната таблица по-долу желаете да получите данни за печалбата за даден проект (H2) и седмица (H3).

    За да изпълните задачата, трябва да предоставите на XLOOKUP диапазона, от който да връща стойности. Тъй като разполагаме само с номера на седмицата, който съответства на номера на колоната, първо ще преобразуваме този номер в буква на колоната и след това ще конструираме препратка към диапазона.

    За удобство ще разделим целия процес на 3 лесни за изпълнение стъпки.

    1. Преобразуване на номер на колона в буква

      Използвайте вече познатата формула, за да промените номера на колоната в H3 в азбучен символ:

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

      Съвет. Ако номерът в набора от данни не съвпада с номера на колоната, не забравяйте да направите необходимата корекция. Например, ако имаме данни за седмица 1 в колона B, данни за седмица 2 в колона C и т.н., тогава ще използваме H3+1, за да получим правилния номер на колоната.

    2. Конструиране на низ, представляващ референция за обхват

      За да построите препратка към диапазон под формата на низ, конкатенирайте буквата на колоната, върната от горната формула, с номера на първия и последния ред. В нашия случай клетките с данни са в редове от 3 до 8, затова използваме тази формула:

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

      Като се има предвид, че H3 съдържа "3", което се превръща в "C", нашата формула претърпява следната трансформация:

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

      И се получава низът C3:C8.

    3. Направете референтен динамичен обхват

      За да трансформирате текстов низ във валидна референция, която Excel може да разбере, вложете горната формула във функцията INDIRECT и след това я предайте на третия аргумент на XLOOKUP:

      =XLOOKUP(H2, E3:E8, INDIRECT(H4), "Не е намерен")

      За да се отървете от допълнителната клетка, съдържаща низ от диапазона за връщане, можете да поставите формулата SUBSTITUTE ADDRESS в самата функция INDIRECT:

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

    С нашата персонализирана функция ColumnLetter можете да получите по-компактно и елегантно решение:

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

    Това е начинът за намиране на буквата на колоната от число в Excel. Благодаря ви за четенето и с нетърпение очаквам да ви видя в нашия блог следващата седмица!

    Практическа работна тетрадка за изтегляне

    Превръщане на номер на колона в буква в Excel - примери (.xlsm файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.