Извлечь все числа из строки
Jhonson
Дата: Понедельник, 06.02.2012, 18:35 |
Сообщение № 1
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Помогите пожалуйста, никак не могу додуматься, как формулой из строки записанной в ячейку извлечь все числовые значения Например: в ячейке 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]
Помогите пожалуйста, никак не могу додуматься, как формулой из строки записанной в ячейку извлечь все числовые значения Например: в ячейке 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
"Ничто не приносит людям столько неприятностей, как разум."
Сообщение отредактировал 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
Ответить
Jhonson
Дата: Понедельник, 06.02.2012, 19:40 |
Сообщение № 3
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Сергей, это я видел, но как это можно использовать для данной задачи не понимаю? Все числа разбросаны по строке. К тому же для подряд идущих чисел можно проще: Code
=1*ПСТР(A1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1));0);СЧЁТ(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1)))
Сергей, это я видел, но как это можно использовать для данной задачи не понимаю? Все числа разбросаны по строке. К тому же для подряд идущих чисел можно проще: Code
=1*ПСТР(A1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1));0);СЧЁТ(1*ПСТР(A1;СТРОКА(ДВССЫЛ("$1:$"&ДЛСТР(A1)));1)))
Jhonson
"Ничто не приносит людям столько неприятностей, как разум."
Сообщение отредактировал 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
Точно, не обратил внимание. Ща подумаем
Точно, не обратил внимание. Ща подумаем Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Точно, не обратил внимание. Ща подумаем Автор - 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
Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
Ответить
Сообщение Решение формулами уже имеется, и уже давненько... Код
=СУММ(ПСТР(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
Огромное спасибо, то что надо!
Огромное спасибо, то что надо! Jhonson
"Ничто не приносит людям столько неприятностей, как разум."
Ответить
Сообщение Огромное спасибо, то что надо! Автор - Jhonson Дата добавления - 06.02.2012 в 21:10
Jhonson
Дата: Понедельник, 06.02.2012, 21:18 |
Сообщение № 7
Группа: Друзья
Ранг: Ветеран
Сообщений: 514
Не представляю КАК до такого можно было додуматься....... Очень сильно!!!!
Не представляю КАК до такого можно было додуматься....... Очень сильно!!!! Jhonson
"Ничто не приносит людям столько неприятностей, как разум."
Ответить
Сообщение Не представляю КАК до такого можно было додуматься....... Очень сильно!!!! Автор - Jhonson Дата добавления - 06.02.2012 в 21:18
Serge_007
Дата: Понедельник, 06.02.2012, 22:49 |
Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация:
2749
±
Замечаний:
±
Excel 2016
Quote (Jhonson )
Решение формулами уже имеется,
Не попадал я видимо на такие темы ЗЫ А как перевести итог в текст, что бы отобразить более 15-и знаков?
Quote (Jhonson )
Решение формулами уже имеется,
Не попадал я видимо на такие темы ЗЫ А как перевести итог в текст, что бы отобразить более 15-и знаков?Serge_007
ЮMoney :41001419691823 | WMR :126292472390
Ответить
Сообщение Quote (Jhonson )
Решение формулами уже имеется,
Не попадал я видимо на такие темы ЗЫ А как перевести итог в текст, что бы отобразить более 15-и знаков?Автор - Serge_007 Дата добавления - 06.02.2012 в 22:49
kim
Дата: Понедельник, 06.02.2012, 23:36 |
Сообщение № 9
Группа: Друзья
Ранг: Обитатель
Сообщений: 371
Репутация:
160
±
Замечаний:
0% ±
Excel 2010
Вот до 30 цифр, наверное можно как-то сократить..., не задумывался. В 2003-ем нужно с именами делать, из-за количества уровней вложенности не работает. P.S. Чуть поправил, ошибка была.
Вот до 30 цифр, наверное можно как-то сократить..., не задумывался. В 2003-ем нужно с именами делать, из-за количества уровней вложенности не работает. P.S. Чуть поправил, ошибка была. kim
Сцяна - гэта тая ж прыступка. Проста трэба дарасьці да яе.
Ответить
Сообщение Вот до 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 офиса
Формулами до 30 цифр, до 45 цифр, до 60 цифр Все работает в 2003. Теоретически можно сделать любое количество цифр используя формулу: =цифры(1-15)&цифры(16-30)&цифры(31-45)&цифры(46-60) и т.д. если формула не влезет в одну ячейку, можно ее разбить на две, а потом соединить, но думаю что формулы на 30 цифр на практике вполне достаточно PS: вариант Игоря (kim) не смотрел, в виду отсутствия 2007 офиса MCH
К сообщению приложен файл:
___.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