У нас есть ячейки А1-А4: оаврр342 алтрва.*?№:43,2ДЦЫОВФЫРАаплварп ВОЫрыопиарн4234,ЫА,№%№%: ,АДБВЫ(№(%?№,ЮЭЭ322222222222,№%Д)ВГАПВЫРП и так далее В ячейки B1-B4 мне нужно извлечь числа от 1 до последнего (т.е. всё начиная с 1 цифры и заканчивая последней, т.к. если будет 15,5, например, то чтобы выцепляло 15,5, а не 155) если будет выфавы";"№1423аво24 - тоже в принципе подходит, чтобы выцепило 1423аво24.
У нас есть ячейки А1-А4: оаврр342 алтрва.*?№:43,2ДЦЫОВФЫРАаплварп ВОЫрыопиарн4234,ЫА,№%№%: ,АДБВЫ(№(%?№,ЮЭЭ322222222222,№%Д)ВГАПВЫРП и так далее В ячейки B1-B4 мне нужно извлечь числа от 1 до последнего (т.е. всё начиная с 1 цифры и заканчивая последней, т.к. если будет 15,5, например, то чтобы выцепляло 15,5, а не 155) если будет выфавы";"№1423аво24 - тоже в принципе подходит, чтобы выцепило 1423аво24.Vladlen
Сообщение отредактировал Vladlen - Среда, 10.09.2014, 12:11
Vladlen Чем не устроила формула, ссылка на которую дана в прошлой теме?
В прошлой теме я указывал наименование товара, и у меня шли салатники, а сразу после них размер. Формула работала через правсимв, поэтому в наименовании ...салатник 30см, оно возвращало "30", а у меня новое задание, где в наименовании, например, салатник декорированный 30см, и оно мне возвращает "декорированный 30", что не подходит для дальнейших расчётов... поэтому я в новом задании пересмотрел формулу и написал формулу только для вытягивании чисел и всё.
Vladlen Чем не устроила формула, ссылка на которую дана в прошлой теме?
В прошлой теме я указывал наименование товара, и у меня шли салатники, а сразу после них размер. Формула работала через правсимв, поэтому в наименовании ...салатник 30см, оно возвращало "30", а у меня новое задание, где в наименовании, например, салатник декорированный 30см, и оно мне возвращает "декорированный 30", что не подходит для дальнейших расчётов... поэтому я в новом задании пересмотрел формулу и написал формулу только для вытягивании чисел и всё.Vladlen
В прошлой теме я дал ссылку на формулу, но формулу дополнил функцией ЕСЛИ. Зайдя по ссылке увидите формулу массива которая будет выдавать то что описано в сообщении№1. Вы формулу эту пробовали на своих данных? Вложил файл с формулой. От #Н/Д можно избавиться ЕСЛИОШИБКА.
В прошлой теме я дал ссылку на формулу, но формулу дополнил функцией ЕСЛИ. Зайдя по ссылке увидите формулу массива которая будет выдавать то что описано в сообщении№1. Вы формулу эту пробовали на своих данных? Вложил файл с формулой. От #Н/Д можно избавиться ЕСЛИОШИБКА.gling
Добрый день. Люди помогите вызволить число из строки. Собственно есть строка "X1Z1=106,666666666667". Мне нужно вызволить число в отдельную ячейку которое после знака ровно (я его еще выделил жирным шрифтом). Проблема еще в том что количество знаков может быть разное.
Данный файл прилагаю.
Добрый день. Люди помогите вызволить число из строки. Собственно есть строка "X1Z1=106,666666666667". Мне нужно вызволить число в отдельную ячейку которое после знака ровно (я его еще выделил жирным шрифтом). Проблема еще в том что количество знаков может быть разное.
Если бы нужны были только целые числа, то подошла бы UDF:
[vba]
Код
Function ИЗВЛЕЧЬ_ЦЕЛЫЕ(ParamArray Диапазон()) '--------------------------------------------------------------------------------------- ' Author : Alex_ST, v__step, nerv ' URL : http://www.excelworld.ru/forum/3-1012-12791-16-1324630051 ' Topic : Функция (UDF) "ИЗВЛЕЧЬЦЕЛЫЕ" ' Purpose : Создать массив из целых чисел, извлечённых из текста произвольно расположенных ячеек ' Notes : К полученному массиву можно применять любые стандартные формулы листа '--------------------------------------------------------------------------------------- Dim rArea, rCell, sStr$, oMatches, i&, Arr() On Error GoTo xlErrEXIT For Each rArea In Диапазон For Each rCell In IIf(rArea.Count = 1, Array(rArea.Value), rArea.Value) sStr = sStr & " " & rCell Next rCell Next rArea With CreateObject("VBScript.RegExp"): .Global = True: .Pattern = "\d+": Set oMatches = .Execute(sStr): End With If oMatches.Count = 0 Then ИЗВЛЕЧЬ_ЦЕЛЫЕ = CVErr(xlErrNA): Exit Function ' вернуть ошибку #Н/Д если чисел нет ' If oMatches Is Nothing Then ИЗВЛЕЧЬ_ЦЕЛЫЕ = CVErr(xlErrNA): Exit Function ' вернуть ошибку #Н/Д если чисел нет ReDim Arr(1 To oMatches.Count) For i = 0 To oMatches.Count - 1: Arr(i + 1) = CLng(oMatches(i).Value): Next i ИЗВЛЕЧЬ_ЦЕЛЫЕ = Arr xlErrEXIT: If Err Then ИЗВЛЕЧЬ_ЦЕЛЫЕ = CVErr(xlErrValue) ' вернуть ошибку #ЗНАЧ! если была ошибка End Function
[/vba]
Если бы нужны были только целые числа, то подошла бы UDF:
[vba]
Код
Function ИЗВЛЕЧЬ_ЦЕЛЫЕ(ParamArray Диапазон()) '--------------------------------------------------------------------------------------- ' Author : Alex_ST, v__step, nerv ' URL : http://www.excelworld.ru/forum/3-1012-12791-16-1324630051 ' Topic : Функция (UDF) "ИЗВЛЕЧЬЦЕЛЫЕ" ' Purpose : Создать массив из целых чисел, извлечённых из текста произвольно расположенных ячеек ' Notes : К полученному массиву можно применять любые стандартные формулы листа '--------------------------------------------------------------------------------------- Dim rArea, rCell, sStr$, oMatches, i&, Arr() On Error GoTo xlErrEXIT For Each rArea In Диапазон For Each rCell In IIf(rArea.Count = 1, Array(rArea.Value), rArea.Value) sStr = sStr & " " & rCell Next rCell Next rArea With CreateObject("VBScript.RegExp"): .Global = True: .Pattern = "\d+": Set oMatches = .Execute(sStr): End With If oMatches.Count = 0 Then ИЗВЛЕЧЬ_ЦЕЛЫЕ = CVErr(xlErrNA): Exit Function ' вернуть ошибку #Н/Д если чисел нет ' If oMatches Is Nothing Then ИЗВЛЕЧЬ_ЦЕЛЫЕ = CVErr(xlErrNA): Exit Function ' вернуть ошибку #Н/Д если чисел нет ReDim Arr(1 To oMatches.Count) For i = 0 To oMatches.Count - 1: Arr(i + 1) = CLng(oMatches(i).Value): Next i ИЗВЛЕЧЬ_ЦЕЛЫЕ = Arr xlErrEXIT: If Err Then ИЗВЛЕЧЬ_ЦЕЛЫЕ = CVErr(xlErrValue) ' вернуть ошибку #ЗНАЧ! если была ошибка End Function