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

Вход

Регистрация

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

 

= Мир MS Excel/оставить только цифры - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
оставить только цифры
qpp Дата: Среда, 04.07.2012, 12:06 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

Добрый день. Возник вопрос, как можно удалить все текстовые значение (рус и анг) из ячейки, и оставить только цифры.

в ASAP Util есть такая функция, но работает только с английским языком.

Подскажите пожалуйста.


bigqpp
скайп
 
Ответить
СообщениеДобрый день. Возник вопрос, как можно удалить все текстовые значение (рус и анг) из ячейки, и оставить только цифры.

в ASAP Util есть такая функция, но работает только с английским языком.

Подскажите пожалуйста.

Автор - qpp
Дата добавления - 04.07.2012 в 12:06
Формуляр Дата: Среда, 04.07.2012, 12:17 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 832
Репутация: 255 ±
Замечаний: 0% ±

Excel 2003, 2013


Excel 2003 EN, 2013 EN

Сообщение отредактировал Формуляр - Среда, 04.07.2012, 12:18
 
Ответить
Сообщениеqpp,
тема была на прошлой неделе.

И ещё

Автор - Формуляр
Дата добавления - 04.07.2012 в 12:17
_Boroda_ Дата: Среда, 04.07.2012, 12:30 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Для А1
Формула массива (вводить одновременным нажатием Контрл, Шифт, Ентер)
[vba]
Code
=СУММ(ПСТР(0&A1;НАИБОЛЬШИЙ(ЕЧИСЛО(-ПСТР(A1;СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1)));1))*СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1)));СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1))))+1;1)*10^(СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1)))-1))
[/vba]
Можно блок ДВССЫЛ("A1:A"&ДЛСТР(A1)) заменить на, допустим, D$1:D$1000 или вообще $1:$1000
К сообщению приложен файл: 1q2w3e.xls (22.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДля А1
Формула массива (вводить одновременным нажатием Контрл, Шифт, Ентер)
[vba]
Code
=СУММ(ПСТР(0&A1;НАИБОЛЬШИЙ(ЕЧИСЛО(-ПСТР(A1;СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1)));1))*СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1)));СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1))))+1;1)*10^(СТРОКА(ДВССЫЛ("A1:A"&ДЛСТР(A1)))-1))
[/vba]
Можно блок ДВССЫЛ("A1:A"&ДЛСТР(A1)) заменить на, допустим, D$1:D$1000 или вообще $1:$1000

Автор - _Boroda_
Дата добавления - 04.07.2012 в 12:30
Гость Дата: Среда, 04.07.2012, 12:43 | Сообщение № 4
Группа: Гости
Интересное решение, попробую разобраться на досуге.

Но меня все таки интересует момент, как можно убрать из ячейки все буквы.

тк для этого
МАТЕРИАЛ ПЕРЕВЯЗОЧНЫЙ АДГЕЗИВНЫЙ, ИМЕЮЩИЙ ЛИПКУЮ ПОВЕРХНОСТЬ, ДЛЯ ИСПОЛЬЗОВАНИЯ В МЕДИЦИНЕ, В КАРТ. КОРОБКАХ, КОД ОКП 939370:ГИПОАЛЛЕРГЕННЫЙ ФИКСИРУЮЩИЙ ПЛАСТЫРЬ НА ПЛАСТ. КАТУШКАХ: "OMNIPOR" РАЗМ.5СМХ9.2М, АРТ. - 9005829 - 80 УПАК. (ПО 2 ШТ) В 2 КАРТ.КОР. САМОКЛЕЯЩАЯСЯ ПОВЯЗКА ДЛЯ УХОДА ПОСЛЕОПЕРАЦИОННЫМИ РАНАМИ СО СПЕЦИАЛЬНОЙ НЕ ПРИКЛЕИВАЮЩЕЙСЯ К РАНЕ : "COSMOPOR ADVANCE|", РАЗМ.15X8CM, АРТ. - 9010141 - 12 УПАК. (ПО 25 ШТ), В 1 КАРТ.КОР.
Quote


формула не работает.
 
Ответить
СообщениеИнтересное решение, попробую разобраться на досуге.

Но меня все таки интересует момент, как можно убрать из ячейки все буквы.

тк для этого
МАТЕРИАЛ ПЕРЕВЯЗОЧНЫЙ АДГЕЗИВНЫЙ, ИМЕЮЩИЙ ЛИПКУЮ ПОВЕРХНОСТЬ, ДЛЯ ИСПОЛЬЗОВАНИЯ В МЕДИЦИНЕ, В КАРТ. КОРОБКАХ, КОД ОКП 939370:ГИПОАЛЛЕРГЕННЫЙ ФИКСИРУЮЩИЙ ПЛАСТЫРЬ НА ПЛАСТ. КАТУШКАХ: "OMNIPOR" РАЗМ.5СМХ9.2М, АРТ. - 9005829 - 80 УПАК. (ПО 2 ШТ) В 2 КАРТ.КОР. САМОКЛЕЯЩАЯСЯ ПОВЯЗКА ДЛЯ УХОДА ПОСЛЕОПЕРАЦИОННЫМИ РАНАМИ СО СПЕЦИАЛЬНОЙ НЕ ПРИКЛЕИВАЮЩЕЙСЯ К РАНЕ : "COSMOPOR ADVANCE|", РАЗМ.15X8CM, АРТ. - 9010141 - 12 УПАК. (ПО 25 ШТ), В 1 КАРТ.КОР.
Quote


формула не работает.

Автор - Гость
Дата добавления - 04.07.2012 в 12:43
qpp Дата: Среда, 04.07.2012, 12:46 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

прошу прощение, оставил запись как гость. не до конца еще освоил форум.


bigqpp
скайп
 
Ответить
Сообщениепрошу прощение, оставил запись как гость. не до конца еще освоил форум.

Автор - qpp
Дата добавления - 04.07.2012 в 12:46
RAN Дата: Среда, 04.07.2012, 12:55 | Сообщение № 6
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
UDF
Оставляет только цифры
[vba]
Code
Function ИЗВЛЕЧ_ЦИФР(ЯЧЕЙКА As Range) As String
'---------------------------------------------------------------------------------------
' Purpose      : Извлекает цифры из ячейки
'---------------------------------------------------------------------------------------
      Dim LenStr As Long
      For LenStr = 1 To Len(ЯЧЕЙКА)
          Select Case Asc(Mid(ЯЧЕЙКА, LenStr, 1))
          Case 48 To 57
              ИЗВЛЕЧ_ЦИФР = ИЗВЛЕЧ_ЦИФР & Mid(ЯЧЕЙКА, LenStr, 1)
          End Select
      Next
End Function
[/vba]

93937059290058298022158901014112251 - солить будем? smile


Быть или не быть, вот в чем загвоздка!

Сообщение отредактировал RAN - Среда, 04.07.2012, 12:57
 
Ответить
СообщениеUDF
Оставляет только цифры
[vba]
Code
Function ИЗВЛЕЧ_ЦИФР(ЯЧЕЙКА As Range) As String
'---------------------------------------------------------------------------------------
' Purpose      : Извлекает цифры из ячейки
'---------------------------------------------------------------------------------------
      Dim LenStr As Long
      For LenStr = 1 To Len(ЯЧЕЙКА)
          Select Case Asc(Mid(ЯЧЕЙКА, LenStr, 1))
          Case 48 To 57
              ИЗВЛЕЧ_ЦИФР = ИЗВЛЕЧ_ЦИФР & Mid(ЯЧЕЙКА, LenStr, 1)
          End Select
      Next
End Function
[/vba]

93937059290058298022158901014112251 - солить будем? smile

Автор - RAN
Дата добавления - 04.07.2012 в 12:55
qpp Дата: Среда, 04.07.2012, 13:00 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

прошу прощения, принял к сведению и буду выкладывать файл впредь для примера.

в итоге я бы хотел убрать все буквы из ячейки, и получить (вместе со знаками табуляции) набор цифр, после из него вывести закономерность,
упаковки - кол-во, они попадаются в нескольких комбинациях,

я вначале привел для примера ASAP Util которая это делает, но только с англ. знаками.


bigqpp
скайп
 
Ответить
Сообщениепрошу прощения, принял к сведению и буду выкладывать файл впредь для примера.

в итоге я бы хотел убрать все буквы из ячейки, и получить (вместе со знаками табуляции) набор цифр, после из него вывести закономерность,
упаковки - кол-во, они попадаются в нескольких комбинациях,

я вначале привел для примера ASAP Util которая это делает, но только с англ. знаками.

Автор - qpp
Дата добавления - 04.07.2012 в 13:00
MCH Дата: Среда, 04.07.2012, 13:01 | Сообщение № 8
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

Quote (Гость)
как можно убрать из ячейки все буквы

Точки, запятые, тире, скобки, пробелы не удаляем?

Что в итоге должно получится? все цифры подряд, или разделенные через пробел?

PS. Формулу которую предложил _Boroda_ может вернуть только 15 цифр
как извлечь все числа см. http://www.excelworld.ru/forum/2-1287-1
 
Ответить
Сообщение
Quote (Гость)
как можно убрать из ячейки все буквы

Точки, запятые, тире, скобки, пробелы не удаляем?

Что в итоге должно получится? все цифры подряд, или разделенные через пробел?

PS. Формулу которую предложил _Boroda_ может вернуть только 15 цифр
как извлечь все числа см. http://www.excelworld.ru/forum/2-1287-1

Автор - MCH
Дата добавления - 04.07.2012 в 13:01
MCH Дата: Среда, 04.07.2012, 13:08 | Сообщение № 9
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

UDF:
[vba]
Code
Function ExtractNum$(txt$)
      Dim i&, s$, m$
      For i = 1 To Len(txt)
          m$ = Mid$(txt, i, 1)
          If Not m Like "[0-9]" Then m = " "
          s = s & m
      Next i
      ExtractNum = Application.Trim(s)
End Function
[/vba]
вернет строку:
939370 5 9 2 9005829 80 2 2 15 8 9010141 12 25 1

Вариант2:
[vba]
Code
Function ExtractNum$(ByVal txt$)
     Dim i&
     For i = 1 To Len(txt)
         If Not Mid$(txt, i, 1) Like "[0-9]" Then Mid(txt, i, 1) = " "
     Next i
     ExtractNum = Application.Trim(txt)
End Function
[/vba]


Сообщение отредактировал MCH - Среда, 04.07.2012, 13:31
 
Ответить
СообщениеUDF:
[vba]
Code
Function ExtractNum$(txt$)
      Dim i&, s$, m$
      For i = 1 To Len(txt)
          m$ = Mid$(txt, i, 1)
          If Not m Like "[0-9]" Then m = " "
          s = s & m
      Next i
      ExtractNum = Application.Trim(s)
End Function
[/vba]
вернет строку:
939370 5 9 2 9005829 80 2 2 15 8 9010141 12 25 1

Вариант2:
[vba]
Code
Function ExtractNum$(ByVal txt$)
     Dim i&
     For i = 1 To Len(txt)
         If Not Mid$(txt, i, 1) Like "[0-9]" Then Mid(txt, i, 1) = " "
     Next i
     ExtractNum = Application.Trim(txt)
End Function
[/vba]

Автор - MCH
Дата добавления - 04.07.2012 в 13:08
qpp Дата: Среда, 04.07.2012, 13:22 | Сообщение № 10
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

с пробелами выглядит вполне осмысленно, удачно

только что это UDF и как им пользоваться (нашел описание, сейчас буду разбираться)


bigqpp
скайп
 
Ответить
Сообщениес пробелами выглядит вполне осмысленно, удачно

только что это UDF и как им пользоваться (нашел описание, сейчас буду разбираться)

Автор - qpp
Дата добавления - 04.07.2012 в 13:22
qpp Дата: Пятница, 06.07.2012, 13:19 | Сообщение № 11
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

спасибо, мне очень помогло смог структурировать БД по сложности обрабатываемых поле, но скинули аналогичную базу изверги, и нет сил

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

но цифры окруженные значением ( пример значений:
УП
ШТ
СМ
.
х
) т.е. на выходе получать

не просто

939370 5 9 2 9005829 80 2 2 15 8 9010141 12 25 1

а 939370 5смХ9.2м 9005829 80уп 2шт ... и тд ?

и желательно чтобы текст на выходе примыкал к цифрам


bigqpp
скайп


Сообщение отредактировал Serge_007 - Понедельник, 20.11.2023, 15:18
 
Ответить
Сообщениеспасибо, мне очень помогло смог структурировать БД по сложности обрабатываемых поле, но скинули аналогичную базу изверги, и нет сил

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

но цифры окруженные значением ( пример значений:
УП
ШТ
СМ
.
х
) т.е. на выходе получать

не просто

939370 5 9 2 9005829 80 2 2 15 8 9010141 12 25 1

а 939370 5смХ9.2м 9005829 80уп 2шт ... и тд ?

и желательно чтобы текст на выходе примыкал к цифрам

Автор - qpp
Дата добавления - 06.07.2012 в 13:19
MCH Дата: Пятница, 06.07.2012, 14:26 | Сообщение № 12
Группа: Админы
Ранг: Старожил
Сообщений: 2004
Репутация: 752 ±
Замечаний: ±

не совсем как нужно, но вроде работает:
[vba]
Code
Function ExtractNum$(ByVal txt$)
     Dim i&, j&
     Dim a, b
     a = Array("[0-9] шт", "[0-9]шт", "[0-9] уп", "[0-9]уп", "[0-9]смх", "[0-9]см", _
               "[0-9] см", "[0-9] х [0-9]", "[0-9] x [0-9]", "[0-9]х[0-9]", _
               "[0-9]x[0-9]", "[0-9].[0-9]", "[0-9]")
     b = Array(4, 3, 4, 3, 4, 3, 4, 5, 5, 3, 3, 3, 1)
      
     For i = 1 To Len(txt)
         For j = LBound(b) To UBound(b)
             If LCase(Mid$(txt, i, b(j))) Like a(j) Then i = i + b(j) - 1: Exit For
         Next j
         If j > UBound(b) Then Mid(txt, i, 1) = " "
     Next i
     ExtractNum = Application.Trim(txt)
End Function
[/vba]

Вероятно здесь можно (нужно) использовать регулярные выражения, но это не ко мне
 
Ответить
Сообщениене совсем как нужно, но вроде работает:
[vba]
Code
Function ExtractNum$(ByVal txt$)
     Dim i&, j&
     Dim a, b
     a = Array("[0-9] шт", "[0-9]шт", "[0-9] уп", "[0-9]уп", "[0-9]смх", "[0-9]см", _
               "[0-9] см", "[0-9] х [0-9]", "[0-9] x [0-9]", "[0-9]х[0-9]", _
               "[0-9]x[0-9]", "[0-9].[0-9]", "[0-9]")
     b = Array(4, 3, 4, 3, 4, 3, 4, 5, 5, 3, 3, 3, 1)
      
     For i = 1 To Len(txt)
         For j = LBound(b) To UBound(b)
             If LCase(Mid$(txt, i, b(j))) Like a(j) Then i = i + b(j) - 1: Exit For
         Next j
         If j > UBound(b) Then Mid(txt, i, 1) = " "
     Next i
     ExtractNum = Application.Trim(txt)
End Function
[/vba]

Вероятно здесь можно (нужно) использовать регулярные выражения, но это не ко мне

Автор - MCH
Дата добавления - 06.07.2012 в 14:26
qpp Дата: Пятница, 06.07.2012, 15:58 | Сообщение № 13
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

[0-9]ММ*[0-9]ММ

а как мне сюда еще вот такое условие добавить

я вставляю, но не срабатывает


bigqpp
скайп
 
Ответить
Сообщение[0-9]ММ*[0-9]ММ

а как мне сюда еще вот такое условие добавить

я вставляю, но не срабатывает

Автор - qpp
Дата добавления - 06.07.2012 в 15:58
qpp Дата: Пятница, 06.07.2012, 15:58 | Сообщение № 14
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

72ММ*19ММ оригинал

но цифры могут меняться


bigqpp
скайп
 
Ответить
Сообщение72ММ*19ММ оригинал

но цифры могут меняться

Автор - qpp
Дата добавления - 06.07.2012 в 15:58
Michael_S Дата: Пятница, 06.07.2012, 18:05 | Сообщение № 15
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
qpp, Приложите пример с возможными вариантами и что из них надо получить. По сто раз переделывать никому не охота.
 
Ответить
Сообщениеqpp, Приложите пример с возможными вариантами и что из них надо получить. По сто раз переделывать никому не охота.

Автор - Michael_S
Дата добавления - 06.07.2012 в 18:05
qpp Дата: Понедельник, 09.07.2012, 10:39 | Сообщение № 16
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 117
Репутация: 11 ±
Замечаний: 0% ±

72ММ*19ММ
1.25СМХ5М
1056УП
25 ШТ
15X8CM
5РУЛ
25Х127ММ
20ММ*5,0М
1,25СМ*5,0М
10СМ*15СМ

все пробелы из ячеек убрал, на выходе хотелось бы получить то что описано выше, если возможно сохранить "." "," между знаками тоже хорошо.

цифры могут меняться

на выходе получать
---

а 939370 5смХ9.2м 9005829 80уп 2шт
К сообщению приложен файл: 7130463.xls (93.5 Kb)


bigqpp
скайп
 
Ответить
Сообщение72ММ*19ММ
1.25СМХ5М
1056УП
25 ШТ
15X8CM
5РУЛ
25Х127ММ
20ММ*5,0М
1,25СМ*5,0М
10СМ*15СМ

все пробелы из ячеек убрал, на выходе хотелось бы получить то что описано выше, если возможно сохранить "." "," между знаками тоже хорошо.

цифры могут меняться

на выходе получать
---

а 939370 5смХ9.2м 9005829 80уп 2шт

Автор - qpp
Дата добавления - 09.07.2012 в 10:39
Michael_S Дата: Понедельник, 09.07.2012, 14:17 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 2012
Репутация: 373 ±
Замечаний: 0% ±

Excel2016
Quote (qpp)
все пробелы из ячеек убрал,

Дружище, на хрена Вы выложили сто кБ бессмысленного текста, с которым даже человеку невозможно работать, не то, что машине.?

Надо с десяток ячеек с первоначальным текстом, желательно с разными вариантами что бывает и в соседнем столбце - что нужно получить.
 
Ответить
Сообщение
Quote (qpp)
все пробелы из ячеек убрал,

Дружище, на хрена Вы выложили сто кБ бессмысленного текста, с которым даже человеку невозможно работать, не то, что машине.?

Надо с десяток ячеек с первоначальным текстом, желательно с разными вариантами что бывает и в соседнем столбце - что нужно получить.

Автор - Michael_S
Дата добавления - 09.07.2012 в 14:17
ВикторВ Дата: Четверг, 04.10.2012, 14:02 | Сообщение № 18
Группа: Гости
как убрать пробел между цифрами номера телефонов пример 050 333 33 33 на выходе должно быть 0503333333
 
Ответить
Сообщениекак убрать пробел между цифрами номера телефонов пример 050 333 33 33 на выходе должно быть 0503333333

Автор - ВикторВ
Дата добавления - 04.10.2012 в 14:02
Tviga Дата: Четверг, 04.10.2012, 14:06 | Сообщение № 19
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 147
Репутация: 20 ±
Замечаний: 0% ±

Ctrl+H
найти -пробел -
заменить -ничем
 
Ответить
СообщениеCtrl+H
найти -пробел -
заменить -ничем

Автор - Tviga
Дата добавления - 04.10.2012 в 14:06
ВикторВ Дата: Пятница, 05.10.2012, 17:13 | Сообщение № 20
Группа: Гости
Вот так я и сделал,Ctrl+H
найти -пробел -
заменить -ничем .Один раз получилось, а потом нет.
 
Ответить
СообщениеВот так я и сделал,Ctrl+H
найти -пробел -
заменить -ничем .Один раз получилось, а потом нет.

Автор - ВикторВ
Дата добавления - 05.10.2012 в 17:13
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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