- Обычной функцией
- Как протянуть алфавит формулой
- Создать алфавит в Excel формулами массива
- Способ №1
- Способ №2
- Применение функций создания алфавита в других задачах в Excel
Часто возникает задача быстро вывести все буквы алфавита и разместить их на разных строках или в разных столбцах по порядку. A, B, C… или А, Б, В… в зависимости от нужного алфавита.
Получить список чисел какой угодно длины очень просто. И всем известно, что есть даже несколько способов:
- Заполнением двух ячеек вручную и протягиванием курсором
- Опцией “Автозаполнение”
- Формулой, ссылающейся на предыдущую ячейку с нужным шагом (например, A1+1)
В случае с буквами алфавита автозаполнение не работает. Протянуть алфавит без формулы тоже не получится.
Но можно создать алфавит функциями, и есть даже несколько вариантов.
Обычной функцией
Наиболее простой вариант решить задачу – функция СИМВОЛ.
Она возвращает по коду ANSI знак, который ему соответствует.
Для английских заглавных букв это диапазон с 65 по 90. Остается только создать столбец таких чисел и обратиться к нему этой функцией. Сделаем диапазон чисел протягиванием, введем функцию с относительной адресацией один раз и тоже протянем ее вдоль чисел:
Буквы кириллицы можно создать аналогичным способом, разница только в диапазоне чисел. Для русского алфавита зарезервированы числа от 192 до 255. Подробнее можно почитать в статье про функцию СИМВОЛ в Excel.
Как протянуть алфавит формулой
Можно ли без создания столбца прибавить к букве число и получить следующую? Да, такая формула тоже возможна.
Чтобы получить одну букву из другой математически (вычитанием для предыдущей и сложением для следующей), поможет комбинация функций СИМВОЛ и КОДСИМВ. КОДСИМВ производит обратную операцию — возвращает код символа из самого символа.
А вот текстовое представление формулы:
=СИМВОЛ(КОДСИМВ(A1)+1) =СИМВОЛ(КОДСИМВ(A1)-1)
Как видно из примера выше, для создания алфавита потребовался отдельный столбец чисел.
А можно ли обойтись без необходимости создания такого диапазона на листе? Да, можно, именно в этом кроется прелесть формул массива. Они могут создать промежуточные массивы значений для вычислений.
Еще одно их преимущество – достаточно ввести формулу 1 раз, предварительно выделив область, в которую будет выведен массив, и он будет заполнен разом и полностью.
Важно: фигурные скобки в формулах массива не нужно вводить с клавиатуры, они появляются автоматически при вводе функций сочетанием клавиш Ctrl+Shift+Enter.
Способ №1
Чтобы создать массив чисел, воспользуемся функцией СТРОКА, которая будет обращаться к диапазону строк с нужными нам адресами и возвращать массив чисел, который будет брать на вход уже функция СИМВОЛ.
Такая формула массива потребуется, чтобы создать диапазон из 26 английских букв:
{=СИМВОЛ(СТРОКА(A65:A90))}
Если диапазон создается надолго и есть вероятность, что реальный диапазон A65:A90 может быть иначе сортирован или в него будут вставлены строки, такой способ не надежен.
Более надежно будет создать его функцией ДВССЫЛ:
{=СИМВОЛ(СТРОКА(ДВССЫЛ("65:90")))}
Аналогичные формулы для создания русского алфавита:
{=СИМВОЛ(СТРОКА(A192:A223))} {=СИМВОЛ(СТРОКА(ДВССЫЛ("192:223")))}
Обратите внимание, буква Ё не входит в сплошной диапазон символов таблицы ANSI. Её придется ввести позже самостоятельно.
Способ №2
Еще один способ получить символы английского алфавита – получить их из адресов ячеек первых 26 столбцов.
Помогут в этом функция АДРЕС, которая выведет адреса ячеек текстом по их координатам, и функция ЛЕВСИМВ, которая извлечет из них первую букву.
Если нужно получить буквы в горизонтальном порядке, формула будет такой:
{=ЛЕВСИМВ(АДРЕС(1;СТОЛБЕЦ(A1:Z1);4;1);1)}
А так будет выглядеть процесс, если скопировать формулу выше в буфер без фигурных скобок и применить как формулу массива сочетанием клавиш:
А если нужно в вертикальном, формула выше обрабатывается дополнительно функцией ТРАНСП:
{=ТРАНСП(ЛЕВСИМВ(АДРЕС(1;СТОЛБЕЦ(A1:Z1);4;1);1))}
Процесс создания аналогичен изображенному выше. Отличие в том, что перед вводом функции массива нужно выделить вертикальный, а не горизонтальный, диапазон из 26 ячеек.
Применение функций создания алфавита в других задачах в Excel
Функции массива могут пригодиться не только для банального создания списка букв алфавита. Сами эти буквы могут быть нужны в других задачах. Примеры таких – по ссылкам ниже:
Найти английские буквы в русском тексте
Найти первую букву в ячейке
Следующая статья по формулам массива:
Учимся формулам массива – 2/4
Подсчет количества символов в диапазоне Excel
Часто сталкиваетесь с этой или похожими задачами при работе в Excel?
!SEMTools поможет решить их быстро и легко!
Автозаполнение ячеек алфавитом
DYm00n Пользователь Сообщений: 68 |
В экселе есть такая фишка — пишешь в столбик или в строку 1 2 3 и т.д., выделяешь это и можешь эту прогрессию продолжить, т.е. 4 5 6 и т.д. А как сделать подобное с алфавитом? Т.е. ввожу а б в, выделяю их и хочу продолжить прогрессию, а он не понимает, что я хочу от него и тупо просто копирует их |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Столбец А заполняем от 193 до 255. В Б1 =СИМВОЛ(A1) и тянем вниз. Я сам — дурнее всякого примера! … |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
От 192. Я сам — дурнее всякого примера! … |
DYm00n Пользователь Сообщений: 68 |
Ничего себе. А можно объяснить, почему именно с 192 и до 255? А как быть с английским алфавитом? |
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
DYm00n, а не проще от 1 до 255 заполнить? Тогда все станет понятно:-) Я сам — дурнее всякого примера! … |
0mega Пользователь Сообщений: 170 |
{quote}{login=DYm00n}{date=18.07.2010 12:21}{thema=Автозаполнение ячеек алфавитом}{post}В экселе есть такая фишка — пишешь в столбик или в строку 1 2 3 и т.д., выделяешь это и можешь эту прогрессию продолжить, т.е. 4 5 6 и т.д. А как сделать подобное с алфавитом? Т.е. ввожу а б в, выделяю их и хочу продолжить прогрессию, а он не понимает, что я хочу от него и тупо просто копирует их{/post}{/quote} |
Юрий М Модератор Сообщений: 60577 Контакты см. в профиле |
{quote}{login=DYm00n}{date=18.07.2010 12:21}{thema=Автозаполнение ячеек алфавитом}{post} А как сделать подобное с алфавитом? Т.е. ввожу а б в, выделяю их и хочу продолжить прогрессию{/post}{/quote} |
В Excel 2010 |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Списки штука классная, ток при переустановке офиса, переносе на др. машину… Мой вариант тоже коряв из-за доп. столбца.:-( Я сам — дурнее всякого примера! … |
Юрий М Модератор Сообщений: 60577 Контакты см. в профиле |
{quote}{login=KuklP}{date=18.07.2010 04:58}{thema=}{post}Списки штука классная, ток при переустановке офиса, переносе на др. машину… {/post}{/quote} |
> Мой вариант тоже коряв из-за доп. столбца. А зачем доп.столбец?? |
|
KuklP Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
{quote}{login=EducatedFool}{date=18.07.2010 05:22}{thema=}{post}> Мой вариант тоже коряв из-за доп. столбца. Я сам — дурнее всякого примера! … |
А как мне сделать чтобы например столбец сверху в низ идёт… Сварочный стык №**** Чтобы не пропечатывать вручную номер… чтобы текст копировался с номером и каждыцй последующий столбец был номер +1 =) |
|
Serge Пользователь Сообщений: 11308 |
Если столбец: =»Сварочный стык №»&» «&СТОЛБЕЦ() |
ZVI Пользователь Сообщений: 4328 |
Просто написать в ячейку: Сварочный стык №1 |
ZVI Пользователь Сообщений: 4328 |
{quote}{login=ZVI}{date=06.02.2011 02:11}{thema=}{post}Просто написать в ячейку: Сварочный стык №1 |
Или ввести каким-либо способом в ячейки 1,2,3 и т.д. и установить формат |
|
Подскажите пожалуйста если вводить в одну ячейку несколько значений например 1,2,3 как получить в следующей ячейке 4,5,6 и т.д. можно ли так сделать или нет? заранее спасибо |
|
dwman Пользователь Сообщений: 57 |
В одну ячейку можно ввести несколько значений? :-о |
vikttur Пользователь Сообщений: 47199 |
{quote}{login=Игорь}{date=07.09.2011 02:25}{thema=}{post}Подскажите пожалуйста если вводить в одну ячейку несколько значений например 1,2,3 как получить в следующей ячейке 4,5,6 и т.д. можно ли так сделать или нет? заранее спасибо{/post}{/quote} |
Спасибо большое разобрался я как перекинуть макрос на свой бланк очень помогли! Всего наилучшего Вам! |
|
Alt+F11, в левой панели «Project…» перетащите Module1 в свою книгу. |
|
А как сделать так чтобы автоматически заполнились ячейками формулами такого типа, =СЧЁТЗ(Лист1!C39:C68) последующая ячейка =СЧЁТЗ(Лист1!C72:C101), =Счёт(Лист1!C105:c134) и так далее, чтобы эксель понял закономерность? |
|
vikttur Пользователь Сообщений: 47199 |
#25 11.11.2011 22:24:48 Приблизительно (писалось «на коленке»): |
You can populate numbers, names of months or weekdays easily by dragging your mouse. However, you can’t populate letters in the same fashion. In this guide, we’re going to show you how to populate Alphabet letters in Excel using three different methods.
Introduction
Let us first take a look at how character sets work in Excel. There are two built-in functions which are related to converting numbers into characters:
- CHAR Function
- CODE Function
We can use these functions to convert numbers and letters from one another to populate letters in Excel.
Simpler Method
Uppercase and lowercase letters in ASCII character set reside between the numbers 65-90 and 97-122, respectively. 65 = A, 66 = B, 90 = Z, 106 = j, etc. Using character conversion formulas like CHAR, we can convert this numbers to corresponding letters.
Syntax
Example
The challenge for this approach is generating numbers for the CHAR function. As explained in the previous section, you need numbers between 65 and 90 or 97 and 122 for letters. For this, you can use the SEQUENCE function at this step. The SEQUENCE function can generate an array of sequential numbers automatically.
All you need to do is to supply how many numbers you need, and which number to start with.
Syntax
SEQUENCE(rows,[columns],[start],[step])
Example
=SEQUENCE(26,1,65) returns an array of numbers between 65 and 90
The function above returns numbers into 26 rows and single column. If you want to generate numbers or letters like in our example, you can use a formula like =SEQUENCE(1,26,65).
Let’s combine both functions to create formula for populating letters of the alphabet.
Syntax
=CHAR(SEQUENCE(26,1,<number where letters start>))
Example
Uppercase letters: =CHAR(SEQUENCE(26,1,65))Lowercase letters: =CHAR(SEQUENCE(26,1,97))
Using the CODE function for populating letters of the alphabet
Excel’s has the CODE function works in opposite way of the CHAR. The CODE function simply returns the corresponding number of the given character in a character set.
Syntax
Example
As a result, the CODE function with the character can be replaced with the number itself. The following is an example for using this formula.
Syntax
=CHAR(SEQUENCE(CODE(<last character>)-CODE(<first character> )+1,1,CODE(<first character>)))
Example
=CHAR(SEQUENCE(CODE(«Z»)-CODE(«A»)+1,1,CODE(«A»)))
Dynamic character interval
Using the CODE function, we can improve the model by following a more dynamic approach. We can replace the hard coded letters like “A” or “Z” with cell references containing these characters. This approach allows us to change the start and end characters of alphabet letters without updating the formula.
Syntax
=CHAR(SEQUENCE(CODE(<the cell contains the last character>)-CODE(<the cell contains the first character> )+1,1,CODE(<the cell contains the first character>)))
Example
=CHAR(SEQUENCE(CODE(I7)-CODE(I6)+1,1,CODE(I6)))
Using LET function to populate Alphabet letters
This is an optional step for populating alphabet letters in Excel. The relatively new LET function allows you to create named ranges inside the context of its own formula.
The syntax of the LET function contains the actual formula which using determined name-value pairs.
Syntax of the LET function
LET(name1, name_value1, [name2], [name_value2], …, calculation)
Syntax of our model with the LET function
=LET(Start,CODE(<the cell contains the first character>),Finish,CODE(<the cell contains the last character>),CHAR(SEQUENCE(Start-Finish+1,1,Finish)))
Example
=LET(Start,CODE(M7),Finish,CODE(M6),CHAR(SEQUENCE(Start-Finish+1,1,Finish)))
We defined named ranges for Start and Finish as CODE(M7) and CODE(M6) respectively. Each name is replaced with the corresponding CODE function block.
Сгенерируем русский (АБВГДЕЖЗИЙКЛМНОП…) и английский (ABCDEFGHIJKLMNOPQRST…) алфавит с помощью функции
СИМВОЛ()
.
Каждому символу соответствует свой код. Соответствие кодов символам можно посмотреть через меню
(код указан в нижнем правом углу).
Формула
=КОДСИМВ(«А»)
вернет значение 192 (для русской буквы А), для английской буквы —
КОДСИМВ()
вернет 65.
Функция
СИМВОЛ()
является «обратной» по отношению к
КОДСИМВ()
, т.к. формула
=СИМВОЛ(КОДСИМВ(«Я»))
вернет букву Я.
При генерации алфавита воспользуемся тем фактом, что русские буквы имеют код от 192 до 255 и следуют подряд.
Записав формулу
=СИМВОЛ(191+СТРОКА()-СТРОКА($A$9))
получим столбец со всеми буквами алфавида, кроме Ё и ё (коды 168 и 184). См.
файл примера
.
воспользовавшись идеями из статьи
Объединение значений нескольких ячеек в одну текстовую строку в EXCEL
объединим все буквы в одну строку — алфавит.
Аналогично поступим для английского алфавита (учтем, что между блоками с ПРОПИСНЫМИ и строчными буквами содержатся еще 6 других символов).
Microsoft Excel имеет удобную функцию автозаполнения, которая может заполнять ряды, такие как дни недели, месяцы года или числа в серии, например, нечетные или четные числа и т. Д. К сожалению, эта функция не обслуживает буквы алфавит. Это означает, что вы не можете автоматически заполнять письма от AZ in Exce, используя эту же функцию. Вы можете обойти это с помощью формулы.
Если вы никогда не слышали об этой функции, она работает так. Если вы пытаетесь автоматически заполнить месяцы в году, вы должны ввести первый месяц, т.е. январь, в одну ячейку, а затем ввести февраль в следующей ячейке. Выделите обе и переместите курсор в правый нижний угол второй ячейки (той, в которой есть февраль). Он должен измениться на знак плюса. Щелкните и перетащите его полностью вниз, и он заполнит оставшиеся месяцы за вас. Это также полезно для заполнения формул.
Однако, когда вы используете это с буквами алфавита, это не работает. Для автозаполнения букв от А до Я необходимо использовать формулу.
Автозаполнение писем от А до Я
В Excel введите в ячейку букву A. В следующей ячейке введите следующую формулу и замените адрес ячейки на адрес ячейки, в которую вы ввели A. В ячейке, в которую вы вводите формулу, будет отображаться буква B.
=CHAR(CODE(A1) + 1)
Затем щелкните в правом нижнем углу ячейки, в которую вставили формулу, и курсор превратится в знак плюса. Перетащите его вниз, и буквы заполнятся автоматически.
Вы можете начать с любой буквы. Вам не обязательно начинать с буквы A. Как только вы достигнете конца алфавита, эта формула начнет заполнять его другими символами, такими как квадратные скобки, подчеркивание, обратная кавычка, а затем буквы снова начнутся с малого дело. Когда буквы закончатся, он не начнет заполнять буквы, как Excel для столбцов.
В формуле используется функция Char, которая может заполнять значения ASCII. Эти значения существуют в серии, которую вы можете использовать в своих интересах, но она имеет свои ограничения. Вы можете перезапустить серию, набрав A в следующей ячейке, как только дойдете до Z. К сожалению, если вы попытаетесь использовать AA, AB и AC и попытаетесь создать серию из нее, как вы можете с нечетными или четными числами, Excel не буду следовать за ним.
Что вы думаете об этой статье?