Как вставить в ячейку excel только числа

Хитрости »

1 Май 2011              398256 просмотров


Как оставить в ячейке только цифры или только текст?

Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?

  • Было доставлено кусков мыла 763шт.
  • Всего пришло 34
  • Тюбики — 54 доставлено
  • и т.д.

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


СПОСОБ 1: не используем макросы
можно применить формулу массива, вроде такой:
=ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1)
Три важных момента:

  1. Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
  2. в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА($1:$99) на СТРОКА($1:$200). Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
  3. формула не обработает корректно текст «Было доставлено кусков мыла 763шт., а заказывали 780» и ему подобный, где числа раскиданы по тексту.

Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.

  • в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
  • блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)))
    вычисляет позицию первой цифры в ячейке — 29
  • блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99))
    вычисляет позицию последней цифры в ячейке — 31
  • в результате получается: =ПСТР(A1;29;3129+1)
    функция ПСТР извлекает из текста, указанного первым аргументом(A1) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(3129+1)
  • И в итоге:
    =ПСТР(A1;29;3129+1)
    => =ПСТР(A1;29;2+1)
    => =ПСТР(A1;29;3)
    => 763

Может быть задача проще — необходимо извлечь односоставной текст, убрав цифры вначале и в конце строки, учитывая, что сам текст всегда следует после разделителя(например, тире):

12.08-АГСВ2
12.08-АГСВ1
01.03-ОВ2
12.03-КЖ6.1

Из этих данных надо получить только текст после тире(-) и отсечь цифры на конце:

АГСВ
АГСВ
ОВ
КЖ

Формула будет работать почти по тому же принципу, что и формула выше, но она проще:

=ПСТР(A1;ПОИСК(«-«;A1)+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(A1;ПОИСК(«-«;A1)+1;999);СТРОКА($1:$99);1));0)-1)

В данном случае мы при помощи

ПОИСК(«-«;A1)

ищем сначала позицию тире, далее при помощи

ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(A1;ПОИСК(«-«;A1)+1;999);СТРОКА($1:$99);1));0)

находим именно в отсеченном тексте позицию первой цифры. Передаем эти значения в

ПСТР

, которая отбирает из этого текста все от первого тире(+1) до первого числа, идущего после текста.


СПОСОБ 2: используем макросы
Самый главный недостаток метода при помощи формулы, приведенной выше — из текста «Было доставлено кусков мыла 763шт., а заказывали 780» формула вернет не только числа, а и текст между первой и последней цифрой: 763шт., а заказывали 780.
Решить же проблему извлечения цифр даже из такого текста при помощи VBA куда проще и гибче. Плюс можно не только цифры извлекать, но и наоборот — цифры удалить, а извлечь только текст. Ниже приведен код пользовательской функции, которая поможет извлечь из строки только числа либо только текст. Иными словами, результатом функции будет либо только текст, либо только числа.

Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer)
'sWord = ссылка на ячейку или непосредственно текст
'Metod = 0 – числа
'Metod = 1 – текст
    Dim sSymbol As String, sInsertWord As String
    Dim i As Integer
 
    If sWord = "" Then Extract_Number_from_Text = "Нет данных!": Exit Function
    sInsertWord = ""
    sSymbol = ""
    For i = 1 To Len(sWord)
        sSymbol = Mid(sWord, i, 1)
        If Metod = 1 Then
            If Not LCase(sSymbol) Like "*[0-9]*" Then
                If (sSymbol = "," Or sSymbol = "." Or sSymbol = " ") And i > 1 Then
                    If Mid(sWord, i - 1, 1) Like "*[0-9]*" And Mid(sWord, i + 1, 1) Like "*[0-9]*" Then
                        sSymbol = ""
                    End If
                End If
                sInsertWord = sInsertWord & sSymbol
            End If
        Else
            If LCase(sSymbol) Like "*[0-9.,;:-]*" Then
                If LCase(sSymbol) Like "*[.,]*" And i > 1 Then
                    If Not Mid(sWord, i - 1, 1) Like "*[0-9]*" Or Not Mid(sWord, i + 1, 1) Like "*[0-9]*" Then
                        sSymbol = ""
                    End If
                End If
                sInsertWord = sInsertWord & sSymbol
            End If
        End If
    Next i
    Extract_Number_from_Text = sInsertWord
End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions) и применять как обычную функцию на листе.
Для извлечения только чисел
=Extract_Number_from_Text(A1; 0)
или
=Extract_Number_from_Text(A1)
Для извлечения только текста
=Extract_Number_from_Text(A1; 1)

Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?


Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:

Выбрать ячейку или диапазон с текстом(Лист1!$A$2:$A$10) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.

Выберите ячейку для вывода данных(Лист1!$A$2) — указывается одна ячейка, с которой начать вывод преобразованных значений. В качестве этой ячейки можно выбрать первую ячейку диапазона с текстом(исходного) если необходимо произвести изменения сразу в этих же ячейках(как на рисунке). Осторожнее с таким указанием, т.к. результат работы кода может быть не совсем таким, какой вы ожидали, а вернуть прежние данные уже не получится — если только не закрыть файл без сохранения изменений.

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

Небольшое дополнение к использованию кода
В коде есть строка:

If LCase(sSymbol) Like "*[0-9.,;:-]*" Then

Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):

If LCase(sSymbol) Like "*[0-9]*" Then

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

If LCase(sSymbol) Like "*[0-9.]*" Then

и т.д.
Скачать пример:

  Число из текста и наоборот.xls (99,0 KiB, 17 669 скачиваний)

Также см.:
Извлечение числа из текста
Что такое функция пользователя(UDF)?
Как получить адрес гиперссылки из ячейки
Оставить цифры или текст при помощи PowerQuery


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

 

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

 

Юрий М

Модератор

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

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

Скопировать код:  
Private Sub Worksheet_Change(ByVal Target As Range)  
   If Not Intersect(Target, Range(«A2:A100»)) Is Nothing Then  
       Application.EnableEvents = False  
       If Not IsNumeric(Target) Then  
           MsgBox «А вот и нельзя такую фигню вводить — только циферки!», 48, » Ошибка!»  
           Target = «»  
       End If  
   End If  
   Application.EnableEvents = True  
End Sub  
Затем, правый клик по ярлычку листа — Исходный текст. Вставить скопированное.  
Проверяем в диапазоне А2:А100

 

Guest

Гость

#3

18.10.2012 23:32:42

вариант  
для 2007    
становимся на ячейку где нужен запрет(например А1), Данные — Проверка данных  
тип данных выбираем другой.  
в окно формула вводим =ЕЧИСЛО(A1)  
во вкладке «сообщение об ошибке» в окне сообщение пишем сообщение которое хотим видеть при ошибке. ОК.

Число Excel. Формат.

​Смотрите также​- В1​»Я прекращаю этот​я не мог​​ видеть или по​​ такие цифры?? как​ на «числовой», то​ старому экселю, в​ смотрите в статье​Чтобы написать в​ числа с минусом​
​ «пробел» и пишем​ этого выбираем функцию​ даты в Excel,​ Остальное ячейка посчитала​ нужен самый точный​ То есть со​Формула в Excel​алекsei​
​ бесполезный спор…я не​​ найти решение для​ нему сортировать!​ быть??​ число начинает отображаться​ новом он дает​ «Посчитать количество дней​ ячейках число или​ в числа без​ число.​ «Дополнительный (все форматы)».​ читайте в статье​ сама. Получилось: 2​ расчет, то нужно​ всеми пропусками, вставками,​ часто зависит от​: НАВЕРНО Я что-то​ мог найти решение​ себя, здесь тоже​Поэтому и ТЕКСТ!​
​Serge​​ как 1003763821122270000, т.е.​​ среднее арифметическое​
​ недели между датами​​ с минусом, или​ минуса, но в​Третий вариант​ Можно установить свой​ «Автозамена в Excel».​ – это 2%​ округлить число с​ т.д.​ формата числа (например,​ не понимаю, формулу​ для себя, здесь​
​ не нашел ответа,​Михаил С.​: Предварительно установить столбцу​ последние 4 цифры​
​Марина ширенда (язева)​​ в Excel».​ с плюсом, можно​ скобках, смотрите в​- устанавливаем в​ формат. Читайте в​Как поставить ноль перед​ от 100.​ помощью формул. Смотрите​Но, для удобства​ время).​ в ячейке я​ тоже не нашел​ решение пришло опытным​: А у меня​ формат «текстовый».​ меняются на ноль.​: Проставьте в первых​Александр власов​
​ настроить пользовательский формат.​ статье «Отрицательные числа​ ячейке формат «Текстовый».​​ статье «День недели​​ числом в Excel.​Как ещё посчитать проценты,​ в статье «Округление​ ввода данных в​Формат числа в Excel​
​ забил, мне нужно​ ответа, решение пришло​ путем, как я​ работает, если​Сергей​
​Вопрос — как​ трех ячейках порядковую​: ВВеди хотябы ещ​
​ Например, в определенный​ Excel в скобках».​Четвертый вариант​
​ по дате в​Нужно установить в​ смотрите в статье​ в Excel».​ ячейку, существуют другие​можно настроить на​ теперь поверх забить​ опытным путем, как​ описал.​3. Выделяем нужную​: А на вопрос​
​ сделать так, чтобы​​ нумерацию (1 2​ 5 цифр и​ столбец пишем каждый​Седьмой вариант​- ставим в​ Excel» тут.​ ячейке текстовый формат.​ «Таблица «Домашний, семейный​Формат «Денежный», «Финансовый»​ форматы.​​ закладке «Главная» в​
​ число,​​ я описал»​если кому то​ ячейку, CTRL+V​ так никто и​ последние цифры отображались​ 3). Выделите эти​ потяни вниз​ раз новые числа,​- в формуле​ ячейке, сначала, знак​В Excel можно​ Вызываем правой мышкой​ бюджет в Excel»​
​- эти форматы​​Формат «Числовой»​ разделе «Число» или​тут идет выбор​Юрий, Михаил, Сергей!​​ это поможет буду​ ​Юрий М​​ не смог ответить!!!!!!​ корректно?​ ячейки. В правом​Синий кот​ но с минусом​ написать отрицательное число​ апостроф (‘) –​ отрицательное число записать​ контекстное меню. Нажимаем​ здесь.​ автоматически ставят в​- здесь можно​ в контекстном меню​ или формула или​ О чем же​ рад. спасибо.​
Проценты в Excel.​: А Вы прочитайте​Юрий М​Спасибо!​ нижнем углы выделения​: Набрать 2 цифры:​
​ или с плюсом.​​ в скобках. Например,​ это надстрочная одинарная​ в скобках. Смотрите​ «Текстовый».​Формат «Дробный» в Excel​ конце цифры букву​ настроить ячейку так,​
​ (смотрите статью «Функции​ число​​ вы спорили (обсуждали)?:-))))​Юрий М​ ответ от 24.02.2010,​: Искать и не​Guest​ появится крестик -​ 1,2, выделить обе​Выделяем ячейки, столбец,​ так. =А1+(-3).​ кавычка. Она находится​ статью «Отрицательные числа​Получилось.​
​записывает цифру дробью.​ «р.» (рублей) и​ что число будет​ Excel. Контекстное меню»).​В А1 Вы​Юрий М​: >> Как Вы​ 19:51​ лениться…​: формат ячеек текстовый​ дважды щелкните им​ ячейки и затем​ т.д. Вызываем диалоговое​Восьмой вариант​
​ на клавише буквы​ Excel в скобках».​Или поставить перед​ Можно написать в​ разделяют введенную цифру​ записываться с учетом​В Excel есть​ вводите нужную формулу,​: Человек, судя по​ себе представляете 15000​
​Guest​Михаил С.​
​ специальная вставка-значения​ по правому нижнему​ потянуть за нижний​ окно «Формат ячеек».​- вставить символ​
​ «э» на клавиатуре,​
​Совет.​ числом апостроф (это​ ячейке делятичную дробь​ на группы разрядов​ разделителя групп разрядов.​ два формата -​ она вычисляет число,​ всему, спорил сам​ счетов содержащихся в​: А Вы прочитайте​: Да постом выше​​bystander​ углу и весь​ правый угол с​ Нажимаем функцию «Все​ знака «минус». На​ но на английской​
​Иногда, при заполнении​ одинарная кавычка вверху).​ (10,2), а с​ (1 000р.). Это​ Для этого ставим​ формат ячеек и​ правильно?​ с собой. Сначала​ файле word исправлять​ ответ от 24.02.2010,​ ответ дан.​: там нет опции​ столбец заполнится номерами​ ячекой «2»​ форматы». В строке​
​ закладке «Вставка» ->​ раскладке ее нажимать​ таблицы не пишется​ Находится апостроф на​ помощью этого формата​ удобно при заполнении​
​ галочку у «Разделитель​ формат значений. Подробнее​Из этого числа​ не мог найти​ и ставить апостроф?​ 19:51{/post}{/quote}​Сергей​ «значения», а есть​ по порядку.​Виктор лось​
​ «Тип» пишем такой​ «Символ». Подробнее, какими​ нужно. Затем пишем​ в ячейке или​ клавише буквы Э​
​ цифра напишется дробью​
​ финансовой части документа.​ групп разрядов» или​ о форматах, смотрите​ Вам нужно вычесть​ решение для себя,​Очень даже хорошо​Как Вы себе​: Вот нашел решение​ — «объект Документ​
​Есть список телефонов в​: пишешь две цифры​ формат:​ способами и быстро​ число. Так число​ цифра, или текст,​

excel-office.ru

Как ввести отрицательное число в Excel.

​ на русской раскладке.​​ (10 1/5).​ Можно поставить​ нажимаем кнопку с​ в статье «Преобразовать​ число, которое находится​ здесь тоже не​​ представляю: перебираю их​ представляете 15000 счетов​ (exel 2007):​ Microsoft Office Word,​ таблице Эксель. Все​
​ подряд, потом выделяешь​чтобы число писалось​ ​ вставить символ, смотрите​
​ запишется как текст.​​ другие сбои. Тогда​ Но чтобы его​Как написать дробь в​
​знак другой валюты.​​ тремя нулями на​ дату в текст​ в В1.​ нашел ответа, а​ циклом и к​ содержащихся в файле​
​1. Копируем в​​ Метафайл Windows, HTML,​ телефоны начинаются с​
​ обе ячейки и​​ с минусом «-0»;​ в статье «Символ​Апостроф видно не будет.​ нужно проверить и​ поставить, нужно переключить​ Excel​Формат «Дата», «Время»​ закладке «Выравнивание». Например:​ Excel» тут.​Если правильно. Тогда​ потом оно пришло​ каждому значению впереди​
​ word исправлять и​Как ввести отрицательное число в Excel.
​ word-е столбец с​ Текст в кодировке​ цифр 777, а​ тянешь за нижний​чтобы число писалось​ в Excel» тут.​Знак апостроф преобразует​​ настроить формат ячеек.​​ клавиатуру на английскую​быстро, не меняя​- эти форматы​ вы вводите число​Формат ячейки в Excel​ в А1 вводите​
​ опытным путем. А​ добавляю апостроф.​ ставить апостроф?​ 30-значными числами.​ Unicode, Текст. Пробовал​ требуется добавить вначале​ правыйу угол​
​ с плюсом –​​ Там описан небольшой​ число в текст.​ Настраивать в пустой​ раскладку. Написано будет​ каждый раз формат​
​ позволяют выбрать, в​​ без всяких пропусков,​нужен для того,​ формулу, например =СУММ(​ зачем читать то,​P.S. А вообще​Guest​2. Выделяем столбец​ все форматы, не​ цифру 8 во​Иван леконтцев​ «+0».​
​ нюанс, чтобы вставить​​ Записанные с апострофом​ ячейке вернее.​ число так.​ ячейки. Нужно сначала​
​ каком виде будут​​ сплошным текстом 1000000,​ чтобы при написании​тут ссылка на что​ что было написано​ про значения из​: А у меня​ в excel правой​ помогло​ всех номерах. возможно​: в начальную ячейку​Установив такой формат, будем​
​ символ на ноутбуке.​​ числа не будут​Узнать, где находятся​Нажимаем «Enter». Будет​ поставить0 (ноль), нажать​ видны в ячейке​ а с помощью​
​ числа простым набором​ суммируете​ ​ выше? — ведь​
​ 20 цифр (номера​​ работает, если​ мышкой, свойства ячеек,​Serge​
​ ли это сделать​​ вписывайте 1 -​ просто писать число​
​Девятый вариант​​ считаться. Чтобы отрицательные​ на клавиатуре кнопки​ написано число с​ кнопку на клавиатуре​ дата и время.​
​ числового формата, число​​ цифр с клавиатуры,​)-В1​ решение он сначала​ счетов) вопросы задавались​3. Выделяем нужную​
​ выбираем ТЕКСТОВЫЙ, ОК​: Поставить перед числом​ быстрым способом?​ Ентер — выделяете​ без знаков, а​- как сделать​ числа, написанные с​ умножения, деления, процент,​ нулями впереди без​ — (пробел) затем​
​ Например: 12.08.2012г; 12.8;​ запишется так: 1​ без запятых или​алекsei​ не нашёл :-)​ неоднократно. И всегда​ ячейку, CTRL+V{/post}{/quote}​
​3. Выделяем первую​ знак `​
​Andrey timoshenko​ снова эту ячейку​ оно будет записываться​
​ из положительных чисел​ апострофом, считались, нужно​ другие, можно в​ апострофа. Число в​ писать дробь через​
​ 12 авг.; т.д.​ 000 000.​ двоеточия (например, 123456),​, запишите формулу в​ Вот он и​
​ ответ был один​​Напишите в WORD-е​ ​ ячейку в excel​​dude​: 1) если телефоны​
​ — на жирной​ со знаком.​
​ отрицательные, смотрите в​правильно​
​ статье «Где на​ этой ячейке будет​ ​ косую черточку (например1/2).​​ Чтобы посчитать даты​Часто важно, сколько​ числа автоматически записывались​
​ др место, если​ прекратил спорить сам​ — преобразовать в​ 11111111111111111111111111111111111111111111111111113.​ правой мышкой ,​: сорри​ имеют вид 10-ти​ рамки выделения в​О других пользовательских​

excel-office.ru

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

​ статье «Положительное число​​убрать апотсроф, оставив​ клавиатуре кнопка».​ сохранено как текст.​

​ Hажимаем «Enter». Число​​ в Excel, нужно​ знаков у числа,​ в определенном формате​ у вас каждый​ с собой :-)​ текст.​

​Скопируйте, вставте в​​ Специальная вставка -​не значения, а​ значных чисел, то​ правом нижнем углу​ форматах читайте в​

​ в Excel сделать​​ число отрицательным. Как​Рассмотрим,​Когда мы копируем​ запишется дробью, формат​ написать формулу. Как​ стоит​ (1234,56р). Или, чтобы​ день появляются значения​алекsei​ran​ EXCEL (CTRL+V).​ Текст в кодировке​

​ текст​​ в соседнем столбце​ есть квадратик -​ статье «Как создать​ отрицательным и наоборот».​ это сделать, смотрите​как ввести отрицательное число​ данные в Excel​ ячейки изменится автоматически​
​ это сделать, смотрите​после запятой​ цифра написалась с​ в столбце A,​: пример: A1=A1-B1 как​: Обалденно интересно было​

​У меня не​​ Unicode, вставить.​вариант сергея бэст​ введи формулу сложения​ зажимаете ctrl и​ пользовательский формат в​

​Как поставить плюс перед​​ в статье «Как​ в Excel, как​ из другой программы,​ на «дробный».​ в статье «Дата​(10,12 или 10,12456).​ разделением на разряды​ забейте тогда вашу​ создать такую формулу​ почитать сегодняшнюю дискуссию.​ получается :(​Юрий М​

Подскажите как в Экселе добавить первую цифру 8 во всем столбце номеров телефонов???

​сам всегда «_»​ данных чисел с​ ЛКМ на квадратике​ Excel».​ числом в​ убрать апостроф в​ написать положительное число​ то числа копируются​В Excel есть​

​ в Excel. Формула».​​ Для этого ставим​ чисел (2 000​ расчетную формулу в​ помогите​Сначала человек пишет​Михаил С.​: Ага, а как​ вперед ставлю и​
​ 80 000 000​ и тащите мышь​Чтобы​Excel.​ ячейке Excel».​ со знаком, как​ не в числовом,​ набор стандартных форматов​Формат «Процентный»​

Копирование длинных чисел в эксель — как избежать замены цифр на 0

​ число разрядов, которые​​ 000). Или, написать​ столбец С (С1=А1-B1).​алекsei​
​»А на вопрос​: Да, постом раньше​ потом с тестом​ не парюсь​
​ 000 (пример, «=A1+80000000000»)​ вниз.​поставить тире в ячейке​Первый вариант​На каких-то ноутбуках​ написать ноль перед​

​ а в текстовом​ ячеек. Но можно​- здесь значение​ будут отражаться в​

​ число, чтобы не​

​зы: формула ссылаться​​: т.е. в ячейке​ так никто и​

​ я погорячился -​​ сложение/деление будете делать?​Serge​2) если строка,​Александр кукушкин​Excel​- ставим знак​ нужно нажать двойные​ числом в Excel​ формате и формулы​

​ создать свой, пользовательский​​ ячейки умножается на​ ячейке.​

​ было никакого формата.​​ на значение ячейки​
​ есть число, от​ не смог ответить!!!!!!»​
​ конкретно из ворда​
​ Если нужны числа​: 2 тухачевский Андрей,​ то с помощью​

​: Заполняете минимум 2​​, ставим «минус» и​ «плюс», нажимаем клавишу​ верхние кавычки, если​, т.д. Здесь описано​ не работают, не​ формат. Например, мы​

​ 100 и пишется​Желтым цветом обведена кнопка​ Например, написать число​ «самой себя» не​

​ нее отнять другое​​Ему начинают говорить,​

​ не работает. Работает​​ — см. ссылку,​ ` лучше _​ команды СЦЕПИТЬ добавь​ ячейки, цифрами по​ нажимаем клавишу «Enter».​ «пробел», пишем число.​

​ не работает одинарная.​​ много разных вариантов,​ считают. Чтобы формулы​

​ пишем число 12,​​ символ «%». Чтобы​ «Разделитель групп разрядов»,​ с минусом (-0,21),​

​ может, у вас​​ и обратно вставить?​ что число надо​

​ из блокнота и​​ которую я приводил​ потому что `​

​ спереди восьмерку, затем​​ порядку (например 1,2)​Так же ставится знак​
​Второй вариант​ Главное, чтобы они​ как поставить знак​
​ считали, нужно изменить​ а в ячейке​посчитать проценты в​ которая разделяет число​
​ поставить нуль перед​ получится циклическая ссылка.я​ Может там формула?​ превратить в текст,​ других различных мест,​ выше. А про​

​ не отображается в​​ выдели столбец с​ , Берёте эти​ «равно», плюс, т.д.​- установить в​ исчезли, когда число​ перед числом в​ формат этих чисел.​ записывается 12 шт.​Excel​ по тысячам (1​

​ цифрой (0026), т.д.​​ догнал A1=C1+A1-B1 просто​алекsei​
​ и что этот​ напимер с этой​ текст в самом​ ячейке и не​ результатом и скопируй​ ячейки и за​Если нужно, выравниваем по​ ячейке текстовый формат.​ напишем.​
​ Excel.​

​ Как это сделать,​​ или 12 кг.,​, нужно установить формат​
​ 234 555).​Итак,​

​ в C1 забиваю​​: мне нужно в​ ответ уже был​ страницы. Из ворда​

​ начале есть варианты.​​ выводится на печать.​ только значения на​ угол и перетягиваете​

​ центру.​Третий вариант​Пятый вариант​Как ввести отрицательное число​ читайте в статье​

​ т.д. Подробнее о​​ ячейки «Процентный и​Красным цветом -​
​числовые форматы в Excel​ начальное число, оно​

​ ячейку с формулой​ дан в этой​
​ — Ваш способ.​ Перечитайте тему.​
​2 bystander С​ пустую область (пример,​

​ вниз, на сколько​​Как поставить ноль перед​- поставить в​- нажимаем сначала​ в​ «Преобразовать текст в​ создании пользовательского формата​ написать формулу. Например,​ добавляет цифры после​.​
​ попадает в А1​ вставить значение от​ теме.​зы. Мне раньше​

​Сергей​​ такими «числами» Вы​ «=СЦЕПИТЬ («8″;»номер телефона»)»​ нужно.​ числом в​ ячейке сначала апостроф,​
​ один раз клавишу​Excel.​ число в Excel».​ читайте в статье​ нужно найти -​ запятой.​Формат «Общий»​
​ и начинает работать,​ которого каждый день​Затем он-же пишет​

​ из ворда не​​: Прочитайте вопрос 2010​ сможете работать только​bystander​Кстати так-же запоняется​Excel​
​ затем, «плюс» и​ «пробел», затем пишем​Первый вариант​Как поставить минус​ «Как создать пользовательский​
​ сколько процентов от​Зеленым цветом -​- в ячейке​ после в С1​ я буду отнимать​»Вот нашел решение​ было необходимости этого​ года!​

​ как с текстом.​​: Копирую в эксель​ строка, и не​
​, смотрите в статье​
​ число. Смотрите выше​ знак «минус» и​- пишем в​
​ или плюс перед​ формат в Excel».​ 100 число 2?​ уменьшает цифры после​ все слова и​ ставлю 0 и​ затраты. в дальнейшем​
​ (exel 2007):…​
​ делать.​нужно только скопировать​
​dude​
​ из аутлука число​ обязательно цифрами, можно​ «Число Excel. Формат»​ вариант 4.​
​ число.​
​ ячейке знак «минус»​ числом, др., читайте​При копировании числа​ В ячейке Е5​ запятой.​ числа будут записаны​ вперед А1=C1(1000)+A1(0)-B1(0) A1(900)=C1(0)+A1(1000)-B1(100)​ прейду к нулю​

​выбираем ТЕКСТОВЫЙ, ОК»​Сергей​ 20-30 цифр счета,​

​: agree​​ 1003763821122276753​ месяца вписать (январь…​ тут.​Четвертый вариант​Шестой вариант​ и ставим число.​ в статье «Как​ с точками вместо​ будет стоять результат,​Убрав лишние цифры​ так, как вы​ A1(800)=C1(0)+A1(900)-B1(100) кароче так​ как-то так​Ему вновь начинают​: Я прекращаю этот​ реестрового номера или​Guest​

planetaexcel.ru

Как вставить в ячейку с формулой цифры?

​После вставки число​​ февраль и тд.​Как посчитать количество​- поставить символ​

​- написать число​​Второй вариант​ ввести отрицательное число​ разделителя (1.23.45), когда​ ставим на нее​ после запятой форматом,​

​ их введете. Например:​​ решение провожу в​Nsky14​ говорить, что число​ бесполезный спор, его​ прочей подобной информации.​: Сорри, а если​ меняется на 1.00376E+18​ )​

​ определенного дня недели,​​ «плюс». Смотрим статью​ в скобках (100).​​- если не​​ в Excel» тут.​

​ вставляем такое число​​ формат «Процентный» и​ мы не убираем​ программа, Програм-ма, 1000,​ ручном режиме через​: так может сразу​ надо превратить в​
​ может разрешить только​ № счета не​ надо скопировать и​

​ и ячейке присваивается​Алексей​ (например, вокресений, суббот,​ «Символ в Excel»​
​ Так пишут в​ пишется число с​Можно выбрать другие​ в ячейку, Excel​
​ вводим формулу «​ эти цифры при​ 10 00, 1​​ кнопку F9 всем​ отнимать =​​ текст.​​ bystander, как задавший​​ надо делить или​ вставить столбцы, в​ «общий» вид​: то, что вы​ т.д.) между датами,​ про символы. Ссылка​ финансовых документах. Как​ минусом, то ставим​
​ форматы. Например, формат​ его записывает датой.​ =Е4/Е3». Нажимаем «Enter».​ расчете. Поэтому, если​ 000 р, 10%.​ спасибо за помощь​формула в А1​И напоследок​ вопрос.​ умножать, нужно его​ одном из которых​Если меняю вид​ подсказали относиться к​ в определенном периоде,​ на статью выше.​ переписать все отрицательные​ знак «минус», нажимаем​ номера телефона. Для​

CyberForum.ru

​ Как отменить автозамену​

Содержание

  1. Как в Microsoft Excel извлечь число из ячейки с текстом самый простой и быстрый способ
  2. Excel извлекаем число из текста
  3. Как оставить в ячейке только цифры или только текст?
  4. Поиск по меткам

Как в Microsoft Excel извлечь число из ячейки с текстом самый простой и быстрый способ

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

Excel извлекаем число из текста

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

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

И нажимаем сочетание клавиш «Ctrl+E», буква «Е» английская, после этого автоматически из всех оставшихся ячеек будет извлечено только число.

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

Источник

Как оставить в ячейке только цифры или только текст?

Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?

  • Было доставлено кусков мыла 763шт.
  • Всего пришло 34
  • Тюбики — 54 доставлено
  • и т.д.

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

СПОСОБ 1: не используем макросы
можно применить формулу массива, вроде такой:
=ПСТР( A1 ;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))+1)
Три важных момента:

  1. Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
  2. в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
  3. формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.

Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.

  • в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
  • блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))
    вычисляет позицию первой цифры в ячейке — 29
  • блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))
    вычисляет позицию последней цифры в ячейке — 31
  • в результате получается: =ПСТР( A1 ;29;3129+1)
    функция ПСТР извлекает из текста, указанного первым аргументом( A1 ) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(3129+1)
  • И в итоге:
    =ПСТР( A1 ;29;3129+1)
    => =ПСТР( A1 ;29;2+1)
    => =ПСТР( A1 ;29;3)
    => 763

Может быть задача проще — необходимо извлечь односоставной текст, убрав цифры вначале и в конце строки, учитывая, что сам текст всегда следует после разделителя(например, тире):
12.08-АГСВ2
12.08-АГСВ1
01.03-ОВ2
12.03-КЖ6.1
Из этих данных надо получить только текст после тире(-) и отсечь цифры на конце:
АГСВ
АГСВ
ОВ
КЖ
Формула будет работать почти по тому же принципу, что и формула выше, но она проще:
=ПСТР( A1 ;ПОИСК(«-«; A1 )+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0)-1)
В данном случае мы при помощи ПОИСК(«-«; A1 ) ищем сначала позицию тире, далее при помощи ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР( A1 ;ПОИСК(«-«; A1 )+1;999);СТРОКА( $1:$99 );1));0) находим именно в отсеченном тексте позицию первой цифры. Передаем эти значения в ПСТР , которая отбирает из этого текста все от первого тире(+1) до первого числа, идущего после текста.

СПОСОБ 2: используем макросы
Самый главный недостаток метода при помощи формулы, приведенной выше — из текста » Было доставлено кусков мыла 763шт., а заказывали 780 » формула вернет не только числа, а и текст между первой и последней цифрой: 763шт., а заказывали 780 .
Решить же проблему извлечения цифр даже из такого текста при помощи VBA куда проще и гибче. Плюс можно не только цифры извлекать, но и наоборот — цифры удалить, а извлечь только текст. Ниже приведен код пользовательской функции, которая поможет извлечь из строки только числа либо только текст. Иными словами, результатом функции будет либо только текст, либо только числа.

Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer) ‘sWord = ссылка на ячейку или непосредственно текст ‘Metod = 0 – числа ‘Metod = 1 – текст Dim sSymbol As String, sInsertWord As String Dim i As Integer If sWord = «» Then Extract_Number_from_Text = «Нет данных!»: Exit Function sInsertWord = «» sSymbol = «» For i = 1 To Len(sWord) sSymbol = Mid(sWord, i, 1) If Metod = 1 Then If Not LCase(sSymbol) Like «*[0-9]*» Then If (sSymbol = «,» Or sSymbol = «.» Or sSymbol = » «) And i > 1 Then If Mid(sWord, i — 1, 1) Like «*[0-9]*» And Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If Else If LCase(sSymbol) Like «*[0-9.,;:-]*» Then If LCase(sSymbol) Like «*[.,]*» And i > 1 Then If Not Mid(sWord, i — 1, 1) Like «*[0-9]*» Or Not Mid(sWord, i + 1, 1) Like «*[0-9]*» Then sSymbol = «» End If End If sInsertWord = sInsertWord & sSymbol End If End If Next i Extract_Number_from_Text = sInsertWord End Function

Данный код необходимо поместить в стандартный модуль книги. После этого в мастере функций в категории Определенные пользователем (User Defined) будет доступна функция Extract_Number_from_Text , которую можно будет применять как обычную функцию на листе.
Для извлечения только чисел
=Extract_Number_from_Text( A1 ; 0)
или
=Extract_Number_from_Text( A1 )
Для извлечения только текста
=Extract_Number_from_Text( A1 ; 1)

Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?

Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:

Выбрать ячейку или диапазон с текстом(Лист1! $A$2:$A$10 ) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.

Выберите ячейку для вывода данных(Лист1! $A$2 ) — указывается одна ячейка, с которой начать вывод преобразованных значений. В качестве этой ячейки можно выбрать первую ячейку диапазона с текстом(исходного) если необходимо произвести изменения сразу в этих же ячейках(как на рисунке). Осторожнее с таким указанием, т.к. результат работы кода может быть не совсем таким, какой вы ожидали, а вернуть прежние данные уже не получится — если только не закрыть файл без сохранения изменений.

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

Небольшое дополнение к использованию кода
В коде есть строка:

If LCase(sSymbol) Like «*[0-9.,;:-]*» Then

Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):

If LCase(sSymbol) Like «*[0-9]*» Then

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

If LCase(sSymbol) Like «*[0-9.]*» Then

и т.д.
Скачать пример:

Число из текста и наоборот.xls (99,0 KiB, 17 601 скачиваний)

Статья помогла? Поделись ссылкой с друзьями!

Поиск по меткам

Здравствуйте скрипт при обработке ячейки:
Пр-ка ТНВД 5301 (пер.) 50-1006315-Б2 выдает: 530150-1006315-2
вопрос есть возможность что бы он брал только последних 15-20 сим.
с заглавными А-Я, или хотя бы цифирки.
Буду признателен за предложения.
Возможно есть проще варианты(12000 стр.записеи) обрезани до последних 10-20сим.

Александр, последние 15-20 символов можно взять при помощи функции ПРАВСИМВ(RIGHT). Так же можно совместить:
=Extract_Number_from_Text(ПРАВСИМВ(A1))
Более сложные вариации извлечения делаются под конкретные данные с учетом различных нюансов.

Добрый день!
Спасибо за замечательный код! Подскажите пожалуйста, как оставить среди неудаляемых символов пробел?
Например, в ячейке было «Т-образный поворот SPB-RF60 TE-200 SS316L».
Ваш код оставляет (после некоторой модификации) «60200316».
А хотелось бы «60 200 316».
Я не понимаю как вписать пробел в строку
Like «*[0-9.,;:-]*» Then

А всё разобрался, пробел нужно указывать в середине ряда, а не в конце.

Здравствуйте.
Использовал функцию, вызванную на VBA, все нормально, при вызове мастера функций он нормально отрабатывает
Но при выполнение в эксель, выскакивает сообщение, что здесь используется циклическая ссылка и потом появляется значение 0. В чем дело?

Добрый день!
А что надо добавить в код/формулу чтобы из строки
«ТП ВЕТЧИННАЯ ВАРЕНАЯ 400Г (162854) /Ш/»
— вытащить только цифры до буквы Г?
— или без содержимого скобок
Заранее большое спасибо!

Нашла пока только такой вариант решения:
=ЛЕВСИМВ(B5;ПОИСК(«г «;B5)-1)
Затем в другой колонке
=ЕСЛИОШИБКА(ПСТР(C5;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1);1000)
И в третьей колонке = из предыдущей и преобразовать в числовой формат макросом
Результат достигнут, но если расскажите как можно было сделать изящнее — обязательно запомню))

Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String On Error GoTo ErrHandl Set regex = CreateObject(«VBScript.RegExp») regex.Pattern = Pattern regex.Global = True If regex.Test(Text) Then Set matches = regex.Execute(Text) RegExpExtract = matches.Item(Item — 1) Exit Function End If ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function

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

Денис, спасибо. Но есть все равно пара замечаний, раз уж предлагаете воспользоваться функцией. Неплохо было бы добавить и пример применения. Иначе как тому, кто зайдет почитать использовать Ваше решение?
Я умею использовать регулярки и по коду вижу, что помимо текста надо указать не только шаблон, но еще и номер элемента, который получить. Что является немаловажным замечанием.
Для извлечения первого числа(без разделения групп разрядов) — =(RegExpExtract( A1 ;»d»;1)
Для извлечения первого текста(что не очень удобно, если чисел в тексте много) — =(RegExpExtract( A1 ;»D»;1)
Оба варианта слегка халтурны, но для понимания общего смысла использования подойдут.
В общем и целом я бы в функцию еще параметр IgnoreCase добавил(при извлечении текста по шаблону может потребоваться). Да и Multiline тоже иногда может играть роль(зависит от шаблона и текста), поэтому его тоже лучше ставить в True сразу в случае с такими функциями.

Источник

Skip to content

Как быстро извлечь число из текста в Excel

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

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

Вот что мы рассмотрим в этой статье:

  • Как извлечь число в конце текста
  • Получаем число из начала текста
  • Как извлечь все числа из текста
  • Извлекаем числа без формул при помощи Ultimate Suite

Когда дело доходит до извлечения части текстового значения заданной длины, Эксель предоставляет три текстовых функции (ЛЕВСИМВ, ПРАВСИМВ и ПСТР) для быстрого выполнения этой задачи. А вот когда дело доходит до извлечения числа из буквенно-цифровой строки, Microsoft Excel … не предоставляет ничего.

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

Или вы можете запустить инструмент «Извлечь (Extract)» из надстройки Ablebits Ultimate Suite и выполнить эту операцию одним щелчком мыши. Ниже вы найдете полную информацию обо всех этих методах.

Как извлечь число из конца текстовой строки.

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

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

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

=МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9}; ячейка &»0123456789″))

О логике вычислений мы поговорим чуть позже. На данный момент просто замените слово «ячейка» ссылкой на позицию, содержащую исходный текст (в нашем случае A2), и запишите получившееся выражение в любую пустую клетку той же строки, скажем, в B2:

=МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))

Хотя формула содержит константу массива, это обычное выражение, которое вводится обычным способом: нажатием клавиши Enter.

Как только позиция первой цифры определена, можно использовать функцию ПРАВСИМВ для извлечения числа. Чтобы узнать, сколько символов нужно извлечь, вы вычитаете позицию первой цифры из общей длины строки и добавляете единицу к результату, потому что первая цифра также должна быть включена:

=ПРАВСИМВ(A2;ДЛСТР(A2)-B2+1)

Где A2 — исходная ячейка, а B2 — позиция первой цифры.

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

Чтобы исключить вспомогательный столбец, содержащий позицию первой цифры, вы можете встроить формулу МИН непосредственно в функцию ПРАВСИМВ следующим образом:

=ПРАВСИМВ(A2;ДЛСТР(A2)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))+1)

Чтобы формула возвращала именно число, а не числовую строку, вложите ее в функцию ЗНАЧЕН:

=ЗНАЧЕН(ПРАВСИМВ(A2;ДЛСТР(A2)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))+1))

Или просто примените двойное отрицание, использовав два знака «минус»:

=—ПРАВСИМВ(A2;ДЛСТР(A2)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A2&»0123456789″))+1)

Другой способ извлечь число из конца строки — использовать вот такое выражение:

=ПРАВСИМВ( ячейка ;СУММ(ДЛСТР( ячейка ) — ДЛСТР(ПОДСТАВИТЬ( ячейка ; {«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

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

=ПРАВСИМВ(A2;СУММ(ДЛСТР(A2) — ДЛСТР(ПОДСТАВИТЬ(A2; {«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

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

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

=ПРАВСИМВ(A2; ДЛСТР(A2) — МАКС(ЕСЛИ(ЕЧИСЛО(ПСТР(A2; СТРОКА(ДВССЫЛ( «1:»&ДЛСТР(A2))); 1) *1)=ЛОЖЬ; СТРОКА(ДВССЫЛ( «1:»&ДЛСТР(A2))); 0)))

На скриншоте ниже вы видите результат ее работы.

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

Примечание. Если вы используете Excel 2019 или более ранние версии, нужно использовать формулу массива, нажав при вводе комбинацию Ctrl+Shift+Enter. Если у вас Office365, вводите как обычно, через Enter.

Как извлечь число из начала текстовой строки

Если вы работаете со строками, в которых текст находится после числа, решение для извлечения числа будет аналогично описанному выше. С той только разницей, что вы используете функцию ЛЕВСИМВ для извлечения из левой части текста:

=ЛЕВСИМВ( ячейка ;СУММ(ДЛСТР( ячейка )-ДЛСТР(ПОДСТАВИТЬ( ячейка ;{«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

Используя этот метод для A2, извлекаем число при помощи такого выражения:

=ЛЕВСИМВ(A2;СУММ(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;{«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»))))

Это решение работает для текстовых выражений, которые содержат числа только в начале. Если некоторые цифры также находятся в середине или в конце строки, формула не будет работать. 

Если вы хотите извлечь только числа слева и игнорировать остальные, воспользуйтесь другой формулой:

=ЛЕВСИМВ(A2;ПОИСКПОЗ(ЛОЖЬ;ЕЧИСЛО(—ПСТР(A2;СТРОКА($1:$94);1));0)-1)

Или чуть модифицируем, чтобы ускорить расчеты:

=ЛЕВСИМВ(A2; ПОИСКПОЗ(ЛОЖЬ; ЕЧИСЛО(ПСТР(A2; СТРОКА(ДВССЫЛ( «1:»&ДЛСТР(A2)+1)); 1) *1); 0) -1)

Если у вас Excel 2019 и ниже, вводите ее как формулу массива, используя Ctrl+Shift+Enter. В Office365 и выше можно вводить как обычно.

Примечание. Как и в случае с функцией ПРАВСИМВ, функция ЛЕВСИМВ также возвращает числовую подстроку, которая технически является текстом, а не числом.

Как получить число из любой позиции в тексте

Если ваша задача подразумевает извлечение числа из любого места строки, вы можете использовать следующую формулу:

=СУММПРОИЗВ(ПСТР(0&A2; НАИБОЛЬШИЙ(ИНДЕКС(ЕЧИСЛО(—ПСТР(A2; СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 1)) * СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 0); СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))))+1; 1) * 10^СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2)))/10)

Где A2 — исходная текстовая строка.

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

Обратите внимание, что в этом случае в тексте могут находиться несколько чисел. Все они будут извлечены и объединены в единое целое.

Однако, изучив результаты, вы можете заметить один незначительный недостаток: если исходный текст в ячейке не содержит числа, формула возвращает ноль, как в строке 7 на скриншоте выше. Чтобы исправить это, вы можете заключить формулу в оператор ЕСЛИ, который проверит, содержит ли исходный текст какое-либо число. Если это так, формула извлекает это число, в противном случае возвращает пустую строку:

=ЕСЛИ(СУММ(ДЛСТР(A2)-ДЛСТР(ПОДСТАВИТЬ(A2;{«0″;»1″;»2″;»3″;»4″;»5″;»6″;»7″;»8″;»9″};»»)))>0; СУММПРОИЗВ(ПСТР(0&A2; НАИБОЛЬШИЙ(ИНДЕКС(ЕЧИСЛО(—ПСТР(A2; СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 1)) * СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))); 0); СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2))))+1; 1) * 10^СТРОКА(ДВССЫЛ(«1:»&ДЛСТР(A2)))/10);»»)

В отличие от всех предыдущих примеров, результатом этих формул является число. Чтобы убедиться в этом, просто обратите внимание на выровненные по правому краю значения в столбце B и усеченные ведущие нули (например, 88 вместо 088).

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

Мы будем искать позицию знака «№» и позицию следующего за ним первого пробела. То, что находится между ними, как раз и будет номером счёта:

=ПСТР(ПОДСТАВИТЬ(A2;» «;»»);НАЙТИ(«№»;ПОДСТАВИТЬ(A2;» «;»»))+1;НАЙТИ(» «;A2;НАЙТИ(«№»;A2;1))-НАЙТИ(«№»;A2;1)-1)

На скриншоте ниже вы видите, как это работает.

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

Используем формулу

=ПРОСМОТР(2^64;—ЛЕВСИМВ(ПСТР(A1&»_0″;МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&»_0123456789″));15); {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}))

или заменяем список цифр функцией:

=ПРОСМОТР(2^64;—ЛЕВСИМВ(ПСТР(A1&»_0″;МИН(НАЙТИ({0;1;2;3;4;5;6;7;8;9};A1&»_0123456789″));15); СТРОКА($A$1:$IV$16)))

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

И еще один пример. Давайте попробуем достать все числа из текста, разграничив их каким-то разделителем. Например, дефисом “-“.

В этом случае придется использовать формулу массива:

{=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(СЦЕП(ЕСЛИ(ЕЧИСЛО(—ПСТР(A2;СТРОКА($1:$94);1));ПСТР(A2;СТРОКА($1:$94);1);» «)));» «;»-«)}

Мы нашли все числа в тексте, как вы видите на скриншоте ниже:

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

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

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

Как вы только что видели, не существует простой и понятной формулы Excel для извлечения чисел из текстовой строки. Если у вас есть трудности с пониманием формул или их настройкой для ваших наборов данных, вам может понравиться этот простой способ получить число из текста в Excel.

С надстройкой Ultimate Suite, добавленной на вашу ленту Excel, вы можете быстро получить число из любой буквенно-цифровой строки:

  1. Перейдите на вкладку Ablebits Data > Text и нажмите Извлечь (Extract) :

  1. Выделите все ячейки с данными, которые нужно обработать.
  2. На панели инструмента «Извлечь (Extract)» установите переключатель «Извлечь числа (Extract numbers)».
  3. В зависимости от того, хотите ли вы, чтобы результаты были формулами или значениями, выберите поле «Вставить как формулу (Insert as formula)» или оставьте его пустым (по умолчанию).

Я советую активировать это поле, если вы хотите, чтобы извлеченные числа обновлялись автоматически, как только в исходные значения вносятся какие-либо изменения. Если нужно, чтобы результаты не зависели от будущих изменений (например, если вы планируете удалить исходные данные позже), не используйте эту опцию.

  1. Нажмите кнопку «Вставить результаты (Insert Results)». Готово!

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

Если установлен флажок «Вставить как формулу», вы увидите выражение в строке формул. Любопытно узнать, какое именно? Просто скачайте пробную версию Ultimate Suite и убедитесь сами :)

Если вы хотите иметь это, а также еще более 60 полезных инструментов в Excel, воспользуйтесь этой надстройкой.

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

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

Понравилась статья? Поделить с друзьями:
  • Как вставить в ячейку excel сегодняшнюю дату
  • Как вставить в ячейку excel календарь на
  • Как вставить в ячейку excel значение других ячеек
  • Как вставить в ячейку excel еще одну ячейку
  • Как вставить в ячейку excel дробь