Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечь все числа из строки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Извлечь все числа из строки
Jhonson Дата: Понедельник, 06.02.2012, 18:35 | Сообщение № 1
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

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

Например: в ячейке A1 - "3302-002-ГАЗ-275-U6" в ячейке А2 должно быть "33020022756"

UDF решается очень просто:

[vba]
Code
Function изчисло(stroka As String)
Dim i#
For i = 1 To Len(stroka)
       If Mid(stroka, i, 1) Like "#" Then изчисло = изчисло + Mid(stroka, i, 1)
Next
End Function
[/vba]
К сообщению приложен файл: 0664363.xls (17.5 Kb)


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Понедельник, 06.02.2012, 19:24
 
Ответить
СообщениеПомогите пожалуйста, никак не могу додуматься, как формулой из строки записанной в ячейку извлечь все числовые значения

Например: в ячейке A1 - "3302-002-ГАЗ-275-U6" в ячейке А2 должно быть "33020022756"

UDF решается очень просто:

[vba]
Code
Function изчисло(stroka As String)
Dim i#
For i = 1 To Len(stroka)
       If Mid(stroka, i, 1) Like "#" Then изчисло = изчисло + Mid(stroka, i, 1)
Next
End Function
[/vba]

Автор - Jhonson
Дата добавления - 06.02.2012 в 18:35
Serge_007 Дата: Понедельник, 06.02.2012, 19:36 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеИзвлечение идущих подряд цифр из текста

Автор - Serge_007
Дата добавления - 06.02.2012 в 19:36
Jhonson Дата: Понедельник, 06.02.2012, 19:40 | Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

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

К тому же для подряд идущих чисел можно проще:
Code
=1*ПСТР(A1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1));0);СЧЁТ(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1)))


"Ничто не приносит людям столько неприятностей, как разум."

Сообщение отредактировал Jhonson - Понедельник, 06.02.2012, 19:47
 
Ответить
СообщениеСергей, это я видел, но как это можно использовать для данной задачи не понимаю? Все числа разбросаны по строке.

К тому же для подряд идущих чисел можно проще:
Code
=1*ПСТР(A1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1));0);СЧЁТ(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1)))

Автор - Jhonson
Дата добавления - 06.02.2012 в 19:40
Serge_007 Дата: Понедельник, 06.02.2012, 19:48 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Точно, не обратил внимание.
Ща подумаем smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеТочно, не обратил внимание.
Ща подумаем smile

Автор - Serge_007
Дата добавления - 06.02.2012 в 19:48
kim Дата: Понедельник, 06.02.2012, 21:03 | Сообщение № 5
Группа: Друзья
Ранг: Обитатель
Сообщений: 371
Репутация: 160 ±
Замечаний: 0% ±

Excel 2010
Решение формулами уже имеется, и уже давненько...
Код
=СУММ(ПСТР(0&A1;НАИБОЛЬШИЙ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1))*СТРОКА($1:$99);СТРОКА($1:$99))+1;1)*10^СТРОКА($1:$99)/10)

Формула массива.


Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
 
Ответить
СообщениеРешение формулами уже имеется, и уже давненько...
Код
=СУММ(ПСТР(0&A1;НАИБОЛЬШИЙ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1))*СТРОКА($1:$99);СТРОКА($1:$99))+1;1)*10^СТРОКА($1:$99)/10)

Формула массива.

Автор - kim
Дата добавления - 06.02.2012 в 21:03
Jhonson Дата: Понедельник, 06.02.2012, 21:10 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Огромное спасибо, то что надо!


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеОгромное спасибо, то что надо!

Автор - Jhonson
Дата добавления - 06.02.2012 в 21:10
Jhonson Дата: Понедельник, 06.02.2012, 21:18 | Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Репутация: 169 ±
Замечаний: 0% ±

Не представляю КАК до такого можно было додуматься....... Очень сильно!!!!


"Ничто не приносит людям столько неприятностей, как разум."
 
Ответить
СообщениеНе представляю КАК до такого можно было додуматься....... Очень сильно!!!!

Автор - Jhonson
Дата добавления - 06.02.2012 в 21:18
Serge_007 Дата: Понедельник, 06.02.2012, 22:49 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Quote (Jhonson)
Решение формулами уже имеется,

Не попадал я видимо на такие темы smile

ЗЫ А как перевести итог в текст, что бы отобразить более 15-и знаков?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Quote (Jhonson)
Решение формулами уже имеется,

Не попадал я видимо на такие темы smile

ЗЫ А как перевести итог в текст, что бы отобразить более 15-и знаков?

Автор - Serge_007
Дата добавления - 06.02.2012 в 22:49
kim Дата: Понедельник, 06.02.2012, 23:36 | Сообщение № 9
Группа: Друзья
Ранг: Обитатель
Сообщений: 371
Репутация: 160 ±
Замечаний: 0% ±

Excel 2010
Вот до 30 цифр, наверное можно как-то сократить..., не задумывался.
В 2003-ем нужно с именами делать, из-за количества уровней вложенности не работает.
P.S. Чуть поправил, ошибка была.
К сообщению приложен файл: 0699910.xlsx (8.3 Kb)


Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
 
Ответить
СообщениеВот до 30 цифр, наверное можно как-то сократить..., не задумывался.
В 2003-ем нужно с именами делать, из-за количества уровней вложенности не работает.
P.S. Чуть поправил, ошибка была.

Автор - kim
Дата добавления - 06.02.2012 в 23:36
MCH Дата: Вторник, 07.02.2012, 08:51 | Сообщение № 10
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Формулами до 30 цифр, до 45 цифр, до 60 цифр
Все работает в 2003.
Теоретически можно сделать любое количество цифр используя формулу:
=цифры(1-15)&цифры(16-30)&цифры(31-45)&цифры(46-60) и т.д.
если формула не влезет в одну ячейку, можно ее разбить на две, а потом соединить, но думаю что формулы на 30 цифр на практике вполне достаточно

PS: вариант Игоря (kim) не смотрел, в виду отсутствия 2007 офиса
К сообщению приложен файл: ___.xls (20.5 Kb)


Сообщение отредактировал MCH - Вторник, 07.02.2012, 10:55
 
Ответить
СообщениеФормулами до 30 цифр, до 45 цифр, до 60 цифр
Все работает в 2003.
Теоретически можно сделать любое количество цифр используя формулу:
=цифры(1-15)&цифры(16-30)&цифры(31-45)&цифры(46-60) и т.д.
если формула не влезет в одну ячейку, можно ее разбить на две, а потом соединить, но думаю что формулы на 30 цифр на практике вполне достаточно

PS: вариант Игоря (kim) не смотрел, в виду отсутствия 2007 офиса

Автор - MCH
Дата добавления - 07.02.2012 в 08:51
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!