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

Вход

Регистрация

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

 

= Мир MS Excel/Извлечение всех данных из ячейки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Извлечение всех данных из ячейки (Формулы/Formulas)
Извлечение всех данных из ячейки
fr0st Дата: Пятница, 20.10.2017, 23:47 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 73
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Нужно извлечь все цифры из данной ячейки.
К сообщению приложен файл: 8165055.xlsx (8.0 Kb)
 
Ответить
СообщениеНужно извлечь все цифры из данной ячейки.

Автор - fr0st
Дата добавления - 20.10.2017 в 23:47
sv2014 Дата: Пятница, 20.10.2017, 23:59 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
fr0st, вариант макроса,кнопка test

[vba]
Код
Sub test_21_10_2017_exw()
   Dim t$, i&: t = Range("C3")
  With CreateObject("VBScript.RegExp"): .Pattern = "\d": .Global = True
     For i = 0 To .Execute(t).Count - 1: Range("E3").Offset(, i).Value = CInt(.Execute(t)(i)): Next
  End With
End Sub
[/vba]
К сообщению приложен файл: example_21_10_2.xls (34.0 Kb)
 
Ответить
Сообщениеfr0st, вариант макроса,кнопка test

[vba]
Код
Sub test_21_10_2017_exw()
   Dim t$, i&: t = Range("C3")
  With CreateObject("VBScript.RegExp"): .Pattern = "\d": .Global = True
     For i = 0 To .Execute(t).Count - 1: Range("E3").Offset(, i).Value = CInt(.Execute(t)(i)): Next
  End With
End Sub
[/vba]

Автор - sv2014
Дата добавления - 20.10.2017 в 23:59
fr0st Дата: Суббота, 21.10.2017, 00:05 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 73
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
fr0st, вариант макроса,кнопка test

А если много очень строк, то как быть?
 
Ответить
Сообщение
fr0st, вариант макроса,кнопка test

А если много очень строк, то как быть?

Автор - fr0st
Дата добавления - 21.10.2017 в 00:05
vikttur Дата: Суббота, 21.10.2017, 00:21 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Выделить диапазон с данными, с помощью инструмента НАЙТИ/ЗАМЕНИТЬ удалить лишние символы.
Далее с помощью инструмента Текст_по_столбцам (вкладка Данные) разнести цифры по ячейкам.
Н все это уйдет 1-3 мин.


Сообщение отредактировал vikttur - Суббота, 21.10.2017, 00:21
 
Ответить
СообщениеВыделить диапазон с данными, с помощью инструмента НАЙТИ/ЗАМЕНИТЬ удалить лишние символы.
Далее с помощью инструмента Текст_по_столбцам (вкладка Данные) разнести цифры по ячейкам.
Н все это уйдет 1-3 мин.

Автор - vikttur
Дата добавления - 21.10.2017 в 00:21
sv2014 Дата: Суббота, 21.10.2017, 01:11 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
fr0st, у Вас нет файл-примера для многих строчек,как вариант,кнопка test2

[vba]
Код
Sub test2()
  Dim t$, i&, j&
  With CreateObject("VBScript.RegExp"): .Pattern = "\d": .Global = True
    For j = 3 To Range("C" & Rows.Count).End(xlUp).Row: t = Range("C" & j)
       For i = 0 To .Execute(t).Count - 1: Range("E" & j).Offset(, i).Value = CInt(.Execute(t)(i)): Next
    Next
  End With
End Sub
[/vba]
К сообщению приложен файл: 5691237.xls (35.5 Kb)
 
Ответить
Сообщениеfr0st, у Вас нет файл-примера для многих строчек,как вариант,кнопка test2

[vba]
Код
Sub test2()
  Dim t$, i&, j&
  With CreateObject("VBScript.RegExp"): .Pattern = "\d": .Global = True
    For j = 3 To Range("C" & Rows.Count).End(xlUp).Row: t = Range("C" & j)
       For i = 0 To .Execute(t).Count - 1: Range("E" & j).Offset(, i).Value = CInt(.Execute(t)(i)): Next
    Next
  End With
End Sub
[/vba]

Автор - sv2014
Дата добавления - 21.10.2017 в 01:11
Che79 Дата: Суббота, 21.10.2017, 23:37 | Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
fr0st, как вариант, формулой, для случаев, если счета не двузначные.
Код
=--ПСТР($C3;1+2*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(A$1))+3*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(B$1))+2*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(C$1))+3*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(D$1))+2*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(E$1));1)

Вероятно, её можно ужать, но я не придумал здесь какую-то более убедительную ЛОЖЬ :D
К сообщению приложен файл: 8165055_1.xlsx (9.7 Kb)


Делай нормально и будет нормально!

Сообщение отредактировал Che79 - Суббота, 21.10.2017, 23:40
 
Ответить
Сообщениеfr0st, как вариант, формулой, для случаев, если счета не двузначные.
Код
=--ПСТР($C3;1+2*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(A$1))+3*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(B$1))+2*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(C$1))+3*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(D$1))+2*(СЧЁТЗ($D3:D3)>СТОЛБЕЦ()-СТОЛБЕЦ(E$1));1)

Вероятно, её можно ужать, но я не придумал здесь какую-то более убедительную ЛОЖЬ :D

Автор - Che79
Дата добавления - 21.10.2017 в 23:37
vikttur Дата: Воскресенье, 22.10.2017, 00:58 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Для однозначных немного ужал :)
Код
=--ИНДЕКС(ПСТР($C3;{1;3;6;8;11;13};1);СТОЛБЕЦ(A1))

Или отдельными формулами для 6 столбцов:
Код
=--ПСТР($C3;1;1)

Код
=--ПСТР($C3;3;1)

...и т.д.


Сообщение отредактировал vikttur - Воскресенье, 22.10.2017, 00:59
 
Ответить
СообщениеДля однозначных немного ужал :)
Код
=--ИНДЕКС(ПСТР($C3;{1;3;6;8;11;13};1);СТОЛБЕЦ(A1))

Или отдельными формулами для 6 столбцов:
Код
=--ПСТР($C3;1;1)

Код
=--ПСТР($C3;3;1)

...и т.д.

Автор - vikttur
Дата добавления - 22.10.2017 в 00:58
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Извлечение всех данных из ячейки (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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