Як витягти лише числа з комірки Excel (7 простих способів)

  • Поділитися Цим
Hugh West

Хоча Microsoft не надала прямої формули або синтаксису для витягти тільки цифри з комірки Excel ми можемо включити широкий спектр Формули Excel зробити єдину функцію, яку можна використовувати для вилучення з комірок Excel тільки чисел або цифр. У цій статті ми постараємося детально показати і пояснити, як за допомогою відповідних формул можна виводити з комірок тільки числа за кількома критеріями.

Завантажити Практичний посібник

Завантажте безкоштовно практичний посібник, який ми використовували для підготовки цієї статті. Ви можете вводити текстові значення з цифрами у виділені комірки та одразу знаходити результати за допомогою вбудованих формул.

Витяг чисел з файлу Cell.xlsm

7 ефективних способів вилучення лише чисел з комірки Excel

Буде один код VBA, одна функція Excel і п'ять практичних формул, які допоможуть вам витягти числа з комірки. Як на малюнку нижче, у нас є деякі коди, що включають цифри і букви, де цифри присутні на початку. Нам потрібно витягти тільки ці цифри або числа.

1. вилучення чисел з початку тексту

У цьому першому методі ми об'єднаємо ЛІВОРУЧ , СУМА , LEN і ЗАМІНИТИ для вилучення чисел з початку текстового рядка. Спочатку введемо цю формулу в комірку, а потім, використовуючи функції Ручка заповнення скопіюємо цю формулу в інші клітинки.

Сходинки:

  • Спочатку введіть формулу в комірку C5 .

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0","1","2","3","4","5","6","7","8","9"},""))))

  • По-друге, натисніть Увійдіть і ви отримаєте цифру 34 для першого коду.

  • По-третє, скористайтеся Ручка наповнення потім для автозаповнення всіх інших комірок стовпця C .

🔎 Розбивка по формулам

REPLACE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")

  • Тут, в рамках програми "Відкритий світ", відбулася презентація ЗАМІНИТИ послідовно перебирає цифри (0-9) і, якщо вони знайдені, замінює цю цифру в комірці B5 Таким чином, функція повернеться як- {"34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "4DTXRF", "3DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "34DTXRF", "3DTXRF", "34DTXRF", "34DTXRF"}.

LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))

  • На сьогоднішній день, на жаль, це не так. LEN визначає кількість символів у рядку. Отже, тут функція LEN порахує всі символи, які окремо зустрічаються в текстах через функцію ЗАМІНИТИ Результуючі значення в нашому випадку будуть такими - {7,7,7,7,6,6,7,7,7,7,7,7,7}.

LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")))

  • Тепер ця частина - віднімання від кількості символів у комірці B5 до всіх інших номерів символів, знайдених окремо в попередній частині формули. Отже, тут отримані значення будуть - {0,0,0,0,1,1,0,0,0,0,0,0,0,0}.

SUM(LEN(B5)-LEN(ПІДСТАНОВКА(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},"")))

  • На сьогоднішній день, на жаль, це не так. СУМА функція просто підсумує всі знайдені відняті значення, тому результат буде тут, 2 (0+0+0+1+1+0+0+0+0+0).

=LEFT(B5,SUM(LEN(B5)-LEN(SUBSTITUTE(B5,{"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9″},""))))

  • А тепер - фінальна частина, в якій ЛІВОРУЧ поверне значення з точною кількістю символів зліва, знайдених у попередньому розділі формули. Оскільки ми отримали значення суми, рівне 2, то функція ЛІВОРУЧ функція тут поверне тільки 34 з тексту 34DTXRF .

Пов'язано: Як розділити числа в Excel за допомогою формули (5 способів)

2. вилучення чисел з правого боку тексту

У цьому розділі ми будемо витягувати числа або цифри з правої частини текстового рядка. Ми будемо використовувати команду ПРАВО , MIN і ПОШУК функціонує тут.

Сходинки:

  • Почнемо з того, що в нашому наборі даних ми повинні ввести в комірку C5 це...

=RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789")) +1)

  • Після цього натисніть Увійдіть а потім скористайтеся кнопкою Ручка наповнення для автоматичного заповнення решти комірок.

🔎 Розбивка по формулам

B5& "0123456789″

  • Тут ми об'єднуємо значення в B5 клітина з 0123456789 за допомогою амперсанд (&) між ними і отримаємо результуюче значення - DTXRF340123456789.

SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″)

  • Наразі, на сьогоднішній день ПОШУК перебере по черзі всі цифри (0-9) в результуючому значенні, отриманому з попереднього розділу, і поверне позиції цих 10 цифр в символах DTXRF340123456789 Отже, тут наші результуючі значення будуть - {8,9,10,6,7,13,14,15,16,17}.

MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5&”0123456789″))

  • На сьогоднішній день, на жаль, це не так. MIN використовується для знаходження найменшої цифри або числа в масиві. Отже, тут мінімальним або найменшим значенням буде 6 з масиву {8,9,10,6,7,13,14,15,16,17}, знайденого в попередньому розділі формули.

LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)

  • Тепер кількість символів у B5 буде знайдено за допомогою LEN Потім вона відніме значення 6 (знайдене в попередньому розділі), а потім поверне результат, додавши 1. У нашому випадку, отримане значення буде 2 (7-6+1) .

RIGHT(B5,LEN(B5) - MIN(SEARCH({0,1,2,3,4,5,6,7,8,9}, B5& "0123456789″)) +1)

  • На сьогоднішній день, на жаль, це не так. ПРАВО поверне задану кількість символів з останньої або правої частини рядка. За результатом, отриманим в процесі віднімання в попередньому розділі, тут функція ПРАВО функція покаже останні 2 символи з комірки B5 і це буде 34 .

Читати далі: Як розділити числа в одній комірці в Excel (5 способів)

3. вилучення чисел з будь-якої частини текстового рядка

Тепер, ось широке рішення на всі випадки життя. Цей метод буде витягувати числа або цифри з будь-якої позиції в текстовому рядку. Причому, ми будемо використовувати ПРИЄДНУЙТЕСЬ , ПОМИЛКА , НЕПРЯМИЙ , MID і ROW функціонує в цьому методі.

Сходинки:

  • По-перше, введіть формулу в комірку призначення наступним чином

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))

  • Тоді, якщо ви використовуєте Excel 2016 або вищу версію, а потім натисніть Увійдіть в іншому випадку натисніть Ctrl+Shift+Enter щоб отримати результат для цієї формули масиву.
  • Після цього кроку автозаповніть інші комірки за допомогою кнопки Ручка наповнення і тобі кінець.

🔎 Розбивка по формулам

INDIRECT("1:"&LEN(B5))

  • На сьогоднішній день, на жаль, це не так. НЕПРЯМИЙ використовується для зберігання масиву значень комірок у вигляді довідкового тексту. Тут амперсанд (&) команда конкатенації довжини символів комірки B5 з синтаксисом неповного діапазону (1:) .
  • Отже, тут НЕПРЯМИЙ функція запам'ятає всі числа від 1 до довжини символів у комірці B5 в якості довідкового тексту.

ROW(INDIRECT("1:"&LEN(B5)))

  • На сьогоднішній день, на жаль, це не так. ROW зазвичай повертає номер рядка комірки. Але тут, у функції НЕПРЯМИЙ оскільки не було згадано жодної опорної комірки, то в цьому випадку ROW витягне всі значення або числа з довідкових текстів, що зберігаються в НЕПРЯМИЙ функцію.
  • Тепер по 1-му осередку B5 , результуючі значення через ці ROW і НЕПРЯМИЙ функції будуть мати вигляд {1;2;3;4;5;6;7;8;9}.

(MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1))

  • На сьогоднішній день, на жаль, це не так. MID дозволить визначити символи з середини текстового рядка, задані початковою позицією і довжиною.
  • Так, тут за всіма 9 позиціями, знайденими в попередньому розділі, нараховується MID тепер покаже всі символи по черзі для кожної позиції і поверне значення у вигляді {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.

IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),"")

  • Наразі, на сьогоднішній день ПОМИЛКА логічна функція, яка визначить, чи є рядок числом або чимось іншим. Якщо вона не ідентифікує рядок з числами або цифрами, то поверне значення з визначеною текстовою командою.
  • У нашому випадку всі значення, знайдені в останньому розділі, будуть помножені на 1, а при поверненні результатів у вигляді помилок значень для букв або текстових значень, які не можна помножити, їх ПОМИЛКА перетворить помилки в порожні рядки, тобто наші результуючі значення будуть тоді - {1;9;"";"";"";"";"";2;"";""}.

=TEXTJOIN("",TRUE,IFERROR((MID(B5,ROW(INDIRECT("1:"&LEN(B5))),1)*1),""))

  • І тепер фінальна частина буде виконана через ПРИЄДНУЙТЕСЬ Ця функція використовується для конкатенації або з'єднання двох рядків із заданим розділювачем.
  • Отже, отримані значення, які ми знайшли в попередньому розділі, тепер будуть об'єднані разом з цим ПРИЄДНУЙТЕСЬ Таким чином, отримаємо число 192.

Читати далі: Як витягти кілька чисел з рядка в Excel (6 способів)

4. вкладеність декількох функцій для виведення тільки чисел

Зараз ми покажемо вам ще одну формулу для вилучення лише чисел з будь-якої позиції з комірки Excel. Хоча це може здатися досить складним, ми розберемо всю формулу і спробуємо легко пояснити всі компактні функції. Крім того, ми будемо використовувати ЯКЩО , ВЕЛИКИЙ , ІНДЕКС , РЕЗУЛЬТАТ і НОМЕР в цій формулі.

  • Для початку введіть в комірку таку формулу C5 Достатньо замінити посилання на комірку лише на власну комірку в таблиці і, вставивши цю формулу, ви одразу ж отримаєте очікуваний результат. Причому ця формула чудово працює в будь-якій версії Excel.

=IF(SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&B5, LARGE(INDEX(ISNUMBER(--MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Після цього необхідно натиснути Увійдіть тільки після введення всієї формули і все готово.

🔎 Розбивка по формулам

Перш ніж приступити до розбору цієї масивної і компактної формули, ми можемо розділити її на кілька частин, як-от

=IF(A>0, SUMPROДУКТ(B 1 *C 1 , B 2 *C 2 , ..........B n C n ),"")

Цей синтаксис означає, що якщо A більше 0, то всі добутки B n і C n будуть підсумовуватися до кінцевого результату. І якщо A не більше 0, то результат повернеться у вигляді порожньої або незаповненої комірки.

  • A = SUM(LEN(B5)-LEN(ПІДСТАНОВКА(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""
  • B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)
  • C = 10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),""

Розбивка частини А = SUM(LEN(B5)-LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""

REPLACE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")

  • На сьогоднішній день, на жаль, це не так. ЗАМІНИТИ знайде в тексті по черзі всі цифри (0-9) 19 DDX2MN кожного разу і замінить ці цифри порожнім рядком на місці цифр.
  • Таким чином, результуючі значення в масиві будуть мати вигляд - {"19 DDX2MN", "9 DDX2MN", "19 DDXMN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "19 DDX2MN", "1 DDX2MN"}.

LEN(SUBSTITUTE(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • На сьогоднішній день, на жаль, це не так. LEN тепер буде підраховувати кількість символів у всіх рядкових значеннях, отриманих з попереднього розділу. Так, ця функція буде повертати {9,8,8,9,9,9,9,9,9,9,9,8}.

LEN(B5)-LEN(ПІДСТАНОВКА(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, ""))

  • Тепер в цій частині формули кількість символів в комірці B5 відніме всі числа, знайдені в попередньому розділі, і отримані значення будуть {0,1,1,0,0,0,0,0,0,0,0,0,1}.

SUM(LEN(B5)-LEN(ПІДСТАНОВКА(B5, {"0″, "1″, "2″, "3″, "4″, "5″, "6″, "7″, "8″, "9"}, "")))

  • За допомогою СУМА значення всередині масиву, знайдені в останній секції, складуть 3 (0+1+1+0+0+0+0+0+0+0+0+1).
  • Отже, згідно з першою частиною нашої формули, A>0 (3>0) Тепер перейдемо до наступної частини розбивки.

Розбивка частини B = MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))* ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

INDIRECT("$1:$"&LEN(B5))

  • На сьогоднішній день, на жаль, це не так. НЕПРЯМИЙ тут буде зберігати значення рядка у вигляді посилання на масив. Всередині дужки ставиться амперсанд (&) команда додасть кількість символів, знайдених в комірці B5 Це означає, що від 1 до визначеної кількості символів, кожен з яких буде зберігатися як посилання на масив.

ROW(INDIRECT("$1:$"&LEN(B5)))

  • Тепер, це ROW функція витягне всі числа з масиву і отримані значення для комірки B5 буде - {1;2;3;4;5;6;7;8;9}.

MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1)

  • У цій частині формули використовується коефіцієнт MID функція виразить усі символи з комірки B5 на основі всіх позицій, знайдених у вигляді чисел у попередньому розділі. Отже, витягнуті значення будуть знайдені після цієї частини - {"1″; "9″;" "; "D"; "D"; "X"; "2″; "M"; "N"}.

ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))

  • Як НОМЕР є логічною функцією, вона окремо визначає, чи є значення, знайдені в попередній секції, числовими рядками, чи ні. Якщо так, то вона повертає як ПРАВДА в іншому випадку, він буде відображатися як НЕПРАВДА .
  • Отже, в нашому випадку результат буде - {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}.

INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0)

  • Якщо ви помітили всередині наведеної вище функції подвійний дефіс, відомий як Подвійний унарний використовується для перетворення всіх логічних значень у числові рядки 1(ПРАВДА) або 0(БРЕХНЯ) А тепер, нарешті. ІНДЕКС функція поверне цей результат у вигляді {1;1;0;0;0;0;0;1;0;0}.
  • Після цього отримані значення будуть помножені на значення, отримані від ROW функцію всередині масиву і результат буде - {1;2;0;0;0;0;0;7;0;0}.

LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))

  • На сьогоднішній день, на жаль, це не так. ВЕЛИКИЙ тепер буде переставляти найбільші значення з масиву відповідно до позицій на основі чисел, знайдених в ROW Отже, наші результуючі значення для цієї частини формули будуть - {7;2;1;0;0;0;0;0;0;0;0;0}.

MID(0&B5, LARGE(INDEX(ISNUMBER(-MID(B5,ROW(INDIRECT("$1:$"&LEN(B5))),1))*ROW(INDIRECT("$1:$"&LEN(B5))),0), ROW(INDIRECT("$1:$"&LEN(B5))))+1,1)

  • Тепер ця частина функції буде об'єднувати 0 з текстами в комірці B5 Потім він додасть 1 окремо з усіма числами, знайденими в останньому розділі, і показати символи з B5 комірку на основі визначених числових позицій.
  • Отже, наш результат з цього розділу буде - {"2"; "9"; "1"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"; "0"}.

Розбивка частини С = (10^ROW(INDIRECT("$1:$"&LEN(B5)))/10),"")

  • Ця частина визначає степені числа 10 та зберігає їх у масиві. Цифри степенів - це числа, знайдені з масиву ROW функціонувати раніше.
  • Ця частина формули повертатиме значення як- {1;10;100;1000;10000;100000;1000000;10000000;100000000}.

Множення B n і C n

  • Тепер отримані значення з двох останніх великих розбивок B і C будуть перемножуватися всередині масиву. Тоді добутки, знайдені в результаті множень, будуть мати вигляд - {2;90;100;0;0;0;0;0;0;0;0}.
  • І наостанок, нарешті, про РЕЗУЛЬТАТ буде підсумовувати ці значення, знайдені в масиві. Таким чином, кінцевий результат буде наступним 192 (2+90+100+0+0+0+0+0+0) які є витягнутими числами з комірки B5 .

Читати далі: Як розділити текст і цифри в Excel (4 простих способи)

5 Видобування п'ятицифрових чисел з рядка

Для вилучення п'ятизначних чисел з будь-якої частини рядка в Excel ми скористаємося іншою формулою КОНКУРС і ПОСЛІДОВНІСТЬ Крім того, ми дещо змінили наш набір даних для цього методу.

Сходинки:

  • Спочатку виділяємо діапазон комірок C5:C12 .
  • По-друге, введіть наступну формулу.

=CONCAT(IFERROR(0+MID(B5,SEQUENCE(LEN(B5)),1),""))

  • Наостанок, натисніть Ctrl+Enter .

🔎 Розбивка по формулам

  • LEN(B5)
    • Вихід: 11 .
    • Ця функція повертає довжину рядка.
  • ПОСЛІДОВНІСТЬ(11)
    • Output: {1;2;3;4;5;6;7;8;9;10;11} .
    • Ця функція повертає перші одинадцять чисел.
  • MID(B5,{1;2;3;4;5;6;7;8;9;10;11},1)
    • Output: {"1"; "9";" "; "D"; "D"; "X"; "2"; "M"; "N"; "3"; "3″} .
    • За допомогою цієї частини ми отримуємо окремі символи з рядка.
  • 0+{"1"; "9";" "; "D"; "D"; "X"; "2"; "M"; "N"; "3"; "3″}
    • Вихідні дані: {1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3;3} .
    • Коли ми додамо нуль з рядком, він поверне помилку.
  • IFERROR({1;9;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;2;#VALUE!;#VALUE!;3;3},"")
    • Вихідні дані: {1;9;"";"";"";"";"";2;"";"";"";3;3} .
    • Для всіх значень помилок ми отримуємо порожнє поле.
  • CONCAT({1;9;"";"";"";"";"";2;"";"";3;3})
    • Вихід: 19233 .
    • Нарешті, ми додаємо всі значення, щоб отримати тільки п'ятизначні числа.

6. використання Flash-заповнення для вилучення чисел у діапазоні

Використання в "Урядовому кур'єрі". Flash Fill легше і простіше, ніж будь-який інший метод, згаданий вище. Ми будемо витягувати числа з будь-якої позиції в текстових рядках. Щоб правильно виконати цей метод, ми повинні допомогти Excel знайти шаблон значень комірок в стовпці або рядку, виконавши витяг тільки для перших двох значень.

Сходинки:

  • Для початку введіть цифри вручну в комірку C5 .

  • Потім почніть вводити цифри з комірки B6 в камеру C6 і Excel автоматично розпізнає шаблон.
  • Наостанок, натисніть Увійдіть .

Нотатки: Цей метод має деякі недоліки, тому його не рекомендується використовувати у всіх випадках, коли потрібно витягти числа з текстових рядків. Flash Fill зазвичай слідує шаблону з комірок стовпця або діапазону. Таким чином, перші 2 або 3 вилучення або обчислення повинні бути зроблені вручну, щоб допомогти Excel засвоїти загальний шаблон результуючих значень. Але іноді він не слідує точному шаблону, який нам потрібен, і, таким чином, він буде слідувати своєму власному шаблону і видасть вам невідповідний результат.

Наприклад, якщо нам потрібно виділити два нулі (00) з наведених даних, він покаже тільки один нуль, а не два. Потім, якщо ви хочете виділити числа з початку або останньої позиції в комірці, він витягне також і текстові значення разом з числами.

Читати далі: Як витягти числа після певного тексту в Excel (2 відповідні способи)

7 Застосування коду VBA для вилучення тільки чисел з комірки Excel

Якщо Ви зацікавлені у використанні Макрос Excel VBA щоб витягти числа тільки з клітинок, то вам потрібно виконати наступні кроки. Ми покажемо вам, як вводити код в поле Модуль VBA Цей код запропонує користувачеві вказати діапазони вхідних та вихідних комірок.

Сходинки:

  • По-перше, преса ALT+F11 для відкриття VBA вікно.
  • Потім, з боку Вставка виберіть вкладку Модуль З'явиться нове вікно модуля, в якому потрібно ввести коди.

  • По-третє, всередині вашого модуля після копіювання вставте наступні коди.
 Option Explicit Sub ExtractNumbersOnly() Dim CellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Вибір вхідних даних" DBxName2 = "Вибір вихідних комірок" Set InBx1 = Application.InputBox("Діапазон введення текстових комірок:", _ DBxName1, "", Type:=8)If TypeName(InBx1) = "Нічого" Then Exit Sub Set InBx2 = Application.InputBox("Вибрати вихідні комірки:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Нічого" Then Exit Sub Iteration = 0 XtrNum = "" For Each CellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(CellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(CellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(CellValue,StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next CellValue End Sub 

  • Після цього натисніть F5 Для виконання коду з'явиться діалогове вікно з назвою " Вибір вхідних даних " з'явиться.
  • Потім виділіть всі текстові комірки (тобто B5:B12 ) та натисніть ГАРАЗД. .

  • Після цього з'явиться ще одне діалогове вікно з назвою " Вихідна комірка Виділення " з'явиться вікно, в якому потрібно вибрати певну комірку або діапазон комірок, щоб побачити вихідні дані або значення.
  • Нарешті, виберіть діапазон комірок C5:C12 і натисніть Увійдіть .

  • Таким чином, ви відразу побачите витягнуті числа з текстів. На цьому ми завершимо розгляд семи швидких способів вилучення чисел тільки з комірки Excel.

🔎 Розбивка коду VBA

Параметри, що декларуються

 Option Explicit Sub ExtractNumbersOnly() Dim cellValue As Range Dim InBx1 As Range Dim InBx2 As Range Dim NumChar As Integer Dim StartChar As Integer Dim XtrNum As String Dim DBxName1 As String Dim DBxName2 As String Dim Iteration As Integer DBxName1 = "Вибір вхідних даних" DBxName2 = "Вибір вихідної комірки" 
  • У цій частині спочатку ми оголошуємо всі наші параметри як цілі числа, рядкові значення або діапазони комірок. Потім ми даємо назви нашим діалоговим вікнам за допомогою "Вибір вхідних даних" і "Виділення вихідної комірки" .

Визначення типів входів та виходів для діалогових вікон

 Set InBx1 = Application.InputBox("Діапазон введення текстових комірок:", _ DBxName1, "", Type:=8) If TypeName(InBx1) = "Нічого" Then Exit Sub Set InBx2 = Application.InputBox("Вибір вихідних комірок:", _ DBxName2, "", Type:=8) If TypeName(InBx2) = "Нічого" Then Exit Sub Iteration = 0 XtrNum = "" 
  • Тепер ми визначаємо параметри та їх типи для діалогових вікон. Тут додавання Type:=8 означає, що вхідні та вихідні дані будуть складатися з посилань на комірки або діапазон комірок.
  • Ми також визначаємо, що якщо вхідні дані не будуть знайдені, то підпрограма зупиниться. Згадавши цей макрос, підпрограма не буде розбиватися на відсутні дані, а просто припинить роботу.

Об'єднання функцій всередині кодових циклів для ітерацій

 For Each cellValue In InBx1 Iteration = Iteration + 1 NumChar = Len(cellValue) For StartChar = 1 To NumChar If IsNumeric(Mid(cellValue, StartChar, 1)) Then XtrNum = XtrNum & Mid(cellValue, StartChar, 1) End If Next StartChar InBx2.Item(Iteration) = XtrNum XtrNum = "" Next cellValue End Sub 
  • І, нарешті, це найвідповідальніша частина, де ми застосовуємо функції або формули, які нам потрібно застосувати до текстів, щоб знайти результуючі значення з рядків.
  • Однією з головних переваг кодування функції для Excel є те, що не потрібно набирати велику формулу, як це доводилося робити в попередніх методах, оскільки в VBA є вбудовані команди для використання циклів For або While, в яких можна без проблем виконати ітерацію для кожної деталі в текстовому рядку.

Читати далі: Як відокремити числа від тексту в Excel VBA (3 способи)

Висновок

Ми показали вам 7 простих способів витягти тільки цифри Витягнути тільки числа з текстового рядка не так просто, як здається, оскільки це вимагає комбінації декількох функцій, що ускладнює кінцеву формулу або синтаксис. Але ми сподіваємося, що те, як ми намагалися проілюструвати формули, розбиваючи внутрішні функції, допомогло вам зрозуміти синтаксис з деяким комфортом і легкістю.

Якщо ви знайшли будь-які інші функції або формули, які ми повинні були додати сюди, то, будь ласка, повідомте нам про це у своїх цінних коментарях. Або ви можете переглянути наші більш інформативні та цікаві статті, пов'язані з функціями Excel, на цьому веб-сайті.

Г’ю Вест — досвідчений тренер і аналітик Excel із понад 10-річним досвідом роботи в галузі. Він має ступінь бакалавра з бухгалтерського обліку та фінансів і ступінь магістра з ділового адміністрування. Г’ю має пристрасть до викладання та розробив унікальний підхід до викладання, який легко зрозуміти та дотримуватися. Його експертне знання Excel допомогло тисячам студентів і професіоналів у всьому світі вдосконалити свої навички та досягти успіху в кар’єрі. У своєму блозі Г’ю ділиться своїми знаннями зі світом, пропонуючи безкоштовні навчальні посібники з Excel та онлайн-навчання, щоб допомогти окремим особам і компаніям повністю розкрити свій потенціал.