Ребята, всем привет! 👋
Продолжаем изучать Excel. В этом уроке я покажу, как извлечь число из строки в Excel.
✍️ Если вы только начинаете осваивать Excel и VBA мы уверены, каждый может найти для себя что-то новое!
✨ А прежде, чем мы начнем 📣 напомню, теперь у нас на канале есть удобный рубрикатор 👉 Быстрый поиск решения. Путеводитель по Excel, а все видео 📽 предыдущих уроков доступны и на YouTube.
📢 Скачать исходник с примерами кода вы можете в конце статьи 🔽
Принимая во внимание что нужное нам число может находиться в любом месте текста — в начале, в середине или в конце я предлагаю рассмотреть несколько способов решения данной задачи.
⏩ СПОСОБ 1. Как извлечь число из конца текстовой строки
Чтобы извлечь число из строки «текстовое число», первое, что вам нужно знать, — это с какой позиции начать операцию, а затем, как только позиция первой цифры определена, можно использовать функцию ПРАВСИМВ для извлечения числа. Чтобы узнать, сколько символов нужно извлечь, вы вычитаете позицию первой цифры из общей длины строки и добавляете единицу к результату, потому что первая цифра также должна быть включена
Решение будет выглядеть следующим образом:
=--ПРАВСИМВ(A1;ДЛСТР(A1)-МИН(ПОИСК({0;1;2;3;4;5;6;7;8;9};A1&"0123456789"))+1),
где A1 - исходная текстовая строка.
🔔 Другой способ извлечь число из конца строки — использовать такое выражение:
=ПРАВСИМВ(A2;СУММ(ДЛСТР(A2) - ДЛСТР(ПОДСТАВИТЬ(A2; {"0";"1";"2";"3";"4";"5";"6";"7";"8";"9"};""))))
где A2 - исходная текстовая строка.
⚠️ ВАЖНО! Эти формулы предназначены для случая, когда числа находятся только в конце текстовой строки. Если некоторые цифры также находятся в середине или в начале, то ничего не будет работать.
⏩ СПОСОБ 2. Как извлечь число из начала текстовой строки
Решение для извлечения числа будет аналогично описанному выше. С той только разницей, что вы используете функцию ЛЕВСИМВ для извлечения из левой части текста.
Например,
=ЛЕВСИМВ(A3;СУММ(ДЛСТР(A3)-ДЛСТР(ПОДСТАВИТЬ(A3;{"0";"1";"2";"3";"4";"5";"6";"7";"8";"9"};""))))
где A3 - исходная текстовая строка.
⚠️ ВАЖНО! Это решение работает для текстовых выражений, которые содержат числа только в начале. Если некоторые цифры также находятся в середине или в конце строки, формула не будет работать.
🔔 Альтернативным решением в данном случае является применение формулы:
=ЛЕВСИМВ(A4; ПОИСКПОЗ(ЛОЖЬ; ЕЧИСЛО(ПСТР(A4; СТРОКА(ДВССЫЛ( "1:"&ДЛСТР(A4)+1)); 1) *1); 0) -1)
где A4 - исходная текстовая строка.
⚠️ ЧТО ВАЖНО! Т.к. приведенная выше формула является формулой массива вводить ее нужно используя Ctrl+Shift+Enter
⏩ СПОСОБ 3. Как извлечь число из любой позиции в тексте
Если ваша задача подразумевает извлечение числа из любого места строки, вы можете использовать следующую формулу:
=СУММПРОИЗВ(ПСТР(0&A5; НАИБОЛЬШИЙ(ИНДЕКС(ЕЧИСЛО(--ПСТР(A5; СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A5))); 1)) * СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A5))); 0); СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A5))))+1; 1) * 10^СТРОКА(ДВССЫЛ("1:"&ДЛСТР(A5)))/10)
где A5 - исходная текстовая строка.
🔔 Альтернативным решением, (и на мой взгляд самым привлекательным из рассмотренных) является использование пользовательской функции.
Для ее написания переходим в редактор BVA, где прописываем следующий код:
Далее, используем нашу функцию для того чтобы получить число из любой позиции в тексте:
А на этом сегодня все. 👏 Теперь вы знаете как извлечь число из строки в Excel.. Я надеюсь, что вы нашли этот урок полезным.
Продолжение следует...
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel. Следите за нашими новостями и вы узнаете больше о VBA и Excel в частности.
📝 Нам очень важна Ваша обратная связь. Отзыв по уроку и любые вопросы пишите в комментариях.
💝 А если у Вас пока нет вопросов, но вы дочитали данную статью до конца оставьте в комментариях просто смайлик 😉 (автору будет приятно)
И конечно же, за лайк 👍 и репост 🔁 данного поста благодарочка 💖 и респект 🤝 каждому!