Как разбить число на цифры в excel
Порой при работе в Excel встречаются данные, в которых умышленно или неумышленно сцеплены текст и цифры. Например, определенное число из нескольких цифр, и текст перед ним. Стоит задача отделить это число от текста. Или это некий набор буквенно-числовых артикулов, в которых нужно отделить буквы от цифр.
При этом ни функций, ни процедур, которые выполняли бы задуманное, в Excel по умолчанию нет. Можно ли? Ответ — да, а далее — пошаговое руководство.
Прежде, чем приступать к непосредственному решению задачи, рекомендуется сначала найти числа в каждой ячейке и аналогично проверить, что эти же ячейки содержат буквы, обычно кириллицы или латиницы. Это позволит сократить требуемые вычислительные ресурсы, если строк в данных много.
В этой статье я рассматриваю существующие способы разделения текста и цифр, как с помощью стандартных функций Excel, так и с помощью сторонних решений, в числе которых моя надстройка для Excel.
Примечание: речь в ней о разделении текста и цифр внутри ячейки. Если вы хотите выделить цифры в отдельную ячейку — читайте эту статью: извлечь цифры из ячейки в Excel.
Отделить цифры от текста — формулы Excel
Начнем с штатных возможностей Excel. Наиболее несложно будет решить с их помощью задачи, когда количество текстовых и цифровых промежутков в строке определено и не меняется от строки к строке. Наиболее популярные варианты:
- буквы перед цифрами (x100, FX5200, MI6)
- цифра/цифры перед буквой/буквами (2021г, 3D, 4K, 4,2Ghz)
- число-текст-число (3к2, 22стр3, 1ЕКХ23)
Отделить число справа от текста
Если мы знаем, что ячейка начинается с букв, а заканчивается цифрами, нужно найти позицию первой цифры в ячейке. По ссылке читайте подробности, а вот сама формула:
Далее уже дело техники — получить фрагменты до этой позиции и начиная с нее, в этом помогут функции ЛЕВСИМВ и ПСТР. Допустим, если позиция будет вычислена в ячейке A2, а исходный текст в ячейке A1, то формулы для первой и второй части будут, соответственно:
Если хочется вывести весь результат через разделитель сразу в одну ячейку, нужно составить формулу из трех вышеуказанных:
Данная формула имеет разделителем пробел (в строке посередине), если хотите использовать другой разделитель, просто замените его на свой.
Отделить цифры, стоящие перед текстом
Если же заранее известно, что текст ячейки начинается с цифр и продолжается текстовыми символами, нужно получить позицию первого нечислового символа. Это можно сделать с помощью аналогичной формулы массива, единственная разница лишь в том, что функция ПОИСКПОЗ ищет ИСТИНА, а не ЛОЖЬ:
Далее порядок действий аналогичен первому примеру.
Регулярные выражения
Когда порядок расположения текста и цифр в ячейке и количество фрагментов заранее не известно, отличным подспорьем станут регулярные выражения.
К сожалению, на текущий момент они не поставляются в Excel из коробки, но доступны по умолчанию в гугл таблицах.
В Гугл таблицах
Формула Гугл таблиц, которая разделит текст и цифры, довольно незамысловата:
Подробнее о регулярных выражениях и том, как они работают, можно почитать в моей статье на этом сайте: Регулярные выражения в Excel (ссылка).
В Excel с надстройкой !SEMTools
Тем не менее, всем пользователям моей надстройки функции регулярных выражений доступны бесплатно безо всяких ограничений — нужно просто подключить надстройку к Excel. Важно понимать, что функции будут работать корректно только на компьютерах, где она установлена.
Разделить текст и числа через пробел с помощью регулярных выражений в Excel с !SEMTools
Разбить текст и цифры с !SEMTools в 2 клика
Для тех, кто ценит время, я разработал процедуру, которая разбивает текст и цифры прямо внутри ячейки, или выводит результат такой процедуры в соседний столбец — это зависит от глобальной настройки вывода результатов.
Все, что вам нужно сделать, это:
- просто выделить диапазон или ячейку,
- вызвать процедуру,
- указать разделитель
- и нажать ОК.
Хотите так же быстро выполнять данную процедуру? Попробуйте тестовую версию надстройки !SEMTools:
В этом руководстве объясняется, как использовать комбинацию функций MID и COLUMN для разделения определенного числа в ячейке на отдельные цифры в Excel.
Как разбить число на отдельные цифры в Excel?
Как показано на скриншоте ниже, вы хотите разделить число в каждой ячейке на отдельные цифры. Пожалуйста, сделайте следующее, чтобы это сделать.
Общая формула
аргументы
$ B3: Представляет ячейку, содержащую число, которое вы хотите разделить на отдельные цифры;
$ D3: Представляет ячейку для вывода первой цифры числа.
Как пользоваться этой формулой?
1. Выберите пустую ячейку для вывода первой цифры. В данном случае я выбираю D3.
2. Введите в нее приведенную ниже формулу и нажмите Enter ключ. Затем была извлечена первая цифра числа в ячейке B3.
=MID($B3,COLUMN()-(COLUMN($D3)- 1),1)
3. Выберите ячейку результата, а затем перетащите ее маркер заполнения вправо, чтобы применить формулу к правым ячейкам, пока не будут извлечены все цифры числа в B3.
4. Не снимая выделения с указанных выше ячеек, перетащите маркер заполнения вниз, чтобы получить все цифры других ячеек в столбце B. См. Снимок экрана.
Как работает эта формула?
=MID($B3,COLUMN()-(COLUMN($D3)- 1),1)
1. COLUMN() : В этом случае я выбираю ячейку D3 для ввода формулы, поэтому функция COLUMN возвращает 4, поскольку столбец D является четвертым столбцом на листе;
2. COLUMN($D3) : Здесь функция COLUMN возвращает номер столбца ссылки $ D3. Здесь результат 4;
3. MID(12345,4-(4- 1),1) : Функция MID извлекает одну цифру из числа «12345», начиная с первой цифры.
Связанные функции
Функция Excel MID
Функция Excel MID возвращает определенное количество символов из текстовой строки, начиная с указанной вами позиции, в зависимости от количества указанных вами символов.
СТОЛБЕЦ в Excel
Функция СТОЛБЕЦ Excel возвращает номер столбца, в котором отображается формула, или номер столбца для данной ссылки.
Родственные формулы
Разделение размеров на две части в Excel
В этой статье объясняется, как использовать формулу для разделения размеров в ячейке на две части без единиц измерения (индивидуальная длина и ширина).
Отделяйте числа от единиц измерения
В этой статье объясняется, как использовать формулу для отделения чисел от единиц измерения.
Разделить текст и числа в ячейке в Excel
Если вы хотите разделить текст и числа в ячейке на разные ячейки столбца с формулами, это руководство окажет вам услугу.
Разделить текст с разделителем в ячейке в Excel
В этой статье мы предлагаем пошаговое руководство, которое поможет вам разделить текст в ячейке с помощью определенного разделителя в Excel.
Разделить текст и числа в ячейке в Excel
Предположим, что данные ячейки смешаны с текстом и числами, как вы можете разделить их на отдельные ячейки столбца? Этот туториал покажет вам подробные шаги, чтобы разобраться с формулами.
Лучшие инструменты для работы в офисе
Kutools for Excel - поможет вам выделиться из толпы
Хотите быстро и безупречно выполнять свою повседневную работу? Kutools for Excel предлагает мощные расширенные функции 300 (объединение книг, сумма по цвету, разделение содержимого ячеек, дата преобразования и так далее . ) и экономия 80% времени для вас.
Предположим, что данные ячейки смешаны с текстом и числами, как вы можете разделить их на отдельные ячейки столбца? Этот туториал покажет вам подробные шаги, чтобы разобраться с формулами.
Как разделить текст и числа в ячейке в Excel?
В этом случае вам необходимо применить три формулы для разделения текста и чисел в ячейке на отдельные ячейки столбца.
Во-первых, вам нужно определить позицию первого числа;
Во-вторых, извлечь текст из ячейки;
Наконец, получите числа.
Общие формулы
Общая формула для определения позиции первого числа
Общая формула для получения текста
Общая формула для получения чисел
Аргументы приведенных выше формул
A1: Представляет ячейку, содержащую текст и числа, которые вы хотите разделить;
Позиция: Позиция первого числа в A1.
Как пользоваться этими формулами?
Предположим, у вас есть список текстовых строк, как показано на скриншоте ниже, вы можете сделать следующее, чтобы разделить текст и числа на отдельные ячейки.
Во-первых, верните начальную позицию чисел в текстовой строке
1. Выберите пустую ячейку для вывода позиции. В данном случае я выбираю C3.
2. Введите в нее приведенную ниже формулу и нажмите Enter ключ. Выберите ячейку результата, перетащите маркер заполнения вниз, чтобы применить формулу к другой ячейке, пока не отобразятся все нужные позиции.
Во-вторых, получить текст
1. Выберите пустую ячейку, чтобы найти текст. Здесь я выбираю D3.
2. Введите в нее приведенную ниже формулу и нажмите Enter ключ. Выберите эту ячейку результата, перетащите маркер заполнения вниз, чтобы получить все тексты ячеек ниже.
=LEFT(B3,C3-1)
Наконец, получите числа
1. Выберите пустую ячейку, например E3, чтобы найти числа.
2. Введите в нее приведенную ниже формулу и нажмите Enter ключ. Выберите эту ячейку результата, перетащите маркер заполнения вниз, чтобы получить все номера ячеек ниже.
=RIGHT(B3,LEN(B3)-C3+1)
Как работают эти формулы?
- B3&"0123456789" возвращает результат как: ana varela 240.150123456789.
- FIND(, "ana varela 240.150123456789") : Функция Find находит позицию цифр «0–9» в ana varela 240.150123456789 и возвращает результат как .
Результат означает, что число 0 находится на 14-й позиции в ана варела 240.150123456789, число 1 находится на 16 позиции в ана варела 240.150123456789…
2. =MIN() : Функция MIN получает минимальное значение массива. Здесь результат 12.
=LEFT(B3,C3-1)
LEFT(ana varela 240.15,12-1) это означает, что функция LEFT извлекает первые 11 символов из левой части текстовой строки «ana varela 240.15». Конечный результат - ана варела.
=RIGHT(B3,LEN(B3)-C3+1)
1. LEN(B3)-C3+1 :
- Функция LEN вычисляет общую длину текстовой строки (ana varela 240.150123456789) в B3 и возвращает результат как 17.
- 17-12 + 1: Общая длина чисел в ана варела 240.15. Результат - 6.
2. =RIGHT(B3,6) : Функция ВПРАВО извлекает 6 символов из правой части ana varela 240.15. И окончательный результат - 240.15.
Связанные функции
Функция Excel MID
Функция Excel MID используется для поиска и возврата определенного количества символов из середины данной текстовой строки.
Функция поиска в Excel
Функция Excel FIND используется для поиска строки внутри другой строки и возвращает начальную позицию строки внутри другой строки.
Функция ВЛЕВО в Excel
Функция Excel LEFT извлекает заданное количество символов из левой части предоставленной строки.
Функция Excel ВПРАВО
Функция Excel RIGHT извлекает определенное количество символов из правой части текстовой строки.
Функция ДЛСТР в Excel
Функция Excel LEN возвращает количество символов в текстовой строке.
Родственные формулы
Разделение размеров на две части в Excel
В этой статье объясняется, как использовать формулу для разделения размеров в ячейке на две части без единиц измерения (индивидуальная длина и ширина).
Отделяйте числа от единиц измерения
В этой статье объясняется, как использовать формулу для отделения чисел от единиц измерения.
Разделить текстовую строку на определенный символ в ячейке в Excel
В этом руководстве подробно объясняется, как разбить текстовую строку по определенному символу в ячейке с формулами.
Лучшие инструменты для работы в офисе
Kutools for Excel - поможет вам выделиться из толпы
Хотите быстро и безупречно выполнять свою повседневную работу? Kutools for Excel предлагает мощные расширенные функции 300 (объединение книг, сумма по цвету, разделение содержимого ячеек, дата преобразования и так далее . ) и экономия 80% времени для вас.
Не очень частый, но и не экзотический случай. На моих тренингах такой вопрос задавали не один и не два раза :) Суть в том, что мы имеем конечный набор каких-то чисел, из которых надо выбрать те, что дадут в сумме заданное значение.
В реальной жизни эта задача может выглядеть по-разному.
- Например, мы выгрузили из интернет-банка все платежи, которые поступили на наш счет за последний месяц. Один из клиентов разбивает сумму своего платежа на несколько отдельных счетов и платит частями. Мы знаем общую сумму оплаты и количество счетов, но не знаем их сумм. Надо подобрать те суммы в истории платежей, которые дадут в общем заданное значение.
- У нас есть несколько рулонов стали (линолеума, бумаги. ), из которых надо подобрать под заказ те, что дадут заданную длину.
- Блэкджек или в народе "очко". Надо набрать карты суммарной стоимостью максимально близкой к 21 баллу, но не превысить этот порог.
В некоторых случаях может быть известна разрешенная погрешность допуска. Она может быть как нулевой (в случае подбора счетов), так и ненулевой (в случае подбора рулонов), или ограниченной снизу или сверху (в случае блэкджека).
Давайте рассмотрим несколько способов решения такой задачи в Excel.
Способ 1. Надстройка Поиск решения (Solver)
Эта надстройка входит в стандартный набор пакета Microsoft Office вместе с Excel и предназначена, в общем случае, для решения линейных и нелинейных задач оптимизации при наличии списка ограничений. Чтобы ее подключить, необходимо:
- в Excel 2007 и новее зайти Файл - Параметры Excel - Надстройки - Перейти (File - Excel Options - Add-ins - Go)
- в Excel 2003 и старше - открыть меню Сервис - Надстройки (Tools - Add-ins)
и установить соответствующий флажок. Тогда на вкладке или в меню Данные (Data) появится нужная нам команда.
Чтобы использовать надстройку Поиск решения для нашей задачи необходимо будет слегка модернизировать наш пример, добавив к списку подбираемых сумм несколько вспомогательных ячеек и формул:
- Диапазон A1:A20 содержит наши числа, из которых мы будем выбирать нужные, чтобы "вписаться" в заданную сумму.
- Диапазон В1:B20 будет своего рода набором переключателей, т.е. будет содержать нули или единички, показывая, отбираем мы данное число в выборку или нет.
- В ячейке E2 стоит обычная автосумма всех единичек по столбцу B, подсчитывающая кол-во выбранных чисел.
- В ячейке E3 с помощью функции СУММПРОИЗВ (SUMPRODUCT) считается сумма попарных произведений ячеек из столбцов А и B (то есть A1*B1+A2*B2+A3*B3+. ). Фактически, здесь подсчитывается сумма чисел из столбца А, отобранных единичками из столбца В.
- В розовую ячейку E4 пользователь вводит желаемую сумму для подбора.
- В ячейке E5 вычисляется абсолютное по модулю значение погрешности подбора с целью ее будущей минимизации.
- Все желтых ячейках Е8:E17 хотелось бы получить список отобранных чисел, т.е. тех чисел из столбца А, напротив которых в столбце В есть единички. Для этого необходимо выделить сразу все (!) желтые ячейки и в них ввести вот такую формулу массива:
=ЕСЛИОШИБКА(ИНДЕКС($A$1:$A$20;НАИМЕНЬШИЙ(ЕСЛИ(B1:B20=1;СТРОКА(B1:B20);"");СТРОКА()-СТРОКА($E$8)+1));"")
=IFERROR(INDEX($A$1:$A$20;SMALL(IF(B1:B20=1;ROW(B1:B20);"");ROW()-ROW($E$8)+1));"")
После ввода формулы ее необходимо ввести не как обычную формулу, а как формулу массива, т.е. нажать не Enter, а Ctrl+Shift+Enter. Похожая формула используется в примере о ВПР, выдающей сразу все найденные значения (а не только первое).
Теперь перейдем на вкладку (или в меню) Данные и запустим инструмент Поиск решения (Data - Solver):
В открывшемся окне необходимо:
- Задать как целевую функцию (Target Cell) - ячейку вычисления погрешности подбора E5. Чуть ниже выбрать опцию - Минимум, т.к. мы хотим подобрать числа под заданную сумму с минимальной (а лучше даже нулевой) погрешностью.
- В качестве изменяемых ячеек переменных (Changing cells) задать диапазон столбца переключателей B1:B20.
- С помощью кнопки Добавить (Add) создать дополнительное условие на то, что ячейки диапазона B1:B20 должны быть бинарными (т.е. содержать только 0 или 1):
После ввода всех параметров и ограничений запускаем процесс подбора кнопкой Найти решение (Solve). Процесс подбора занимает от нескольких секунд до нескольких минут (в тяжелых случаях) и заканчивается появлением следующего окна:
Теперь можно либо оставить найденное решение подбора (Сохранить найденное решение), либо откатиться к прежним значениям (Восстановить исходные значения).
Необходимо отметить, что для такого класса задач существует не одно, а целое множество решений, особенно, если не приравнивать жестко погрешность к нулю. Поэтому запуск Поиска решения с разными начальными данными (т.е. разными комбинациями 0 и 1 в столбце В) может приводить к разным наборам чисел в выборках в пределах заданных ограничений. Так что имеет смысл прогнать эту процедуру несколько раз, произвольно изменяя переключатели в столбце В.
Найденные комбинации можно сохранять виде сценариев (кнопка Сохранить сценарий), чтобы вернуться к нем позднее с помощью команды Данные - Анализ "что-если" - Диспетчер сценариев (Data - What-If Analysis - Scenario Manager):
И весьма удобно будет вывести все найденные решения, сохраненные в виде сценариев, в одной сравнительной таблице с помощью кнопки Отчет (Summary):
Способ 2. Макрос подбора
В этом способе всю работу делает макрос, который тупо перебирает случайные комбинации чисел, пока не наткнется на нужную сумму в пределах разрешенной погрешности. Добавлять столбец с нулями и единичками и формулы в этом случае не нужно.
Для использования макроса нажмите сочетание Alt+F11, в открывшемся окне редактора Visual Basic вставьте новый модуль через меню Insert - Module и скопируйте туда этот код:
Аналогично первому способу, запуская макрос несколько раз, можно получать разные наборы подходящих чисел.
Читайте также: