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

Вход

Регистрация

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

 

= Мир MS Excel/Вытащить из ячейки с текстом нужные числа . - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Вытащить из ячейки с текстом нужные числа . (Формулы/Formulas)
Вытащить из ячейки с текстом нужные числа .
akademik90 Дата: Пятница, 13.01.2017, 14:38 | Сообщение № 1
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
Добрый день уважаемые форумчане! Помогите решить проблемку у меня в файле с выборкой нужно сделать так , чтобы не проставлять самому диаметры по фланцам, чтобы формулой в тексте находит из ячейки А 1" , 10" 16" 18" 1/2"и рядом в ячейке D писалось 1 , 10 16 18 0,5 просто числа без текста где есть 1/2 чтоб в другой ячейке стало 0,5
И также чтоб можно было и по классам сделать из ячейки А тесть Class 150 Class 1500 Class 900 Class 600 Class 2500 и на против в ячейке Е проставлялись просто цифры без какого либо текста! Заранее спасибо!
К сообщению приложен файл: 2916277.xlsx (21.7 Kb)


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI

Сообщение отредактировал akademik90 - Пятница, 13.01.2017, 14:39
 
Ответить
СообщениеДобрый день уважаемые форумчане! Помогите решить проблемку у меня в файле с выборкой нужно сделать так , чтобы не проставлять самому диаметры по фланцам, чтобы формулой в тексте находит из ячейки А 1" , 10" 16" 18" 1/2"и рядом в ячейке D писалось 1 , 10 16 18 0,5 просто числа без текста где есть 1/2 чтоб в другой ячейке стало 0,5
И также чтоб можно было и по классам сделать из ячейки А тесть Class 150 Class 1500 Class 900 Class 600 Class 2500 и на против в ячейке Е проставлялись просто цифры без какого либо текста! Заранее спасибо!

Автор - akademik90
Дата добавления - 13.01.2017 в 14:38
akademik90 Дата: Пятница, 13.01.2017, 15:31 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
akademik90, Прошу кто может помочь не проходите мимо :(


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI
 
Ответить
Сообщениеakademik90, Прошу кто может помочь не проходите мимо :(

Автор - akademik90
Дата добавления - 13.01.2017 в 15:31
buchlotnik Дата: Пятница, 13.01.2017, 15:39 | Сообщение № 3
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
а вот с этими вариантами что должно вылезти:1 1/2" , 3/4 "with 1/2", 3/4'' , 1 1/4" , 18"x 1 1/2"?
 
Ответить
Сообщениеа вот с этими вариантами что должно вылезти:1 1/2" , 3/4 "with 1/2", 3/4'' , 1 1/4" , 18"x 1 1/2"?

Автор - buchlotnik
Дата добавления - 13.01.2017 в 15:39
akademik90 Дата: Пятница, 13.01.2017, 15:56 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
buchlotnik, 1/2=0,5 3/4=0,75 1/4=0,25 на текст воще не обращать внимание а если 1 1/4=1,25 ; 1 1/2=1,5


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI

Сообщение отредактировал akademik90 - Пятница, 13.01.2017, 16:20
 
Ответить
Сообщение buchlotnik, 1/2=0,5 3/4=0,75 1/4=0,25 на текст воще не обращать внимание а если 1 1/4=1,25 ; 1 1/2=1,5

Автор - akademik90
Дата добавления - 13.01.2017 в 15:56
buchlotnik Дата: Пятница, 13.01.2017, 16:30 | Сообщение № 5
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
зверинец по символам и пробелам жуткий - сколько смог вынул на регулярках [vba]
Код
Function diam(t$)
With CreateObject("VBScript.Regexp")
    .Pattern = "[\d\s\/]+(?=""|''|”)"
    diam = .Execute(t)(0)
End With
End Function

Function class(t$)
With CreateObject("VBScript.Regexp")
    .Pattern = "(Class|class|ANSI)\s[A-Za-z\s]*[\d\s]+"
    class = .Execute(t)(0)
    .Pattern = "\D"
    .Global = True
    class = .Replace(class, "")
    End With
End Function
[/vba]

UPD файл перезалил
К сообщению приложен файл: 2916277-2-2-.xlsm (32.3 Kb)


Сообщение отредактировал buchlotnik - Пятница, 13.01.2017, 17:08
 
Ответить
Сообщениезверинец по символам и пробелам жуткий - сколько смог вынул на регулярках [vba]
Код
Function diam(t$)
With CreateObject("VBScript.Regexp")
    .Pattern = "[\d\s\/]+(?=""|''|”)"
    diam = .Execute(t)(0)
End With
End Function

Function class(t$)
With CreateObject("VBScript.Regexp")
    .Pattern = "(Class|class|ANSI)\s[A-Za-z\s]*[\d\s]+"
    class = .Execute(t)(0)
    .Pattern = "\D"
    .Global = True
    class = .Replace(class, "")
    End With
End Function
[/vba]

UPD файл перезалил

Автор - buchlotnik
Дата добавления - 13.01.2017 в 16:30
bmv98rus Дата: Пятница, 13.01.2017, 17:21 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4110
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
buchlotnik,
В свой адрес не принимайте только. :-)
akademik90,
размеры стадартизованы, можно наверное их справочником сделать и элеменатрным поиском и заменой на цифирку без ковычек и десятиченую дробь? или я не учитываю количесво возможных вариантов?

Для двух значение фоормула массива
Код
=INDEX({1;0,5};SUM(ROW($A$1:$A$2)*NOT(ISERROR(SIGN(FIND({" 1""";" 1/2"""};A4))))

для классов
Код
=INDEX({150;1500;900;600;2500};SUM(ROW($A$1:$A$5)*NOT(ISERROR(SIGN(FIND("Class " &{150;1500;900;600;2500};A4))))))


Замечательный Временно просто медведь , процентов на 20.

Сообщение отредактировал bmv98rus - Пятница, 13.01.2017, 17:56
 
Ответить
Сообщениеbuchlotnik,
В свой адрес не принимайте только. :-)
akademik90,
размеры стадартизованы, можно наверное их справочником сделать и элеменатрным поиском и заменой на цифирку без ковычек и десятиченую дробь? или я не учитываю количесво возможных вариантов?

Для двух значение фоормула массива
Код
=INDEX({1;0,5};SUM(ROW($A$1:$A$2)*NOT(ISERROR(SIGN(FIND({" 1""";" 1/2"""};A4))))

для классов
Код
=INDEX({150;1500;900;600;2500};SUM(ROW($A$1:$A$5)*NOT(ISERROR(SIGN(FIND("Class " &{150;1500;900;600;2500};A4))))))

Автор - bmv98rus
Дата добавления - 13.01.2017 в 17:21
buchlotnik Дата: Пятница, 13.01.2017, 20:25 | Сообщение № 7
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
В свой адрес не принимайте только. :-)
а вот возьму да и приму - покажите в файле работоспособность ваших формул >( >(
с учётом того, что кавычки встречаются двух видов, да ещё и кавычки в виде двух апострофов, не считая мракобесия с пробелами, я не сильно понимаю как должен выглядеть словарь для "элементарного поиска"

для классов (обращаю внимание что само слово там далеко не всегда одиноко, и не понятно что делать с ANSI) при наличии фиксированного списка на формулах проще
Код
=ПРОСМОТР(;-1/ПОИСК("Class*"&{150;300;600;900;1500;2500};A4);{150;300;600;900;1500;2500})
К сообщению приложен файл: 2916277-2-2-1-.xlsm (35.8 Kb)


Сообщение отредактировал buchlotnik - Пятница, 13.01.2017, 21:13
 
Ответить
Сообщение
Цитата
В свой адрес не принимайте только. :-)
а вот возьму да и приму - покажите в файле работоспособность ваших формул >( >(
с учётом того, что кавычки встречаются двух видов, да ещё и кавычки в виде двух апострофов, не считая мракобесия с пробелами, я не сильно понимаю как должен выглядеть словарь для "элементарного поиска"

для классов (обращаю внимание что само слово там далеко не всегда одиноко, и не понятно что делать с ANSI) при наличии фиксированного списка на формулах проще
Код
=ПРОСМОТР(;-1/ПОИСК("Class*"&{150;300;600;900;1500;2500};A4);{150;300;600;900;1500;2500})

Автор - buchlotnik
Дата добавления - 13.01.2017 в 20:25
bmv98rus Дата: Пятница, 13.01.2017, 21:18 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4110
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
buchlotnik, Ну я ж просил :-) . Исходные действительно на чистоту не исследовал, просто предположил, при этом накидал формулу по быстрому, что б прсто проверить что заработает , так сказать проверить гипотезу. Ну и все от задачи зависит. так что не будем спорить в старый новый год :-). C Наступающим.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщениеbuchlotnik, Ну я ж просил :-) . Исходные действительно на чистоту не исследовал, просто предположил, при этом накидал формулу по быстрому, что б прсто проверить что заработает , так сказать проверить гипотезу. Ну и все от задачи зависит. так что не будем спорить в старый новый год :-). C Наступающим.

Автор - bmv98rus
Дата добавления - 13.01.2017 в 21:18
akademik90 Дата: Суббота, 14.01.2017, 13:22 | Сообщение № 9
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
Function diam(t$)
With CreateObject("VBScript.Regexp")
.Pattern = "[\d\s\/]+(?=""|''|”)"
diam = .Execute(t)(0)
End With
End Function

Function class(t$)
With CreateObject("VBScript.Regexp")
.Pattern = "(Class|class|ANSI)\s[A-Za-z\s]*[\d\s]+"
class = .Execute(t)(0)
.Pattern = "\D"
.Global = True
class = .Replace(class, "")
End With
End Function


КАК ОНА РАБОТАЕТ ? Я ТАК И НЕ ПОНЯЛ МОЖЕШЬ ОБЪЯСНИТЬ . ИЛИ СВОЮ ФОРМУЛУ ОБЪЯСНИТЬ КАК СДЕЛАТЬ АНАЛОГИЮ!


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI

Сообщение отредактировал akademik90 - Суббота, 14.01.2017, 13:23
 
Ответить
Сообщение
Function diam(t$)
With CreateObject("VBScript.Regexp")
.Pattern = "[\d\s\/]+(?=""|''|”)"
diam = .Execute(t)(0)
End With
End Function

Function class(t$)
With CreateObject("VBScript.Regexp")
.Pattern = "(Class|class|ANSI)\s[A-Za-z\s]*[\d\s]+"
class = .Execute(t)(0)
.Pattern = "\D"
.Global = True
class = .Replace(class, "")
End With
End Function


КАК ОНА РАБОТАЕТ ? Я ТАК И НЕ ПОНЯЛ МОЖЕШЬ ОБЪЯСНИТЬ . ИЛИ СВОЮ ФОРМУЛУ ОБЪЯСНИТЬ КАК СДЕЛАТЬ АНАЛОГИЮ!

Автор - akademik90
Дата добавления - 14.01.2017 в 13:22
buchlotnik Дата: Суббота, 14.01.2017, 13:34 | Сообщение № 10
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
КАК ОНА РАБОТАЕТ ?
В смысле "как"? Это UDF (пользовательская функция) её, точнее ИХ - тут их две - нужно добавить в программный модуль файла и использовать. Чтобы делать какую-то аналогию необходимо изучать регулярные выражения


Сообщение отредактировал buchlotnik - Воскресенье, 15.01.2017, 00:27
 
Ответить
Сообщение
Цитата
КАК ОНА РАБОТАЕТ ?
В смысле "как"? Это UDF (пользовательская функция) её, точнее ИХ - тут их две - нужно добавить в программный модуль файла и использовать. Чтобы делать какую-то аналогию необходимо изучать регулярные выражения

Автор - buchlotnik
Дата добавления - 14.01.2017 в 13:34
akademik90 Дата: Суббота, 14.01.2017, 22:53 | Сообщение № 11
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
2916277-2-2-.xlsm(32Kb)

В вашем файле нету же макросов? просто формула же? А почему я ее копирую в другой файл она не работает ?


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI
 
Ответить
Сообщение
2916277-2-2-.xlsm(32Kb)

В вашем файле нету же макросов? просто формула же? А почему я ее копирую в другой файл она не работает ?

Автор - akademik90
Дата добавления - 14.01.2017 в 22:53
buchlotnik Дата: Суббота, 14.01.2017, 23:39 | Сообщение № 12
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Цитата
нету же макросов?
ну как нету-то? если я вам в посте привожу ПРОГРАММНЫЙ КОД пользовательской функции... И про необходимость добавить в модуль написал - вы реально не читаете, что вам пишут?
 
Ответить
Сообщение
Цитата
нету же макросов?
ну как нету-то? если я вам в посте привожу ПРОГРАММНЫЙ КОД пользовательской функции... И про необходимость добавить в модуль написал - вы реально не читаете, что вам пишут?

Автор - buchlotnik
Дата добавления - 14.01.2017 в 23:39
Wasilich Дата: Воскресенье, 15.01.2017, 10:38 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
кавычки встречаются двух видов, да ещё и кавычки в виде двух апострофов
Если "Найти и заменить" апострофы на кавычки, то можно применить формулу buchlotnik, сообщение №7
Код
=ПРОСМОТР(;-1/ПОИСК({" 1""";"1/2""";"1/4""";"3/4""";"1 1/2""";"1 1/4";" 2""";" 3""";" 4""";" 6""";" 8""";"10""";"12""";"14""";"16""";"18""";"20"""};A4);{1;0,5;0,25;0,75;1,5;1,25;2;3;4;6;8;10;12;14;16;18;20})

[p.s.]Исправил.[/p.s.]


Сообщение отредактировал Wasilich - Воскресенье, 15.01.2017, 16:16
 
Ответить
Сообщение
кавычки встречаются двух видов, да ещё и кавычки в виде двух апострофов
Если "Найти и заменить" апострофы на кавычки, то можно применить формулу buchlotnik, сообщение №7
Код
=ПРОСМОТР(;-1/ПОИСК({" 1""";"1/2""";"1/4""";"3/4""";"1 1/2""";"1 1/4";" 2""";" 3""";" 4""";" 6""";" 8""";"10""";"12""";"14""";"16""";"18""";"20"""};A4);{1;0,5;0,25;0,75;1,5;1,25;2;3;4;6;8;10;12;14;16;18;20})

[p.s.]Исправил.[/p.s.]

Автор - Wasilich
Дата добавления - 15.01.2017 в 10:38
akademik90 Дата: Воскресенье, 15.01.2017, 12:34 | Сообщение № 14
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
Wasilich,
=ПРОСМОТР(;-1/ПОИСК({" 1""";"1/2""";"1/4""";"3/4""";"1 1/2""";"1 1/4";" 2""";"3""";"4""";"6""";"8""";"10""";"12""";"14""";"16""";"18""";"20"""};A4);{1;0,5;0,25;0,75;1,5;1,25;2;3;4;6;8;10;12;14;16;18;20})

Применил Вашу формулу ,почти все идеально, не пойму одно : Везде где есть 1/4, 3/4, 1 1/4, 1 3/4, формула везде ставит 4
НЕ могу понять


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI

Сообщение отредактировал akademik90 - Воскресенье, 15.01.2017, 13:31
 
Ответить
Сообщение Wasilich,
=ПРОСМОТР(;-1/ПОИСК({" 1""";"1/2""";"1/4""";"3/4""";"1 1/2""";"1 1/4";" 2""";"3""";"4""";"6""";"8""";"10""";"12""";"14""";"16""";"18""";"20"""};A4);{1;0,5;0,25;0,75;1,5;1,25;2;3;4;6;8;10;12;14;16;18;20})

Применил Вашу формулу ,почти все идеально, не пойму одно : Везде где есть 1/4, 3/4, 1 1/4, 1 3/4, формула везде ставит 4
НЕ могу понять

Автор - akademik90
Дата добавления - 15.01.2017 в 12:34
akademik90 Дата: Воскресенье, 15.01.2017, 12:42 | Сообщение № 15
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
buchlotnik,
ну как нету-то? если я вам в посте привожу ПРОГРАММНЫЙ КОД пользовательской функции... И про необходимость добавить в модуль написал - вы реально не читаете, что вам пишут?

Я все читаю ! Скачал Ваш файл , зашел в Макросы а там ничего нет вот и удивился! Может я и что то недопонимаю так как я не асс в Эксел. Подскажите начинающему пользователю,
нужно добавить в программный модуль файла
Вот это для меня темный лес! Эти выражения! Спасибо за терпение.


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI
 
Ответить
Сообщениеbuchlotnik,
ну как нету-то? если я вам в посте привожу ПРОГРАММНЫЙ КОД пользовательской функции... И про необходимость добавить в модуль написал - вы реально не читаете, что вам пишут?

Я все читаю ! Скачал Ваш файл , зашел в Макросы а там ничего нет вот и удивился! Может я и что то недопонимаю так как я не асс в Эксел. Подскажите начинающему пользователю,
нужно добавить в программный модуль файла
Вот это для меня темный лес! Эти выражения! Спасибо за терпение.

Автор - akademik90
Дата добавления - 15.01.2017 в 12:42
Pelena Дата: Воскресенье, 15.01.2017, 14:21 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Что такое макросы
UDF - это функция пользователя
Нажмите в файле Alt+F11 и Вы её увидите


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЧто такое макросы
UDF - это функция пользователя
Нажмите в файле Alt+F11 и Вы её увидите

Автор - Pelena
Дата добавления - 15.01.2017 в 14:21
akademik90 Дата: Воскресенье, 15.01.2017, 15:12 | Сообщение № 17
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
Pelena, Спасибо теперь понял!


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI
 
Ответить
СообщениеPelena, Спасибо теперь понял!

Автор - akademik90
Дата добавления - 15.01.2017 в 15:12
akademik90 Дата: Воскресенье, 15.01.2017, 15:28 | Сообщение № 18
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
Pelena, Wasilich, buchlotnik, Посмотрите что ни так в этой формуле?
=ПРОСМОТР(;-1/ПОИСК({" 1""";"1/2""";"1/4""";"3/4""";"1 1/2""";"1 1/4";" 2""";"3""";"4""";"6""";"8""";"10""";"12""";"14""";"16""";"18""";"20"""};A4);{1;0,5;0,25;0,75;1,5;1,25;2;3;4;6;8;10;12;14;16;18;20})


Применил Вашу формулу ,почти все идеально, не пойму одно : Везде где есть 1/4, 3/4, 1 1/4, 1 3/4, формула везде ставит 4
НЕ могу понять. Хотя там нормально прописаны КАВЫЧКИ !


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI
 
Ответить
СообщениеPelena, Wasilich, buchlotnik, Посмотрите что ни так в этой формуле?
=ПРОСМОТР(;-1/ПОИСК({" 1""";"1/2""";"1/4""";"3/4""";"1 1/2""";"1 1/4";" 2""";"3""";"4""";"6""";"8""";"10""";"12""";"14""";"16""";"18""";"20"""};A4);{1;0,5;0,25;0,75;1,5;1,25;2;3;4;6;8;10;12;14;16;18;20})


Применил Вашу формулу ,почти все идеально, не пойму одно : Везде где есть 1/4, 3/4, 1 1/4, 1 3/4, формула везде ставит 4
НЕ могу понять. Хотя там нормально прописаны КАВЫЧКИ !

Автор - akademik90
Дата добавления - 15.01.2017 в 15:28
Pelena Дата: Воскресенье, 15.01.2017, 15:45 | Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 19187
Репутация: 4421 ±
Замечаний: ±

Excel 365 & Mac Excel
Попробуйте перед 4 поставить пробел
" 4"""


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеПопробуйте перед 4 поставить пробел
" 4"""

Автор - Pelena
Дата добавления - 15.01.2017 в 15:45
akademik90 Дата: Воскресенье, 15.01.2017, 15:58 | Сообщение № 20
Группа: Заблокированные
Ранг: Участник
Сообщений: 99
Репутация: 3 ±
Замечаний: 100% ±

Excel 2013 -2016
Pelena, Спасибо! В точку


HOC EST VIVERE BIS, VITA POSSE PRIORE FRUI
 
Ответить
Сообщение Pelena, Спасибо! В точку

Автор - akademik90
Дата добавления - 15.01.2017 в 15:58
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Вытащить из ячейки с текстом нужные числа . (Формулы/Formulas)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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