- Обычной функцией
- Как протянуть алфавит формулой
- Создать алфавит в 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 поможет решить их быстро и легко!
Содержание
- Способ 1: Кнопки быстрой сортировки
- Способ 2: Настраиваемая сортировка
- Способ 3: Формула сортировки
- Шаг 1: Создание вспомогательной формулы
- Шаг 2: Создание формулы сортировки
- Шаг 3: Модернизации формулы для повторных названий
- Вопросы и ответы
Способ 1: Кнопки быстрой сортировки
В Excel есть кнопки, отвечающие за быструю сортировку выделенного массива данных. Их использование станет оптимальным в тех ситуациях, когда нужно обработать ячейки всего один раз, предварительно выделив необходимые.
- Зажмите левую кнопку мыши и выделите все значения, которые далее будут подвергаться сортировке.
- На вкладке «Главная» откройте выпадающее меню «Редактирование».
- В нем используйте блок «Сортировка и фильтрация», выбрав порядок, в котором хотите расставить значения.
- Если появляется оповещение об обнаружении данных вне диапазона, потребуется выбрать, расширять его или сортировать только в пределах указанного выделения. Рассмотрим сначала первый вариант.
- При его использовании соседние ячейки, зависящие от общей таблицы, подстраиваются под порядок расположения текста, то есть если напротив ячейки «Август» находится значение «27», оно и остается напротив этого же слова.
- Второй вариант — «Сортировать в пределах указанного выделения».
- Так перемещается только указанный текст, а ячейки напротив него остаются нетронутыми. Это означает, что произойдет смещение данных, если раньше между ними была какая-то связь.
Если вы еще не решили, хотите сортировать только указанный диапазон или нужно захватывать соседние ячейки, проверьте каждый вариант, отменяя его нажатием горячей клавиши Ctrl + Z. Так проще определиться с изменениями, происходящими в таблице.
Способ 2: Настраиваемая сортировка
Настраиваемая сортировка позволяет более гибко выстроить расположение элементов в таблице, учитывая несколько уровней и разных диапазонов данных. Для ее создания используется специальное меню, которое и возьмем во внимание далее.
- Рекомендуем сразу выделить всю таблицу, если помимо сортировки по алфавиту вы желаете добавить еще несколько уровней.
- Затем в том же разделе «Редактирование» выбирайте пункт «Настраиваемая сортировка».
- В выпадающем меню «Сортировать по» укажите столбец, который затрагивает сортировка.
- В качестве режима сортировки выбирается тип «Значения ячеек».
- Осталось указать только порядок «От А до Я» или «От Я до А».
- Если надо сортировать и другие столбцы, добавьте их в качестве уровней и выполните такую же настройку.
- Вернитесь к таблице и убедитесь в том, что все действия выполнены правильно.
Способ 3: Формула сортировки
Недостатки предыдущих методов состоят в том, что они сортируют только единоразово, а динамически при внесении изменений таблица не меняется. Если вас не устраивает такой вариант, понадобится вручную создать формулу сортировки, которая при добавлении или удалении элементов автоматически пересчитает их и поставит в нужном порядке. Формул будет несколько, поскольку пока разработчики не добавили специальную функцию, которая позволяла бы обойтись без применения вспомогательных подсчетов. Весь дальнейший процесс состоит из нескольких этапов для правильного понимания принципа сортировки по алфавиту.
Шаг 1: Создание вспомогательной формулы
Основная задача – создать вспомогательную формулу, которая анализирует слова в ячейках и определяет их порядковый номер в будущем отсортированном по алфавиту списке. Это происходит при сравнении встроенными алгоритмами Excel, работающими по принципу анализа кодировки. Детально разбирать работу этой формулы не будем, только покажем ее создание.
- Для работы с будущими вычислениями понадобится создать из ячеек группу, для чего их необходимо выделить и в специально отведенном поле сверху задать новое название.
- Теперь диапазон выделенных ячеек имеет собственное имя, отвечающее за его содержимое, — в нашем случае это фрукты. Если вводите несколько слов в названии, не ставьте пробел, а используйте вместо него нижнее подчеркивание: «(пример_текста)».
- В новой клетке создадим формулу
СЧЁТЕСЛИ
, которая считает ячейки, удовлетворяющие условие. В качестве диапазона указывайте созданную только что группу, затем первую ячейку для сравнения. В итоге первоначальный вид формулы таков:=СЧЁТЕСЛИ(Фрукты;A1)
. - Сейчас результатом этой формулы будет «1», поскольку ее запись не совсем верна для будущих расчетов, поэтому добавьте выражение
"<="&
перед номером первой ячейки. - Растяните формулу, зажав край ячейки, до конца будущего списка для сортировки.
- Переименуйте диапазон с числами в группу — это понадобится при составлении следующей формулы.
Шаг 2: Создание формулы сортировки
Вспомогательная формула готова и работает правильно, поэтому можно приступить к созданию основной функции, которая и будет заниматься сортировкой благодаря уже существующему автоматическому определителю позиций.
- В новой ячейке начните вводить
=ПОИСКПОЗ(СТРОКА(A1)
. Эта формула отвечает за поиск позиции строки, из-за чего и следует указать аргумент «A1». - Далее для простоты добавления именных диапазонов перейдите в «Формулы», разверните меню «Определенные имена» и выберите «Использовать в формуле».
- Добавьте диапазон со вспомогательной формулой и укажите для него тип сопоставления «Точное совпадение» в выпадающем списке, который появится после добавления «;».
- Завершите создание формулы, обернув ее в функцию
ИНДЕКС
, которая будет работать с массивом названий. - Проверьте результат и затем растяните формулу так, как это уже было показано выше.
- Теперь вы получите корректно работающий динамический список, отсортированный по алфавиту.
Для упрощения понимания отдельно предоставляем полную формулу:
=(ИНДЕКС(Фрукты;ПОИСКПОЗ(СТРОКА(A1);номер_слова;0)))
, вам же останется только отредактировать ее под свои цели и растянуть на необходимый диапазон ячеек.
Шаг 3: Модернизации формулы для повторных названий
Единственный недостаток созданной только что формулы – некорректная ее работа при наличии повторных названий, что вы можете заметить на представленном далее скриншоте. Это связано с тем, что вспомогательная функция не в состоянии правильно обработать повторяющиеся слова, поэтому ее придется немного усовершенствовать, если вы хотите использовать в списке повторы.
- Откройте вспомогательную формулу и уберите знак «<«, чтобы
СЧЁТЕСЛИ
работал только при условии равенства. - Добавьте вторую часть —
+СЧЁТЕСЛИ($A$1:A1;A1)
, позволяющую нормально записывать одинаковые слова в последовательном порядке. - Снова растяните формулу, чтобы она изменилась на всех ячейках.
- Добавьте в список повторяющиеся названия, чтобы проверить их нормальное отображение.
Еще статьи по данной теме:
Помогла ли Вам статья?
Автозаполнение ячеек алфавитом
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 других символов).