Как копировать символы в excel

  • Первые N символов – формула в Excel
  • Разбить столбец по количеству символов
  • Извлечь первые символы автозаполнением
  • Извлечь первые символы с помощью регулярных выражений
  • Оставить первые / последние N символов в строке в 1 клик

Простейшая задача – взять и отделить от ячейки первый символ, скопировав его в соседний столбец. Или выбрать и оставить в ней первые 2, 3, 4… N символов.

Например, в строках переменной длины первые 6 символов – определенный цифровой код, который нужно скопировать в отдельный столбец.

Или задача является частью другой, где нужно сделать первую букву ячейки заглавной, а для этого, ее нужно вытащить из ячейки.

Рассмотрим все известные решения, снабдив их примерами. Итак, поехали.

Вытащить первый символ или N символов ячейки формулой проще простого. И есть даже 2 функции Excel, которые в этом помогут:

  1. ЛЕВСИМВ;
  2. ПСТР.

А так будут выглядеть формулы, извлекающие первые N символов из ячейки A1. Подставьте свое число вместо N, чтобы формулы работали:

Заметное отличие первой функции от второй — в отсутствии параметра, отвечающего за позицию, с которой начинается извлечение. Поэтому, если вычислить позицию первого вхождения определенного символа в ячейке, с помощью этой функции можно извлечь его, даже если он не является первым символом строки.

Например:

  • извлечь текст после цифр
  • извлечь первые N цифр
  • сделать первую букву ячейки заглавной

Разбить столбец по количеству символов

Можно получить первые N символов столбца, разбив его по количеству символов. Первые N останутся, а остальные будут перенесены в соседний справа. Можно разбить и на несколько — Excel не ставит ограничений на количество столбцов.

извлечение первых символов разбивкой текста по столбцам

Разбиваем столбец на два, оставляя в нем первые 6 символов и переносим оставшиеся в соседний

В отличие от формул, у процедур есть свои отличия, которые можно трактовать как плюсы и минусы в зависимости от ситуации. В данном случае отличие от формул в следующих моментах:

  • разбивка по столбцам не сохраняет исходный столбец
  • это единоразовая процедура, в отличие от формул, которые пересчитываются при обновлении данных
  • удобный момент — одна процедура создает сразу несколько столбцов
  • направление разбивки — только вправо
  • если справа есть данные, они могут быть перезаписаны, если не отменить операцию и не создать пустой столбец/столбцы.

Извлечь первые символы автозаполнением

Автозаполнение – замечательная процедура в Excel. Алгоритм действий прост.

  1. Заполняем пару ячеек соседнего столбца вручную;
  2. Уже при вводе третьей может быть предложено автозаполнение;
  3. Если согласны – жмём клавишу Ввод (Enter).

Однако с этой процедурой нужно быть осторожным. Алгоритм, который используется при автозаполнении, не показывается, поэтому результат может не соответствовать ожиданиям. Обычно алгоритм можно «доучить», чтобы он понял, что от него хотят.

пример работы автозаполнения в Excel

Автозаполнение предлагает извлечь все цифры вначале строки, а не первые две, но алгоритм можно “доучить”.

Извлечь первые символы с помощью регулярных выражений

Чтобы выбрать из строки символы по регулярным выражениям, в Google Spreadsheets доступна функция REGEXEXTRACT. Там она существует уже очень давно.

А вот Microsoft не столь серьезно озадачились вопросом – официально регулярные выражения в Excel существуют только как подключаемый модуль VBA. Поэтому доступны очень узкому кругу посвященных специалистов с навыками программирования на нем.

Чтобы сделать их необычайно гибкий синтаксис доступным обычным пользователям, я включил их поддержку в формулы и процедуры своей надстройки !SEMTools.

Подробно тут – регулярные выражения в Excel и примеры регулярных выражений. А ниже на картинке – примеры формул, которые позволят извлечь первые N символов, в том числе букв или цифр по отдельности, из любой ячейки.

регулярные выражения по извлечению особых первых символов
Извлекаем первые символы с дополнительными условиями с помощью регулярных выражений

Функции доступны абсолютно бесплатно и работают при подключенной надстройке !SEMTools для Excel даже в стартовой версии.

Оставить первые / последние N символов в строке в 1 клик

Ну и напоследок – на панели !SEMTools доступны процедуры, позволяющие максимально легко и быстро выбрать первые или последние символы из ячеек.

Можно выделять одну ячейку, несколько, целый столбец или даже несколько несвязанных диапазонов – процедура обработает все выделенные данные. При желании можно вернуться назад на 1 шаг.

Если активна опция «Выводить результат справа», исходные данные не меняются, а извлеченные символы выводятся в соседний столбец/столбцы.

Смотрите демонстрацию ниже:

Как взять первые символы из ячеек Excel с помощью !SEMTools

Берем и вытаскиваем из произвольных ячеек первые / последние символы в 1 клик

Процедуры доступны в полной версии надстройки, но попробовать можно и бесплатно.

Жмите кнопку ниже, чтобы скачать и подключить надстройку к вашему Excel! Процедура займет всего пару минут.

Если вы оказались на этой странице, то наверняка сталкиваетесь с другими похожими задачами.
Сотни инструментов надстройки для Excel !SEMTools помогут решить эти задачи буквально в один клик!

Пункты меню «Вставить»

  1. Выделите ячейки с данными и атрибутами, которые требуется скопировать.

  2. На вкладке Главная нажмите кнопку Копировать  Значок "Копировать".

  3. Щелкните первую ячейку в области, куда требуется вставить скопированное содержимое.

  4. На вкладке Главная щелкните стрелку рядом с кнопкой Вироватьи сделайте следующее. Содержимое меню Вставить зависит от типа данных в выбранных ячейках.

    На вкладке "Главная" выберите "Вставка"

Пункт меню

Что вставляется

Вставить

Все содержимое и формат ячеек, включая связанные данные.

Формулы

Только формулы.

Формулы и форматы чисел

Только формулы и форматы чисел.

Сохранить исходное форматирование

Все содержимое и формат ячеек.

Без рамок

Все содержимое и формат ячеек, кроме границ ячеек.

Сохранить ширину столбцов оригинала

Только атрибуты ширины столбцов.

Транспонировать

Вставка содержимого скопированных ячеек с изменением ориентации. Данные строк будут вставлены в столбцы, и наоборот.

Вставить значения

Только значения в том виде, как они отображаются в ячейках.

Значения и форматы чисел

Только значения и форматы чисел.

Значения и исходное форматирование

Только значения, цвет и размер шрифта.

Форматирование

Все атрибуты форматирования ячеек, включая форматы чисел и исходное форматирование.

Вставить связь

Вставляемые значения связываются с исходными. При вставке связи в копируемые данные Excel вводит абсолютную ссылку на копируемую ячейку или диапазон ячеек в новом месте.

Вставить как рисунок

Скопированные данные как изображение.

Связанный рисунок

Скопированные данные как изображение со ссылкой на исходные ячейки (изменения, внесенные в исходных ячейках, отражаются и в ячейках, куда вставлено изображение).

ширины столбцов

Вставка ширины столбца или диапазона столбцов в другой столбец или диапазон столбцов.

Объединить условное форматирование

Условное форматирование из скопированных ячеек объединяется с условным форматированием в области вставки.

Параметры специальной вставки

  1. Выделите ячейки с данными и атрибутами, которые требуется скопировать.

  2. На вкладке Главная нажмите кнопку Копировать  Значок "Копировать".

  3. Щелкните первую ячейку в области, куда требуется вставить скопированное содержимое.

  4. На вкладке Главная щелкните стрелку рядом с кнопкой В таблицуи выберите специальную ветвь.

    На вкладке "Главная" выберите "Вставка"

  5. Выберите нужные параметры.

    Поле "Специальная вставка"

Параметры вставки

Пункт меню

Что вставляется

Все

Все содержимое и формат ячеек, включая связанные данные.

Формулы

Только формулы.

значения

Вставка только значений в том виде, как они отображаются в ячейках.

форматы

Содержимое и формат ячеек.

примечания

Вставка только примечаний к ячейкам.

проверка

Только правила проверки данных.

с исходной темой

Все содержимое и форматирование ячеек с использованием темы, примененной к исходным данным.

без рамки

Содержимое и формат ячеек, кроме границ ячеек.

ширины столбцов

Атрибуты ширины столбца или диапазона столбцов в другой столбец или диапазон столбцов.

формулы и форматы чисел

Только формулы и форматы чисел.

значения и форматы чисел

Только значения и форматы чисел из выделенных ячеек.

все, объединить условное форматирование

Условное форматирование из скопированных ячеек объединяется с условным форматированием в области вставки.

Параметры операций

Параметры операций позволяют выполнить математические действия со значениями из областей копирования и вставки.

Параметр

Результат

Нет

Вставка содержимого скопированной области без математического действия.

сложить

Добавление значений из области копирования к значениям в области вставки.

вычесть

Вычитание значений из области копирования из значений в области вставки.

умножить

Умножение значений из области вставки на значения из области копирования.

разделить

Деление значений из области вставки на значения из области копирования.

Доступны и другие параметры:

Параметр

Результат

Пропускать пустые ячейки

Позволяет предотвратить замену значений и атрибутов в области вставки, когда в скопированной области содержатся пустые ячейки.

Транспонировать

Вставка содержимого скопированных ячеек с изменением ориентации. Данные строк будут вставлены в столбцы, и наоборот.

Вставить связь

Если данные представляют собой рисунок, он связывается с исходным рисунком. В случае изменения исходного рисунка вставленный также меняется.

Совет: Некоторые параметры доступны как в меню В paste, так и в диалоговом окне Специальная ветвь. Их названия могут слегка различаться, но результат оказывается одинаковым.

  1. Выделите ячейки с данными и атрибутами, которые требуется скопировать.

  2. На панели инструментов Стандартная нажмите кнопку Копировать Кнопка "Копировать".

  3. Щелкните первую ячейку в области, куда требуется вставить скопированное содержимое.

  4. На вкладке Главная в области Правканажмите кнопку В таблицуи выберите специальную ветвь.

    Вкладка "Главная", группа "Изменить"

  5. В диалоговом окке Специальная ветвь в области Ветвьсделайте следующее:

    Команда

    Действие

    Все

    В этом формате включаем все содержимое и формат ячейки, включая связанные данные.

    Формулы

    Вставка только формул в том виде, как они вводятся в строку формул.

    Значения

    В этом окте можно вировать только значения, отображаемые в ячейках.

    форматы

    В этом формате можно в нее в форматировать только ячейки.

    Примечания

    Вставка только примечаний к ячейкам.

    Проверка

    В этой области можно вировать правила проверки данных для скопированные ячейки.

    с исходной темой

    В этом формате можно в виде темы, примененной к исходным данным, в виде вложенного содержимого и форматирования ячейки.

    без рамки

    В этом формате можно в нее в форматировать все содержимое и содержимое ячейки, кроме границ ячеев.

    ширины столбцов

    Вставка ширины столбца или диапазона столбцов в другой столбец или диапазон столбцов.

    формулы и форматы чисел

    В этом формате можно вировать только формулы и параметры форматирования для выбранных ячеек.

    значения и форматы чисел

    В этом формате можно вировать только значения и параметры форматирования из выбранных ячеек.

    Объединить условное форматирование

    Условное форматирование из скопированных ячеек объединяется с условным форматированием в области вставки.

    Чтобы математически объединить значения между областями копирования и вжатия, в диалоговом окне Специальная вация в области Операция выберите математическую операцию, которую вы хотите применить к скопированные данные.

    Команда

    Результат

    Нет

    Вставка содержимого скопированной области без математического действия.

    сложить

    Добавление значений из области копирования к значениям в области вставки.

    вычесть

    Вычитание значений из области копирования из значений в области вставки.

    умножить

    Умножение значений из области вставки на значения из области копирования.

    разделить

    Деление значений из области вставки на значения из области копирования.

    Дополнительные параметры определяют, как будут обрабатываться пустые ячейки при вклеии, как в них вся скопированная информация, как строки или столбцы, и связывание скопированные данные.

    Команда

    Действие

    Пропуск пустых страниц

    Избегайте замены значений в области в области в виде висячего в том случае, если пустые ячейки встречаются в области копирования.

    Транспонировать

    Измените столбцы скопированные данные на строки и наоборот.

    Вставить связь

    Вставляемые значения связываются с исходными. При вставке связи в копируемые данные Excel вводит абсолютную ссылку на копируемую ячейку или диапазон ячеек в новом месте.

    Примечание: Этот параметр доступен только при выборе параметра Все или Все, кроме границ в диалоговом окне «Специальная ветвь»

 

dlevin

Пользователь

Сообщений: 5
Регистрация: 08.07.2013

Добрый день!

Нужно скопировать часть текста начиная с «С.» и весь последующий текст в ячейке в другой столбец. Вот пример:
Восстание арабов / Россия в глобальной политике.- 2011.- № 1.- С. 8-15.
Нужно скопировать только С. 8-15. в другой столбец.
Подскажите пожалуйста как это сделать

автоматически


Макрос или формула не важно, главное чтоб работало.  :)

Изменено: dlevin08.07.2013 21:07:19

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Войти в режим редактирования ячейки(F2), выделить нужный текст, скопировать.

Я сам — дурнее всякого примера! …

 

dlevin

Пользователь

Сообщений: 5
Регистрация: 08.07.2013

4000 строк в таблице.

Изменено: dlevin08.07.2013 21:08:18

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

#4

08.07.2013 09:54:24

Всего-то. И что? Я ответил на Ваш вопрос? Если Вас мой ответ не устраивает, срочно бегите знакомиться с правилами форума и выкладывайте пример. А заодно укажите какой вариант(формулы, макросы) хотите.
Для затравки:

Код
Public Function www$(s$)
    www = Right$(s, Len(s) - InStrRev(s, "С.", , 0) + 1)
End Function

Изменено: KuklP08.07.2013 10:08:07
(Теги.)

Я сам — дурнее всякого примера! …

 

китин

Пользователь

Сообщений: 931
Регистрация: 16.05.2013

#5

08.07.2013 10:07:59

ну,если все фразы выглядят именно так,то ,как вариант

Код
=ПОДСТАВИТЬ(A1;ЛЕВСИМВ(A1;ПОИСК("№";A1)+4);"")

Вполне такой нормальный кинжальчик. Процентов на 100
<#0>

 

dlevin

Пользователь

Сообщений: 5
Регистрация: 08.07.2013

Количество символов после «С.» и до конца строки разное, т.к. меняются значения страниц и разное кол-во пробелов. С. 10-28. или С. 10 — 28.

Изменено: dlevin08.07.2013 21:08:34

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Вот для этого и нужен файл-пример.

Я сам — дурнее всякого примера! …

 

китин

Пользователь

Сообщений: 931
Регистрация: 16.05.2013

#8

08.07.2013 10:19:07

Код
ПОИСК("№";A1)

формула удаляет все символы до символа №,осталяя все после него

Изменено: китин08.07.2013 10:19:49

Вполне такой нормальный кинжальчик. Процентов на 100
<#0>

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Смотрите.

Я сам — дурнее всякого примера! …

 

dlevin

Пользователь

Сообщений: 5
Регистрация: 08.07.2013

KuklP, вот это то, что нужно! Спасибо! А как просмотреть макрос и скопировать его на другой лист? Я чайник в excel  :)

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Макрос(UDF) находится в общем модуле, копировать в листы его не надо. Просто пишите формулы на листе. Увидеть его можно нажав alt+F11.

Я сам — дурнее всякого примера! …

 

dlevin

Пользователь

Сообщений: 5
Регистрация: 08.07.2013

Разобрался. Спасибо большое за помощь!!!  :)

 

Юрий М

Модератор

Сообщений: 60586
Регистрация: 14.09.2012

Контакты см. в профиле

dlevin, у Вас ни одного сообщения без цитаты, кроме первого (зато в первом полно «пустых» строк — зачем?) . Так ли они нужны?

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

или:

=ПСТР(E2;НАЙТИ(«С.»;E2);20)

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Володь, а если в названии статьи раньше встречается «С.»? Поиск идет слева-направо, а надо наоборот. китин предложил искать по №, это резонно, но ведь и № может встретиться раньше  :)

Изменено: KuklP08.07.2013 16:39:13

Я сам — дурнее всякого примера! …

 

Михаил С.

Пользователь

Сообщений: 10514
Регистрация: 21.12.2012

#16

08.07.2013 17:32:43

Код
=ЗАМЕНИТЬ(E2;1;НАЙТИ("С. ";E2)-1;"")

Изменено: Михаил С.08.07.2013 17:35:18

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

:D М-да… Моя ЮДФ короче.

Я сам — дурнее всякого примера! …

 

Михаил С.

Пользователь

Сообщений: 10514
Регистрация: 21.12.2012

#18

08.07.2013 17:38:51

Цитата
KuklP пишет:
а если в названии статьи раньше встречается «С.»?
Код
=ПСТР(E2;ПРОСМОТР(2;1/(КОДСИМВ(ПСТР(E2;СТРОКА($1:$1000);1))=209);СТРОКА($1:$1000));99)

УП
У ЮДФ есть недостаток — работает только на своем компе.

Изменено: Михаил С.08.07.2013 17:41:48

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Опа! Как так получилось, что наши посты поменялись местами? Миш, я когда писал, видел твой последний пост, о нем и писал  :)  
Понял. Ты разбил его на 2 части.
ЮДФ будет работать на любом компе, где откроют файл с ЮДФ.

Изменено: KuklP08.07.2013 17:44:37

Я сам — дурнее всякого примера! …

 

Я свой предпоследний пост (который ты видел) изменил, и добавил другой :)

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Я тоже изменил. :)

Я сам — дурнее всякого примера! …

 

Владимир

Пользователь

Сообщений: 8196
Регистрация: 21.12.2012

#22

08.07.2013 19:41:04

Цитата
KuklP пишет:
а если в названии статьи раньше встречается «С.»?

А мы тогда так:

=ПСТР(E2;ПОИСК(«С.*-*»;E2);20)

:)

Хотя нет, не получится так.

Изменено: Владимир05.10.2014 10:17:25

«..Сладку ягоду рвали вместе, горьку ягоду я одна.»

 

k61

Пользователь

Сообщений: 2441
Регистрация: 21.12.2012

#23

09.07.2013 05:03:02

Цитата
KuklP пишет: Володь, а если в названии статьи раньше встречается «С.»

А если «С.» отсутствует?

Код
Public Function www_1$(s$)
f = Split(s, "С.")
If UBound(f) > 0 Then www_1 = "C." & f(UBound(f))
End Function
 

Keks

Пользователь

Сообщений: 7
Регистрация: 07.11.2016

Добрый день а как можно пропустить это:

http://сайт.ру/request/

что бы остался один сайт сайт.ру

 

sv2013

Пользователь

Сообщений: 657
Регистрация: 09.06.2015

#25

17.11.2016 13:04:13

добрый день,еще вариант функции в G1,преимущество этих функций-простота

Код
Function vvvv$(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "С..+$"
    vvvv = .Execute(t)(0)
 End With
End Function

Прикрепленные файлы

  • example_17_11_2016_pl_С.xls (35 КБ)

Изменено: sv201317.11.2016 13:04:30

Как копировать в Экселе — простые и эффективные способы

Здравствуйте, уважаемые читатели! В этой статье я расскажу как копировать и вырезать ячейки в Excel. С одной стороны, Вы узнаете максимум информации, которую я считаю обязательной. Ежедневной. С другой стороны, она станет фундаментом для изучения более прогрессивных способов копирования и вставки. Потому, если хотите использовать Эксель «на всю катушку», прочтите до конца этот пост и следующий!

Сначала разберемся с принципами копирования и переноса информации, а потом углубимся в практику.

И так, чтобы скопировать одну или несколько ячеек – выделите их и выполните операцию копирования (например, нажав Ctrl+C ). Скопированный диапазон будет выделен «бегающей» рамкой, а данные из него – перемещены в буферы обмена Windows и Office. Установите курсор в ячейку для вставки и выполните операцию «Вставка» (к примеру, нажмите Ctrl+V ). Информация из буфера обмена будет помещена в новое место. При вставке массива – выделите ту клетку, в которой будет располагаться его верхняя левая ячейка. Если в ячейках для вставки уже есть данные – Эксель заменит их на новые без дополнительных уведомлений.

Если вы выполняете копирование – исходные данные сохраняются, а если перемещение – удаляются. Теперь давайте рассмотрим все способы копирования и переноса, которые предлагает нам Эксель.

Копирование с помощью горячих клавиш

Этот способ – самый простой и привычный, наверное, для всех. Клавиши копирования и вставки совпадают с общепринятыми в приложениях для Windows:

  • Ctrl+C – копировать выделенный диапазон
  • Ctrl+X – вырезать выделенный диапазон
  • Ctrl+V – вставить без удаления из буфера обмена
  • Enter – вставить и удалить из буфера обмена

Например, если нужно скопировать массив А1:А20 в ячейки С1:С20 – выделите его и нажмите Ctrl+C (при перемещении – Ctrl+X ). Установите курсор в ячейку C1 и нажмите Ctrl+V . Информация будет вставлена и останется в буфере обмена, можно делать повторную вставку в другом месте. Если вместо Ctrl+V нажать Enter — данные тоже будут вставлены, но пропадут из буфера обмена, исчезнет «бегающее» выделение.

Копирование с помощью контекстного меню

Команды копирования, вырезания и вставки есть и в контекстном меню рабочего листа Excel. Чтобы скопировать диапазон — выделите его и кликните правой кнопкой мыши внутри выделения. В контекстном меню выберите Копировать или Вырезать . Аналогично, для вставки скопированной информации, в ячейке для вставки вызовите контекстное меню и выберите Вставить (либо переместите туда курсор и нажмите Enter ).

Команды копирования в контекстном меню Эксель

Копирование с помощью команд ленты

Те же действия можно выполнить и с помощью команд ленты:

  • Копирование: Главная – Буфер обмена – Копировать
  • Вырезание: Главная – Буфер обмена – Вырезать
  • Вставка: Главная – Буфер обмена – Вставить

Копирование в Эксель с помощью ленточных команд

Последняя команда из перечисленных – комбинированная, она имеет дополнительные опции вставки (см. рис. выше) вставить только формулы:

  • Вставить – вставить ячейку полностью (значения, формулы, форматы ячейки и текста, проверка условий)
  • Формулы – вставить только формулы или значения
  • Формулы и форматы чисел – числа, значения с форматом числа как в источнике
  • Сохранить исходное форматирование – вставить значения, формулы, форматы ячейки и текста
  • Без рамок – все значения и форматы, кроме рамок
  • Сохранить ширину столбцов оригинала – вставить значения, формулы, форматы, установить ширину столбца, как у исходного
  • Транспонировать – при вставке повернуть таблицу так, чтобы строки стали столбцами, а столбцы – строками
  • Значения – вставить только значения или результаты вычисления формул
  • Значения и форматы чисел – формулы заменяются на результаты их вычислений в исходном формате чисел
  • Значения и исходное форматирование формулы заменяются на результаты их вычислений в исходном формате чисел и ячеек
  • Форматирование – только исходный формат, без данных
  • Вставить связь – вставляет формулу, ссылающуюся на скопированную ячейку
  • Рисунок – вставляет выделенный диапазон, как объект «Изображение»
  • Связанный рисунок – Вставляет массив, как изображение. При изменении ячейки-источника – изображение так же изменяется.

Все перечисленные команды являются инструментами Специальной вставки .

Копирование перетягиванием в Эксель

Этот способ – самый быстрый и наименее гибкий. Выделите массив для копирования и наведите мышью на одну из его границ. Курсор примет вид четырёхнаправленной стрелки. Хватайте мышью и тяните ячейки туда, куда хотите их переместить.

Чтобы скопировать массив – при перетягивании зажмите Ctrl . Курсор из четырехнаправленного превратится в стрелку со знаком «+».

Копирование автозаполнением

Работу автозаполнения я уже описывал в посте Расширенные возможности внесения данных. Здесь лишь немного напомню и дополню. Если нужно скопировать данные или формулы в смежные ячейки – выделите ячейку для копирования найдите маленький квадратик (маркер автозаполнения) в правом нижнем углу клетки. Тяните за него, чтобы заполнить смежные клетки аналогичными формулами или скопировать информацию.

Маркер автозаполнения

Есть еще один способ – команда Заполнить . Выделите массив для заполнения так, чтобы ячейка для копирования стояла первой в направлении заполнения. Выполните одну из команд, в зависимости от направления заполнения:

  1. Главная – Редактирование – Заполнить вниз
  2. Главная – Редактирование – Заполнить вправо
  3. Главная – Редактирование – Заполнить вверх
  4. Главная – Редактирование – Заполнить влево

Все выделенные ячейки будут заполнены данными или формулами из исходной.

Вот я и перечислил основные способы копирования и вставки. Как я обещал, далее мы рассмотрим специальные возможности копирования и вставки, о которых не знают новички. Читайте, они простые в использовании, а пользы приносят очень много.
Понравилась статья? Порекомендуйте другу и вместе с ним подписывайтесь на обновления! Уже написано очень много интересного и полезного материала, но лучшие посты еще впереди!

Как скопировать только обычный текст ячеек в Excel?

Я создаю рабочий лист Excel, где пользователь нажимает кнопку команды, которая копирует заданный диапазон ячеек. Затем пользователь вставляет содержимое в веб-приложение с помощью Firefox или IE. Дизайн веб-приложения вышел из моего контроля, и в настоящее время текстовые поля, которые используются для ввода данных, представляют собой богатые текстовые входы. Это приводит к тому, что текст выглядит нечетным и отформатирован как Excel, когда пользователь вставляет в него.

Есть ли способ в Excel с помощью VBA копировать только обычный текст выбранных ячеек? Без форматирования, без табуляции или границ ячеек, только текст и ничего больше. Мой текущий макрос копирования скопирует ячейки, открывает Блокнот, вставляет в Блокнот, а затем копирует из Блокнота, чтобы получить простой текст. Это очень нежелательно, и я надеюсь, что это можно сделать в самом Excel. Пожалуйста, дайте мне знать, спасибо!

Что-то вроде этого?

Copy копирует всю часть, но мы можем управлять тем, что вставлено.

То же самое относится и к объектам Range .

AFAIK, нет никакого несложного способа скопировать только текст диапазона, не назначая его объекту VBA (переменная, массив и т.д.). Существует трюк, который работает для одной ячейки и только для чисел и текста (без формул):

но большинство разработчиков избегают SendKeys , потому что это может быть неустойчивым и непредсказуемым. Например, приведенный выше код работает только тогда, когда макрос выполняется от excel, а не от VBA . При запуске от VBA , SendKeys открывается браузер объектов, что и делает F2 при нажатии на вид VBA:) Кроме того, для полного диапазона вам придется перебирать ячейки, копировать их один за другим и вставьте их один за другим в приложение. Теперь, когда я думаю лучше, я думаю, что это перебор.

Использование массивов, вероятно, лучше. Это моя любимая ссылка на то, как вы передаете диапазоны в массивы vba и обратно: http://www.cpearson.com/excel/ArraysAndRanges.aspx

Лично я бы избегал SendKeys и использовал массивы. Должно быть возможно передать данные из массива VBA в приложение, но трудно сказать, не зная больше о приложении.

Как скопировать многострочный текст из Excel без кавычек?

Когда вы создаете многострочную строку в ячейке excel (используя Alt-Enter), если вы скопируете эту ячейку в текстовый редактор, excel автоматически добавит двойные кавычки («) вокруг полной строки, то есть:

Когда вы копируете только столбец со значениями в текстовый редактор, получаем:

Как я могу сказать excel, чтобы не добавлять цитату вокруг многострочного текста при копировании из excel?

Изменить: Редакторы текста, которые я пробовал, отображают это поведение:

  • MS Word
  • Wordpad
  • Блокнот
  • Notepad ++
  • SQL Server Studio

Если у вас есть предложение по использованию конкретного редактора (или одного из выше), пожалуйста, скажите мне, какой из них & amp; как его использовать .

15 ответов

Как ваш текст будет скопирован в Word, зависит от выбранного варианта форматирования. В Word 2010 параметр формата по умолчанию — HTML Format . Существует четыре основных способа копирования текста в Word. ( Formatted Text (RTF) , Unformatted Text , HTML Format , & amp; Unformatted Unicode Text )

Вставка в форматированный текст создает мини-таблицы в Word. (Синие контуры.)

Чтобы получить неформатированный текст в Word без двойных кавычек:

  1. Вставить текст в форматированном виде, чтобы он создавал таблицу.
  2. Выберите таблицу и скопируйте ее.
  3. Переместитесь в пустое место и вставьте новую копию как неформатированный текст. ( Alt + E , S )

Это также работает, чтобы вставить результаты без кавычек в другой редактор. Просто измените шаг 3, чтобы вставить его в другой редактор.

Однако, скорее всего, будет проще вставить как обычно, а затем использовать Replace, чтобы найти и удалить все двойные кавычки.

Если вы скопируете диапазон из Excel (2010) в Word, вы получите текст по своему желанию, без котировок. Затем вы можете скопировать его снова в конечный пункт назначения, например блокнот. Excel- > Word- > Блокнот предоставит вам те результаты, которые вы хотите.

Самый простой способ, который я нашел, — объединить ячейки, которые вы хотите быть на нескольких линиях, с чем-то «специальным» между ними, а не cr / lf. Тильда обычно хорошо работает для меня. Например, в столбце G:

В этом примере конечной целью является получение текстового файла со значениями из E1 на одной строке, за которым следует F1 на новой строке, за которым следуют E2, F2 и т. д. Конечно, вы могли бы так же легко построить G1 из других значений, только что включенных

для разрыва строки.

Затем, чтобы получить многострочный текстовый файл в Notepad ++

  • Вырезать и вставить в Notepad ++
  • Ctrl-H, чтобы открыть диалог замены
  • Убедитесь, что выбран вариант расширенного поиска.
  • Замените все

на n (или r n, если хотите)

Это не проблема Excel. Как и предыдущий плакат, он просто выводит достоверные данные CSV. Это будет в редакторе, в котором вы его заложите, чтобы ухаживать за его форматированием. Я бы предложил использовать что-то немного умнее, чем блокнот . Вы могли бы использовать MS Word как промежуток между Excel и любым текстовым редактором, который вы хотели бы использовать помимо слова.

У меня была такая же проблема и я использовал следующие шаги (я использую Office 2007, но я думаю, что это работает и для более поздних версий):

  1. Выбрал диапазон ячеек, содержащих многострочный текст из Excel, который я хочу вставить в другой редактор, а затем выберите Копировать.
  2. В Word 2007 я вставил скопированный диапазон ячеек в таблицу.
  3. Выберите таблицу.
  4. На вкладке «Макет» выберите «Выбрать-таблицу».
  5. В разделе данных выберите «Преобразовать в текст» и выберите «Маркеры абзаца».

Результат — исходная таблица, преобразованная в текст, с символами новой строки в конце каждой строки и отметками абзаца в конце последней строки из каждой ячейки.

Вы можете сохранить документ Excel в качестве веб-страницы, а затем скопировать текст с веб-страницы. Это хорошо работает для одного столбца данных, но убедитесь, что ширина столбца установлена на ширину текста, иначе он добавит разрывы строк.

У меня была эта проблема сегодня, поэтому я подумал, что отправлю ответ, если кто-то все еще застрял на нем.

Вы можете обойти это, выделив ячейку, а затем скопируйте и вставив код непосредственно из текстовой панели вверху, щелкнув по ней и выделив все это вручную.

Я делал это только в Excel 2010, поэтому я не знаю, будет ли это работать для более ранних версий.

Невозможно подготовить его к CSV-файлу, потому что они были бы довольно глупыми, настолько сложными, как для верхних и хвостовых ячеек, которые содержат непечатаемые символы с кавычками, и не делают то же самое для ячеек, содержащих запятые ( которого нет).

В любом случае. Я столкнулся с этой проблемой, когда попытался создать метки адресов из полей «Имя, фамилия, адресная строка 1 . »:

CHAR(13) , а затем CHAR(10) — новый абзац при просмотре текстового файла с шестнадцатеричным редактором.

Мой путь вокруг этого досады заключается в следующем:

  • скопируйте и вставьте ячейки / столбец в Word.
  • Используйте раскрывающийся список символа буфера обмена (внизу слева от страницы или вставленный текст), чтобы выбрать, Сохранять только текст .
  • Выберите вложенный текст. Вам нужно сделать это, только если документ содержит другие материалы, которые могут быть затронуты.
  • Нажмите Ctrl + H , чтобы открыть диалоговое окно Найти и заменить .
  • В поле Найти, что введите тип поля: «^p» (все четыре символа).
    Возможно, вам придется перейти в Инструменты — > AutoCorrect, а затем вкладки AutoFormat, чтобы убедиться, что он не изменит ваши прямые кавычки)
  • В поле Заменить с помощью введите: ^p (2 символа)
  • Теперь нажмите Заменить все ,
  • Наконец, вам придется вручную удалите двойные кавычки в начале и конце импортированных блок

Это основано на Office 2003, поэтому ваша версия Microsoft Word может немного отличаться.

Копирование много строчного текста из ячейки Excel 2010

Добрый день.
В Excel 2010, в ячейке таблицы вставлен многосторчный текст, напр:

Значение1
Значение2
Значение3
Значение4

Если поместить курсор на эту ячейку (одинарный щелчок на ячейке, а не двойной!), ее содержимое будет скопировано в таком виде:

(т.е. единой строкой, без преходов строк).
Вопрос: можно ли настроить Excel таким образом, чтобы при подобном копировании, в буфер попадала не одна строка, заключенная в кавычки, а учитывались переходы строк, и копировался текст с переходами строк?

Копирование данных из файла Excel 2010
Здравствуйте. Подскажите,можно ли без использования VBA организовать копирование ячейки из другого.

Разделение содержимого 1й ячейки на много в столбец в excel
Доброго времени суток, хочу спросить у вас можно ли разделить в excel 12значное число без пробелов.

Не считываются данные с ячейки excel 2010
Есть проект на vb 2010 express, цель автоматизировать рутину: копирование одних ячеек из одной.

Копирование содержимого ячейки таблицы Excel в закладку Word
Задача. Нужно скопировать значение ячейки (например А1) в документ word в определенное место. Место.

Excel 2010 Ссылки на ячейки в других файлах в сети сбиваются
Имеется общая сетевая папка, в ней 2 файла Exel (.xlsx,.xlsa,.xlsb — тестировалось на разных). В.

Как преобразовать все ячейки листа excel в текст?

учитывая существующий документ Excel 2003 с ячейками любого типа (целые числа, текст, десятичные и т. д.), Как преобразовать содержимое каждой ячейки в текст?

и сохранить все эти изменения в том же документе excel?

на другом листе можно ввести в ячейку A1:

Копировать / Вставить, что для полной ширины и длины исходного листа. Затем вы можете вставить специальные>значения bock поверх оригиналов. Это должно заставить все иметь твой маленький зеленый участок.

единственное предостережение-даты. При применении этой формулы к полю даты будет отображаться серийный номер даты в виде текста. Не обычное форматирование, которое вы бы применили. Чтобы обойти это, используйте эту формулу вместо приведенного выше для полей даты:

выделите числа и используйте команду данные > текст в Столбцы. На странице 1 мастера выберите соответствующий тип (вероятно, он будет разделен). На странице 2 Удалите все показанные разделители столбцов, чтобы сохранить данные в одном столбце. На странице 3 щелкните текст в разделе формат данных столбца, чтобы указать, что этот столбец является текстом.

вы можете выбрать все поля, щелкните правой кнопкой мыши и копировать, а затем щелкните правой кнопкой мыши и вставить специальные / значения. Вы, вероятно, хотите скопировать в новую таблицу, чтобы не потерять свои формулы.

выберите все поля и делать как Марк Робинсон предложил: нажать Формат ячеек и выбрал текст.

это скроет все формулы в значение, которое они представляют вместо формулы, а затем скроет значения, которые являются числом в текст.

выделить все ячейки Ctrl+A

щелкните правой кнопкой мыши на выбранных ячейках и выберите Формат ячеек

на вкладке номер выберите текст в качестве категории

ячейки текстового формата обрабатываются как текст даже когда номер находится в ячейке. Ячейка отображается точно так внесенный.

Skip to content

Как извлечь текст из ячейки при помощи функции ПСТР и специальных инструментов

ПСТР — одна из текстовых функций, которые Microsoft Excel предоставляет для управления текстовыми строками. На самом базовом уровне она используется для извлечения подстроки из середины текста. 

В этом руководстве мы обсудим синтаксис и особенности функции Excel ПСТР (в английской версии – MID), а затем вы узнаете несколько вариантов творческого её использования для выполнения сложных задач.

  • Синтаксис и особенности
  • Если 2 слова — извлекаем имя и фамилию
  • Как получить текст между двумя определенными символами
  • Как извлечь любое по счету слово
  • Получаем слово с нужными буквами или символами
  • Как заставить ПСТР возвращать число?
  • Использование регулярных выражений для извлечения части текста
  • Как извлечь текст из ячейки с помощью Ultimate Suite

Cинтаксис.

Функция ПСТР возвращает указанное количество знаков, начиная с указанной вами позиции.

Функция Excel ПСТР имеет следующие аргументы:

ПСТР(текст; начальная_позиция; количество_знаков)

Где текст — это исходная текстовая строка. Далее следует позиция первого символа, который вы хотите извлечь, и количество их для извлечения.

Все 3 аргумента обязательны.

Например, чтобы извлечь 6 знаков из A2, начиная с 17-го, используйте эту формулу:

=ПСТР(A2;17;6)

Результат может выглядеть примерно так:

5 вещей, которые вы должны знать о функции Excel ПСТР

Как вы только что убедились, в использовании функции ПСТР в Excel нет ничего страшного. И помня следующие простые факты, вы избежите наиболее распространенных ошибок.

  1. Функция ПСТР всегда возвращает текстовую строку, даже если извлеченная подстрока содержит только цифры. Это может иметь большое значение, если вы хотите использовать результат формулы ПСТР в других вычислениях. Чтобы преобразовать цифры в число, применяйте ПСТР в сочетании с функцией ЗНАЧЕН (VALUE в английской версии), как показано в этом примере. (ссылка на последний раздел).
  2. Когда начальная позиция больше, чем общая длина исходного текста, формула Excel ПСТР возвращает пустое значение («»).
  3. Если начальная позиция  меньше 1, формула ПСТР возвращает ошибку #ЗНАЧ!.
  4. Когда третий аргумент меньше 0 (отрицательное число), формула ПСТР возвращает ошибку #ЗНАЧ!. Если количество знаков для извлечения равно 0, выводится пустая строка (пустая ячейка).
  5. В случае, если сумма начальной позиции и количества знаков превышает общую длину исходного текста, функция ПСТР в Excel возвращает подстроку начиная с начальной позиции и до последнего символа.

При решении реальных задач в Excel вам чаще всего потребуется использовать ПСТР в сочетании с другими функциями, как показано в следующих примерах.

Как извлечь имя и фамилию.

Если у вас была возможность прочитать наши недавние уроки, вы уже знаете, как вытащить имя с помощью функции ЛЕВСИМВ и получить фамилию с помощью ПРАВСИМВ.  Но, как это часто бывает в Excel, одно и то же можно сделать разными способами.

Получаем имя.

Предполагая, что полное имя находится в ячейке A2, имя и фамилия разделены интервалом, вы можете извлечь имя, используя следующую формулу:

=ПСТР(A2;1;ПОИСК(» «;A2)-1)

ПОИСК используется для сканирования исходного значения на предмет пробела (» «) и возврата его позиции, из которой вы вычитаете 1, чтобы избежать пробелов после имени. Затем вы используете ПСТР, чтобы вернуть подстроку, начинающуюся с первого знака и заканчивая предшествующим пробелу, таким образом извлекая первое имя.

Получаем фамилию.

Чтобы извлечь фамилию из A2, используйте эту формулу:

=СЖПРОБЕЛЫ(ПСТР(A2;ПОИСК(» «;A2);ДЛСТР(A2)))

Опять же, вы используете ПОИСК, чтобы определить начальную позицию (пробел). Нам не нужно точно рассчитывать конечную позицию (как вы помните, если вместе взятые начальная позиция и количество символов больше, чем общая длина текста, возвращаются просто все оставшиеся). Итак, в аргументе количество символов вы просто указываете общую первоначальную длину , возвращаемую функцией ДЛСТР . Впрочем, вместо этого вы можете просто ввести число, представляющее самую длинную фамилию, которую вы ожидаете найти, например 100. Наконец,  СЖПРОБЕЛЫ удаляет лишние интервалы, и вы получаете следующий результат:

Как выделить подстроку между двумя разделителями.

Продолжим предыдущий пример. А если, помимо имени и фамилии, ячейка A2 также содержит отчество, то как его извлечь?

Технически задача сводится к определению позиций двух пробелов в исходном тексте, и вы можете сделать это следующим образом:

  • Как и в предыдущем примере, используйте ПОИСК, чтобы определить позицию первого (» «), к которому вы добавляете 1, потому что вы хотите начать с символа, следующего за ним. Таким образом, вы получаете адрес начальной позиции: ПОИСК (» «; A2) +1
  • Затем вычислите позицию 2- го интервала, используя вложенные функции поиска, которые предписывают Excel начать поиск именно со 2-го:                                                  ПОИСК (» «; A2, ПОИСК (» «; A2) +1)

Чтобы узнать количество извлекаемых знаков, вычтите позицию первого пробела из положения второго. И затем еще вычтите 1 из результата, поскольку вам не нужны лишние интервалы в получившемся результате. Таким образом, у вас есть второй аргумент для формулы:          

ПОИСК(» «; A2; ПОИСК(» «; A2) +1) — ПОИСК(» «; A2)

Соединив все аргументы, мы получаем формулу для извлечения подстроки между двумя пробелами:

=ПСТР(A2;ПОИСК(» «;A2)+1;ПОИСК(» «;A2;ПОИСК(» «;A2)+1)-ПОИСК(» «;A2)-1)

На следующем скриншоте показан результат:

Аналогичным образом вы можете извлечь текст между любыми другими разделителями:

ПСТР( строка ; ПОИСК( разделитель ; строка ) +1; ПОИСК( разделитель ; строка ; ПОИСК( разделитель ; строка ) +1) — ПОИСК( разделитель ; строка ) -1)

Например, чтобы извлечь отрезок, выделенный запятой с пробелом после неё, используйте следующее выражение:

=ПСТР(A2;ПОИСК(«, «;A2)+1;ПОИСК(«, «;A2;ПОИСК(«, «;A2)+1)-ПОИСК(«, «;A2)-1)

На следующем рисунке эта формула используется для извлечения из адреса названия города, и она отлично справляется со своей задачей:

Как получить N-е слово из текста.

Этот пример демонстрирует оригинальное использование сложной формулы ПСТР в Excel, которое включает 5 различных составных частей:

  • ДЛСТР — чтобы получить общую длину.
  • ПОВТОР — повторение определенного знака заданное количество раз.
  • ПОДСТАВИТЬ — заменить один символ другим.
  • ПСТР — извлечь подстроку.
  • СЖПРОБЕЛЫ — удалить лишние интервалы между словами.

Общая формула выглядит следующим образом:

СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ( строка ; » «; ПОВТОР (» «; ДЛСТР( строка ))); ( N -1) * ДЛСТР( строка ) +1; ДЛСТР( строка )))

Где:

  • Строка — это исходный текст, из которого вы хотите извлечь желаемое слово.
  • N – порядковый номер слова, которое нужно получить.

Например, чтобы вытащить второе слово из A2, используйте это выражение:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2))); (2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))

Или вы можете ввести порядковый номер слова, которое нужно извлечь (N) в какую-либо ячейку, и указать эту ячейку в формуле, как показано на скриншоте ниже:

Как работает эта формула?

По сути, Excel «оборачивает» каждое слово исходного текста множеством пробелов, находит нужный блок «пробелы-слово-пробелы», извлекает его, а затем удаляет лишние интервалы. Чтобы быть более конкретным, это работает по следующей логике:

  • ПОДСТАВИТЬ и ПОВТОР заменяют каждый пробел в тексте несколькими. Количество этих дополнительных вставок равно общей длине исходной строки: ПОДСТАВИТЬ($A$2;» «;ПОВТОР(» «;ДЛСТР($A$2)))

Вы можете представить себе промежуточный результат как «астероиды» слов, дрейфующих в пространстве, например: слово1-пробелы-слово2-пробелы-слово3-… Эта длинная строка передается в текстовый аргумент ПСТР.

  • Затем вы определяете начальную позицию для извлечения (первый аргумент), используя следующее уравнение: (N-1) * ДЛСТР(A1) +1. Это вычисление возвращает либо позицию первого знака первого слова, либо, чаще, позицию в N-й группе пробелов.
  • Количество букв и цифр для извлечения (второй аргумент) — самая простая часть — вы просто берете общую первоначальную длину: ДЛСТР(A2).
  • Наконец, СЖПРОБЕЛЫ избавляется от начальных и конечных интервалов в извлечённом тексте.

Приведенная выше формула отлично работает в большинстве ситуаций. Однако, если между словами окажется 2 или более пробелов подряд, это даст неверные результаты (1). Чтобы исправить это, вложите еще одну функцию СЖПРОБЕЛЫ в ПОДСТАВИТЬ, чтобы удалить лишние пропуски между словами, оставив только один, например:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР($A$2))); (B2-1)*ДЛСТР($A$2)+1; ДЛСТР($A$2)))

Следующий рисунок демонстрирует улучшенный вариант (2) в действии:

Если ваш исходный текст содержит несколько пробелов между словами, а также очень большие или очень короткие слова, дополнительно вставьте СЖПРОБЕЛЫ в каждое ДЛСТР, чтобы вы были застрахованы от ошибки:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(СЖПРОБЕЛЫ($A$2);» «; ПОВТОР(» «;ДЛСТР(СЖПРОБЕЛЫ ($A$2)))); (B2-1)*ДЛСТР(СЖПРОБЕЛЫ($A$2))+1; ДЛСТР(СЖПРОБЕЛЫ($A$2))))

Я согласен с тем, что это выглядит немного громоздко, но зато безупречно обрабатывает все возможные варианты.

Извлекаем слово, содержащее определенный символ.

В этом примере показана еще одна нестандартная формула Excel ПСТР, которая извлекает слово, содержащее определенную букву или цифру, из любого места:

СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ ( строка , » «, ПОВТОР(» «, 99)), МАКС(1, НАЙТИ( символ , ПОДСТАВИТЬ( строка , » «, ПОВТОР(» «, 99))) — 50), 99))

Предполагая, что исходный текст находится в ячейке A2, и вы хотите получить слово, содержащее символ «$» (цена), выражение принимает следующую форму:

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)); МАКС(1;НАЙТИ(«$»;ПОДСТАВИТЬ(A2;» «;ПОВТОР(» «;99)))-50);99))

Аналогичным образом вы можете извлекать адреса электронной почты (на основе знака «@»), имена веб-сайтов (на основе «www») и так далее.

Теперь разберём пошагово:

Как и в предыдущем примере, ПОДСТАВИТЬ и ПОВТОР превращают каждый пробел в исходном тексте в несколько, точнее, в 99.

НАЙТИ находит позицию нужного символа (в данном примере $), из которой вы вычитаете 50. Это возвращает вас на 50 позиций назад и помещает где-то в середине блока из 99 пробелов, который предшествует слову, содержащему указанный символ.

МАКС используется для обработки ситуации, когда нужное значение появляется в начале исходного текста. В этом случае результат ПОИСК() — 50 будет отрицательным числом, а МАКС(1, ПОИСК() — 50) заменяет его на 1.

С этой начальной точки ПСТР отбирает следующие 99 знаков и возвращает интересующее нас слово, окруженное множеством пробелов. Как обычно, СЖПРОБЕЛЫ помогает избавиться от лишних из них, оставив только один.

Совет. Если извлекаемый отрезок очень большой, замените 99 и 50 на более крупные числа, например 1000 и 500.

Как заставить ПСТР возвращать число?

Как и другие текстовые функции, Excel ПСТР всегда возвращает текст, даже если он содержит только цифры и очень похож на число. Вы можете убедиться с этом, взглянув на пример чуть выше, когда мы получили число «20%» как текст.

Чтобы преобразовать результат в число, просто передайте полученный результат в функцию ЗНАЧЕН (VALUE в английской версии), которая преобразует текстовое значение, состоящее из цифр, в число.

Например, чтобы извлечь подстроку из 3 символов, начинающуюся с 7- го символа, и преобразовать ее в число, используйте:

=ЗНАЧЕН(ПСТР(A2;7;3))

На скриншоте ниже показан результат. Обратите внимание, что числа с выравниванием по правому краю помещены в столбец B, в отличие от исходных текстовых значений с выравниванием по левому краю в столбце A:

Тот же подход работает и для более сложных случаев. В приведенном выше примере, предполагая, что коды ошибок имеют переменную длину, вы можете извлечь их с помощью ПСТР, которая получает подстроку между двумя разделителями, вложенную в ЗНАЧЕН:

=ЗНАЧЕН(ПСТР(A2;ПОИСК(«:»;A2)+1;ПОИСК(«:»;A2;ПОИСК(«:»;A2)+1)-ПОИСК(«:»;A2)-1))

Вот как можно использовать функцию ПСТР в Excel. 

Использование регулярных выражений, чтобы извлечь часть текста.

Регулярное выражение – это шаблон, состоящий из последовательности символов, который можно использовать для поиска соответствующей последовательности в другой строке.

Как добавить в Excel пользовательскую функцию работы с регулярными выражениями и как правильно составить шаблон – читайте подробную инструкцию здесь.

Вы можете извлечь из ячейки все числа или все буквы, телефонный номер, адрес электронной почты, дату, время, текст между любыми двумя символами или двумя словами, текст после определенного символа, и еще множество вариантов.

Вот пример: из наименования товара — Коммутатор Optimus U1E-8F/1G/1S, нужно извлечь номер модели. Поскольку этот номер находится в конце наименования, то будем искать то, что записано после последнего пробела.

= RegExpExtract(A1; «([^s.]+)$»)

В результате получим U1E-8F/1G/1S, что и требовалось.

Как извлечь текст из ячейки с помощью Ultimate Suite

Как вы только что видели, Microsoft Excel предоставляет набор различных функций для работы с текстовыми строками. Если вам нужно извлечь какое-то слово или часть текста из ячейки, но вы не уверены, какая функция лучше всего подходит для ваших нужд, передайте работу Ultimate Suite for Excel. Заодно не придётся возиться с формулами.

Вы просто переходите на вкладку Ablebits Data > Текст, выбираете инструмент Split Text и в выпадающем списке нажимаете Извлечь (Extract) :

Теперь вы выбираете исходные ячейки, и какие бы сложные строки они ни содержали, извлечение из них подстроки сводится к этим двум простым действиям:

  1. Укажите, сколько символов вы хотите получить из начала, конца или середины строки; или выберите извлечение всего текста до или после определенного символа.
  2. Щелкните Вставить результаты (Insert Results). Готово!

Кроме того, вы можете извлечь любое число символов с начала или в конце текста, из середины текста, между какими-то символами. Например, чтобы извлечь доменные имена из списка адресов электронной почты, вы выбираете чекбокс Все после текста (All after text) и вводите @ в поле рядом с ним. Чтобы извлечь имена пользователей, выберите переключатель Все до текста (All before text), как показано на рисунке ниже.

Помимо скорости и простоты, инструмент «Извлечь текст» имеет дополнительную ценность — он поможет вам изучить формулы Excel в целом и функции подстроки в частности. Как? Выбрав флажок Вставить как формула (Insert as formula)  в нижней части панели, вы убедитесь, что результаты выводятся в виде формул, а не просто как значения. Естественно, эти формулы вы можете использовать в других таблицах.

В этом примере, если вы выберете ячейки B2 и C2, вы увидите следующие формулы соответственно:

  • Чтобы извлечь имя пользователя:

=ЕСЛИОШИБКА(ЛЕВСИМВ(A2,ПОИСК(«@»,A2)-1),»»)

  • Чтобы извлечь домен:

=ЕСЛИОШИБКА(ПРАВСИМВ(A2, ДЛСТР(A2)- ПОИСК(«@»,A2) — ДЛСТР(«@») + 1),»»)

Сколько времени вам потребуется, чтобы самостоятельно составить эти выражения?  ;)

Поскольку результаты представляют собой формулы, извлеченные подстроки будут обновляться автоматически, как только в исходные ячейки будут внесены какие-либо изменения. Когда в ваш набор данных добавляются новые записи, вы можете скопировать формулы в другие ячейки как обычно, без необходимости заново запускать инструмент «Извлечь текст».

Если вам интересно попробовать это, а также множество других полезных функций, включенных в Ultimate Suite for Excel, вы можете загрузить ознакомительную версию. Если вам нравятся инструменты, вы можете получить лицензию по очень специальной цене, которая доступна только для наших русскоязычных пользователей.

Благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!

Как быстро посчитать количество слов в Excel В статье объясняется, как подсчитывать слова в Excel с помощью функции ДЛСТР в сочетании с другими функциями Excel, а также приводятся формулы для подсчета общего количества или конкретных слов в…
Как быстро извлечь число из текста в Excel В этом кратком руководстве показано, как можно быстро извлекать число из различных текстовых выражений в Excel с помощью формул или специального инструмента «Извлечь». Проблема выделения числа из текста возникает достаточно…
Как удалить пробелы в ячейках Excel Вы узнаете, как с помощью формул удалять начальные и конечные пробелы в ячейке, лишние интервалы между словами, избавляться от неразрывных пробелов и непечатаемых символов. В чем самая большая проблема с…
Функция СЖПРОБЕЛЫ — как пользоваться и примеры Вы узнаете несколько быстрых и простых способов, чтобы удалить начальные, конечные и лишние пробелы между словами, а также почему функция Excel СЖПРОБЕЛЫ (TRIM в английской версии)  не работает и как…
Функция ПРАВСИМВ в Excel — примеры и советы. В последних нескольких статьях мы обсуждали различные текстовые функции. Сегодня наше внимание сосредоточено на ПРАВСИМВ (RIGHT в английской версии), которая предназначена для возврата указанного количества символов из крайней правой части…
Функция ЛЕВСИМВ в Excel. Примеры использования и советы. В руководстве показано, как использовать функцию ЛЕВСИМВ (LEFT) в Excel, чтобы получить подстроку из начала текстовой строки, извлечь текст перед определенным символом, заставить формулу возвращать число и многое другое. Среди…
5 примеров с функцией ДЛСТР в Excel. Вы ищете формулу Excel для подсчета символов в ячейке? Если да, то вы, безусловно, попали на нужную страницу. В этом коротком руководстве вы узнаете, как использовать функцию ДЛСТР (LEN в английской версии)…
Как быстро сосчитать количество символов в ячейке Excel В руководстве объясняется, как считать символы в Excel. Вы изучите формулы, позволяющие получить общее количество символов в диапазоне и подсчитывать только определенные символы в одной или нескольких ячейках. В нашем предыдущем…

Иногда возникает необходимость «выдернуть» из текста в ячейке отдельные символы (один или сразу несколько), т.е. извлечь подстроку из строки. В Microsoft Excel это можно легко сделать с помощью трех встроенных текстовых функций.

  • ЛЕВСИМВ(текст; кол-во символов) – извлекает из текста заданное количество символов слева, т.е. от начала строки;
  • ПРАВСИМВ(текст; кол-во символов) – делает то же самое, но берет текст справа, т.е. от конца;
  • ПСТР(текст; начальный символ; кол-во символов) – выдергивает из текста фрагмент заданной длины, начиная с определенного символа.

Как в Excel извлекать символы из текстовой строки

Как в Excel извлекать символы из текстовой строки

Понравилась статья? Поделить с друзьями:
  • Как копировать весь текст в word
  • Как копировать свойства ячейки в excel
  • Как копировать весь пункт в word
  • Как копировать свойства текста в word
  • Как копировать весь лист в word