Думаю, для гуру сего форума не составит труда помочь делетанту в легком вопросе?))) Есть значения в столбце (0/24/48; 120/0/72; 0/0/72 и тд) Каждое из трех чисел это определенный параметр и мне необходимо разделить это значение на три столбца, чтобы каждое из трех чисел было в отдельном столбце.
Спасибо!!!
ДОбрый день, товарищи!!!
Думаю, для гуру сего форума не составит труда помочь делетанту в легком вопросе?))) Есть значения в столбце (0/24/48; 120/0/72; 0/0/72 и тд) Каждое из трех чисел это определенный параметр и мне необходимо разделить это значение на три столбца, чтобы каждое из трех чисел было в отдельном столбце.
Это понятно) Сам столбец с тремя значениями нужно, чтобы остался целым, Нужно добавить три столбца в прописать туда формулу таким образом, чтобы в первый столбец попадало значение до первой "/", во второй столбец значение между "/", и в третий, соответственно, значение после второй "/" В последствии, при добавлении новых ячеек с такими значениями, в новые три столбца числа автоматически калькулировались. Как то так. =)
Это понятно) Сам столбец с тремя значениями нужно, чтобы остался целым, Нужно добавить три столбца в прописать туда формулу таким образом, чтобы в первый столбец попадало значение до первой "/", во второй столбец значение между "/", и в третий, соответственно, значение после второй "/" В последствии, при добавлении новых ячеек с такими значениями, в новые три столбца числа автоматически калькулировались. Как то так. =)andreyjah
Вообще-то можно сделать стандартными функциями, но проще с UDF: в B3 и тянем вправо и вниз
Код
=Substring($A3,"/",COLUMN()-1,COLUMN()-1)
код в модуль: [vba]
Код
Function Substring(Текст As String, Символ_разделитель As String, _ Начальный_Номер_фрагмента As Long, Конечный_Номер_фрагмента As Long) As String '--------------------------------------------------------------------------------------- ' URL : http://www.planetaexcel.ru/tip.php?aid=54 ' Purpose : Выделяет из текста субстринг/и, ориентируясь по символам-разделителям ' Notes : Substring(текст; символ_разделитель; Начальный_Номер_фрагмента, Конечный_Номер_фрагмента), где ' текст - текст, который делим ' символ_разделитель - символ, который надо считать разделителем фрагментов ' Начальный_Номер_фрагмента - порядковый номер фрагмента, с которого нужна выборка ' Конечный_Номер_фрагмента - порядковый номер фрагмента, по который нужна выборка '--------------------------------------------------------------------------------------- On Error Resume Next Dim sArr() As String, li As Long sArr = Split(Application.Trim(Текст), Символ_разделитель) If Конечный_Номер_фрагмента > 0 Then Начальный_Номер_фрагмента = Начальный_Номер_фрагмента - 1 Конечный_Номер_фрагмента = Конечный_Номер_фрагмента - 1 For li = Начальный_Номер_фрагмента To Конечный_Номер_фрагмента Substring = IIf(li = Начальный_Номер_фрагмента, sArr(li), Substring & _ Символ_разделитель & sArr(li)) Next li Else Substring = Split(Application.Trim(Текст), _ Символ_разделитель)(Начальный_Номер_фрагмента - 1) End If End Function
[/vba]
Вообще-то можно сделать стандартными функциями, но проще с UDF: в B3 и тянем вправо и вниз
Код
=Substring($A3,"/",COLUMN()-1,COLUMN()-1)
код в модуль: [vba]
Код
Function Substring(Текст As String, Символ_разделитель As String, _ Начальный_Номер_фрагмента As Long, Конечный_Номер_фрагмента As Long) As String '--------------------------------------------------------------------------------------- ' URL : http://www.planetaexcel.ru/tip.php?aid=54 ' Purpose : Выделяет из текста субстринг/и, ориентируясь по символам-разделителям ' Notes : Substring(текст; символ_разделитель; Начальный_Номер_фрагмента, Конечный_Номер_фрагмента), где ' текст - текст, который делим ' символ_разделитель - символ, который надо считать разделителем фрагментов ' Начальный_Номер_фрагмента - порядковый номер фрагмента, с которого нужна выборка ' Конечный_Номер_фрагмента - порядковый номер фрагмента, по который нужна выборка '--------------------------------------------------------------------------------------- On Error Resume Next Dim sArr() As String, li As Long sArr = Split(Application.Trim(Текст), Символ_разделитель) If Конечный_Номер_фрагмента > 0 Then Начальный_Номер_фрагмента = Начальный_Номер_фрагмента - 1 Конечный_Номер_фрагмента = Конечный_Номер_фрагмента - 1 For li = Начальный_Номер_фрагмента To Конечный_Номер_фрагмента Substring = IIf(li = Начальный_Номер_фрагмента, sArr(li), Substring & _ Символ_разделитель & sArr(li)) Next li Else Substring = Split(Application.Trim(Текст), _ Символ_разделитель)(Начальный_Номер_фрагмента - 1) End If End Function
Даже если слов не будет, можно текст по столбцам, но если добавить новые ячейки со значениями, нужно будет опять делить по столбцам. А здесь нужна формула.
Даже если слов не будет, можно текст по столбцам, но если добавить новые ячейки со значениями, нужно будет опять делить по столбцам. А здесь нужна формула.andreyjah
Сообщение отредактировал andreyjah - Среда, 16.04.2014, 17:39
Неее, допустим, что слов не будет. Смысл в том что столбец со значениями будет пополняться и с каждым новым значением нужно будет снова разделять весь столбец на 3, чтобы получить результаты. А по формуле, новые результаты будут выводиться автоматом, исходя из заданных параметров формулы. Вот я и хочу понять, как это сделать. Текст по столбцам более легкий, но менее действенный способ и единоразовый.
Неее, допустим, что слов не будет. Смысл в том что столбец со значениями будет пополняться и с каждым новым значением нужно будет снова разделять весь столбец на 3, чтобы получить результаты. А по формуле, новые результаты будут выводиться автоматом, исходя из заданных параметров формулы. Вот я и хочу понять, как это сделать. Текст по столбцам более легкий, но менее действенный способ и единоразовый.andreyjah
Мой вариант попробуйте понять - использовать просто. Если код в персональной книге макросов - тогда макросы можно не разрешать, но синтаксис на листе будет чуть другой, выбирайте/настраивайте мастером. Если код поместите в надстройку - тогда синтаксис как в посте, я сам с листа копировал.
Мой вариант попробуйте понять - использовать просто. Если код в персональной книге макросов - тогда макросы можно не разрешать, но синтаксис на листе будет чуть другой, выбирайте/настраивайте мастером. Если код поместите в надстройку - тогда синтаксис как в посте, я сам с листа копировал.Hugo