Зміст
У цьому уроці ми розглянемо, як змінити номери стовпців Excel на відповідні алфавітні символи.
При побудові складних формул в Excel іноді може виникнути необхідність отримати букву стовпця з певної комірки або з заданого числа. Це можна зробити двома способами: за допомогою вбудованих функцій або користувацьким.
Як перетворити номер стовпця в алфавіт (однолітерні стовпці)
Якщо назва колонки складається з однієї літери, від А до Я, її можна отримати за допомогою цієї простої формули:
CHAR(64 + col_number )Наприклад, для перетворення числа 10 в літеру стовпчика, формула має вигляд:
=CHAR(64 + 10)
Також можна ввести число в якусь комірку і посилатися на цю комірку у своїй формулі:
=CHAR(64 + A2)
Як працює ця формула:
Функція CHAR повертає символ на основі коду символу в наборі ASCII. ASCII-значення прописних літер англійського алфавіту - від 65 (A) до 90 (Z). Таким чином, щоб отримати код символу прописної літери A, потрібно до 64 додати 1; щоб отримати код символу прописної літери B, потрібно до 64 додати 2 і так далі.
Як перетворити номер стовпця Excel в букву (будь-якого стовпця)
Якщо ви шукаєте універсальну формулу, яка працює для будь-якого стовпця в Excel (1 буква, 2 букви і 3 букви), то вам доведеться використовувати трохи складніший синтаксис:
ЗАМІНА(АДРЕСА(1, col_number , 4), "1", "")З літерою стовпчика в А2 формула набуває такого вигляду:
=SUBSTITUTE(ADDRESS(1, A2, 4), "1", "")
Як працює ця формула:
Спочатку будується адреса комірки з номером стовпця, що цікавить. Для цього у функцію АДРЕСА передаються наступні аргументи:
- 1 за row_num (номер рядка не має особливого значення, тому можна використовувати будь-який).
- A2 (комірка, що містить номер стовпчика) для column_num .
- 4 за abs_num аргумент для повернення відносного посилання.
При наведених вище параметрах функція ADDRESS повертає в якості результату текстовий рядок "А1".
Оскільки нам потрібна тільки буква стовпчика, то номер рядка видаляємо за допомогою функції ЗАМЕНА, яка шукає в тексті "А1" "1" (або будь-який номер рядка, який ви задали у функції АДРЕСА) і замінює його на порожній рядок ("").
Отримати літеру стовпця з номера стовпця за допомогою користувацької функції Користувацька функція
Якщо вам потрібно регулярно перетворювати номери стовпців в алфавітні символи, то користувальницька функція (UDF) може значно заощадити ваш час.
Код функції досить простий і зрозумілий:
Public Function ColumnLetter(col_num) ColumnLetter = Split(Cells(1, col_num).Address, "$" )(1) End FunctionТут ми використовуємо Клітини для посилання на комірку в рядку 1 і вказаний номер стовпця та властивість Адреса повертає рядок, що містить абсолютне посилання на цю комірку (наприклад, $A$1). Потім функція Split розбиває повернутий рядок на окремі елементи, використовуючи знак $ як роздільник, і ми повертаємо елемент (1), який є літерою стовпчика.
Вставте код в редакторі VBA, і ваш новий ColumnLetter Функція готова до використання. Детальну інструкцію див. у статті: Як вставити код VBA в Excel.
З точки зору кінцевого користувача, синтаксис функції дуже простий:
ColumnLetter(col_num)Де col_num номер стовпця, який потрібно перетворити на літеру.
Ваша реальна формула може виглядати наступним чином:
=ColumnLetter(A2)
І вона поверне точно такі ж результати, як і вбудовані функції Excel, розглянуті в попередньому прикладі:
Як отримати літеру стовпця певної комірки
Для визначення літери стовпчика певної комірки, використовуйте функцію СТАВКА для отримання номера стовпчика, і передайте цей номер функції АДРЕСА. Повна формула набуде такого вигляду:
SUBSTITUTE(ADDRESS(1, COLUMN( адреса комірки ), 4), "1", "")Як приклад, знайдемо літеру стовпчика комірки С5:
=SUBSTITUTE(ADDRESS(1, COLUMN(C5), 4), "1", "")
Очевидно, що результат - трійка :)
Як отримати літеру стовпчика поточної комірки
Для відпрацювання букви поточної комірки формула майже така ж, як і в наведеному вище прикладі. Єдина відмінність полягає в тому, що функція СЧЕТЧИК() використовується з порожнім аргументом для посилання на комірку, де знаходиться формула:
=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), "1", "")
Як створити посилання на динамічний діапазон з номера стовпця
Сподіваємося, що попередні приклади дали вам нові теми для роздумів, але ви можете задатися питанням про практичне застосування.
У цьому прикладі ми покажемо, як використовувати формулу "номер стовпця в букву" для вирішення реальних завдань. Зокрема, ми створимо динамічну формулу XLOOKUP, яка буде витягувати значення з певного стовпця на основі його номера.
Припустимо, що з наведеної нижче таблиці ви хочете отримати показник прибутку для даного проекту (H2) та тижня (H3).
Для виконання завдання потрібно надати XLOOKUP діапазон, з якого потрібно повертати значення. Оскільки у нас є тільки номер тижня, який відповідає номеру стовпця, то спочатку перетворимо його в букву стовпця, а потім побудуємо посилання на діапазон.
Для зручності розбиваємо весь процес на 3 простих кроки.
- Перетворення номера стовпця в літеру
З номером колонки в H3 за допомогою вже знайомої формули змініть його на алфавітний символ:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "")
Порада: Якщо номер у вашому наборі даних не відповідає номеру стовпчика, обов'язково зробіть необхідну корекцію. Наприклад, якщо у нас є дані за тиждень 1 у стовпчику B, дані за тиждень 2 у стовпчику C і т.д., то ми використаємо H3+1, щоб отримати правильний номер стовпчика.
- Побудувати рядок, що представляє посилання на діапазон
Щоб побудувати посилання на діапазон у вигляді рядка, необхідно об'єднати літеру стовпця, що повертається вищенаведеною формулою, з номерами першого та останнього рядків. У нашому випадку комірки з даними знаходяться в рядках з 3 по 8, тому ми використовуємо цю формулу:
=SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "3:" & SUBSTITUTE(ADDRESS(1, H3, 4), "1", "") & "8"
Враховуючи, що Н3 містить "3", яка перетворюється на "С", наша формула зазнає наступної трансформації:
="C"&"3:"&"C"&"8"
І видає рядок С3:С8.
- Зробіть еталонний динамічний діапазон
Для перетворення текстового рядка в коректне посилання, яке розуміє Excel, вкладіть наведену вище формулу в функцію НЕПРЯМА, а потім передайте її в 3-й аргумент XLOOKUP:
=XLOOKUP(H2, E3:E8, INDIRECT(H4, "Не знайдено"))
Щоб позбутися зайвої комірки, що містить рядок діапазону повернення, можна помістити формулу ПІДСТАНОВКА АДРЕСИ в саму функцію НЕПРЯМА:
=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"), "Не знайдено")
Ось так можна знайти букву стовпчика за числом в Excel. Дякую за прочитання і чекаю вас на нашому блозі наступного тижня!
Практичний посібник для завантаження
Переклад стовпця Excel з номера на літеру - приклади (файл .xlsm)