Часто требуется получить из строки только буквы, исключив цифры и различные знаки, символы.
В настоящее время такой встроенной функции нет, поэтому придется писать пользовательскую функцию на VBA
Вот небольшой код для пользовательской функции Excel, которая может вытаскивать из строки состоящей из цифр, букв и символов только буквы.
Public Function GetText(txt As String) As String Dim m As String, s As String For i = 1 To Len(txt) m = Mid(txt, i, 1) If m Like "[A-Za-zА-Яа-яЁё]" Then s = s & m Next i GetText = s End Function
Как пользоваться?
Открываем редактор VBA в Excel (Alt+F11), или правой кнопкой по листу и выбираем пункт «Исходный текст».
Создаем новый модуль → Insert → Module
Переключаемся на российскую раскладку клавиатуры, копируем код, указанный выше и вставляем в модуль
Далее в нужной ячейке, где необходимо вывести только буквы, прописываем формулу:
=GetText(A1)
и протягиваем ее вниз
Многие пользователи программы Эксель привыкли к тому, что в качестве названий столбцов таблицы служат латинские буквы. Однако иногда может случиться такое, что вместо букв отображаются цифры подобно нумерации строк.
Такое возможно по ряду причин:
- программные сбои;
- пользователь сам изменил соответствующую настройку, но не заметил, как это сделал или забыл.
- возможно, другой пользователь, работающий с таблицей внес изменения в настройки.
На самом деле, независимо от того, какая именно причина привела к смене обозначений, многие пользователи спешат вернуть все на место, т.е. чтобы столбцы вновь обозначались буквами латинского алфавита. Давайте посмотрим, как это сделать в Excel.
Содержание
- Смена обозначений столбцов
- Метод 1: настройка параметров программы
- Метод 2: настройки в Режиме разработчика
- Заключение
Смена обозначений столбцов
В Эксель предусмотрено два метода, пользуясь которыми, можно вернуть горизонтальную координатную панель к тому виду, к которому привыкло большинство пользователей программы. Давайте рассмотрим оба.
Метод 1: настройка параметров программы
Данный метод предполагает внесение изменений в параметры программы. Вот, что нужно сделать:
- Кликаем по меню “Файл”.
- В открывшемся окне в перечне слева в самом низу щелкаем по пункту “Параметры”.
- На экране отобразится окно с параметрами программы:
- переключаемся в раздел “Формулы”;
- в правой стороне окна находим блок настроек “Работа с формулами” и убираем флажок напротив опции “Стиль ссылок R1C1”.
- нажимаем кнопку OK, чтобы подтвердить изменения.
- Все готово. Благодаря этим достаточно простым и быстрореализуемым действиям мы вернули привычные обозначения в таблицу.
Примечание: стиль ссылок R1C1 – это и есть параметр, включение которого меняет латинские буквы на цифры на горизонтальной координатной панели.
Метод 2: настройки в Режиме разработчика
Прежде, чем приступить к выполнению действий, описанных в данном методе, необходимо активировать режим Разработчика, так как по умолчанию он выключен.
- заходим в параметры программы (порядок действий описан выше);
- переходим в раздел “Настроить ленту”, в правой части окна находим пункт “Разработчик”, ставим напротив него галочку и щелкаем OK.
Теперь можно перейти к основному алгоритму действий:
- Переходим во вкладку “Разработчик”, в левой части которой щелкаем по кнопке “Visual Basic”. Также, вместо этого можно воспользоваться комбинацией клавиш Alt+F11.
- В открывшемся редакторе нажимаем комбинацию Ctrl+G, что позволит переместить курсор в область “Immediate”. Пишем в ней команду
Application.ReferenceStyle=xlA1
и нажимаем Enter. Примечание: в процессе набора команды программа будет нам помогать с вариантами, как при ручном наборе формул в ячейке. - Можно закрывать окно редактора Visual Basic. В таблицу должны были вернуться буквенные обозначения столбцов.
Заключение
Многих пользователей, которые никогда с этим не сталкивались, может смутить ситуация, когда вместо привычных названий столбцов в виде латинских букв отображаются цифры. Но не стоит из-за этого переживать, ведь вернуть панель координат к привычному виду можно достаточно быстро, воспользовавшись одним из способов, описанных выше.
Переходите на светлую сторону вместе с OFFICELEGKO.COM! Подписывайтесь на наш Telegram и получайте ежедневный заряд знаний от авторов сайта!
Подписаться
Привет. Сегодня интересная тема. Я покажу, что делать, чтобы разрешить вводить в ячейки только прописные символы. Или только строчные. Т.е. вводить данные можно только символами верхнего регистра, или только нижнего.
Ввод текста только заглавными символами
Для внесения подобного ограничения, воспользуемся инструментом «Проверка данных». Выполните следующие действия:
- Выделите ячейки, в которых должно действовать ограничение
-
Вызовите на ленте инструмент: Данные – Работа с данными – Проверка данных
-
В открывшемся окне выполните действия:
- На вкладке Параметры в списке Тип Данных выберите «Другой»
-
Запишите формулу:
=И(СОВПАД(C1;ПРОПИСН(C1));ЕТЕКСТ(C1))
- Нажмите Ок
Теперь попробуем ввести в ячейку текст, в котором есть символы и верхнего и нижнего регистра:
После нажатия Enter, программа сообщает, что данные введены некорректно. Сохранить их не удастся. Та же история будет, если текст будет полностью прописным. А вот если ввести только заглавные буквы – всё сохраняется в ячейке, ошибок нет:
Основная задача выполнена.
Как разрешить ввод только строчного текста
Этот пункт будет коротким. Делаем всё по описанной выше схеме, но формула будет такой:
=И(СОВПАД(C1;СТРОЧН(C1));ЕТЕКСТ(C1))
Как работает формула проверки
Приведенная формула работает следующим образом:
- ЕТЕКСТ(C1) проверяет, введен ли в ячейку текст. Если да, возвращает ИСТИНА
- СОВПАД(C1;ПРОПИСН(С1)) сравнивает значение в ячейке и строку из ячейки, переведенную в верхний регистр. Если они совпадают, возвращает ИСТИНА
- Функция И возвращает ИСТИНА, если в п.1 и п.2 ИСТИНА. Если хотя бы одно из двух условий не выполнились – ЛОЖЬ
- Когда функция И возвращает ИСТИНУ, Эксель позволяет ввод данных. Иначе – блокирует
В формуле я ссылаюсь на ячейку C1 – это первый элемент в выделенном массиве. Верхняя левая ячейка.
Это всё по данной теме, жду ваших вопросов в комментариях!
- Обычной функцией
- Как протянуть алфавит формулой
- Создать алфавит в 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 поможет решить их быстро и легко!
Открыть редактор макросов (Alt+F11)
Добавить новый модуль
добавить пользовательскую функцию
Public Function SanitizeCharDigit(ByRef rng As Range) As String
Dim pattern As String
Dim replace As String
Dim RegExp As Object 'Для регулярных выражений
pattern = "[^A-Zd]"
replace = ""
Set RegExp = CreateObject("VBScript.RegExp")
With RegExp
.Global = True 'Находим ВСЕ совпадения или только первое
.IgnoreCase = True 'Учитываем ли регистр?
.MultiLine = True 'Может ли паттерн попадать на разрывы строк?
.pattern = pattern 'Выражение
End With
On Error Resume Next
SanitizeCharDigit = RegExp.replace(CStr(rng.Value), replace) 'Поиск и замена
Set RegExp = Nothing 'Очистка памяти от ненужного мусора
End Function
на листе в нужной ячейке вызвать эту функцию
=SanitizeCharDigit(A1)
вместо «А1» вставить свою ячейку
очистит ВСЕ кроме английских букв и цифр