Страницы: 1
RSS
Перевод из м в см в формате "Ш х В х Г", перевести значения из м в см
 
Приветствую вас! У вас очень классный форум с отзывчивыми людьми! Стараюсь вас беспокоить со своими вопросами как можно реже, но что то надоело раскладывать ячейку на столбцы-> преобразовывать и сцеплять обратно...Задача: Перевести значения "м" из ячейки А в "см" ячейки "B". При чем, точку (разделитель целых чисел)  если она встречается, нужно заменить на запятую
Данная функция будет полезна очень многим, желательно ее сделать универсальную для запросов каждого нуждающегося. Вводишь в любой столбец значение и в соседних выводит преобразованный результат. Но сойдет и просто м->см
 
ну простейший вариант формулами
Лень двигатель прогресса, доказано!!!
 
Сергей, а если точки не обижать? )
=ПСТР(A10;3;3)/10&" х "&ПСТР(A10;11;3)/10&" х "&ПСТР(A10;19;3)/10
=--ПСТР(A10;3;3)&" х "&--ПСТР(A10;11;3)&" х "&--ПСТР(A10;19;3)
 
Цитата
rafa_el написал:
Данная функция будет полезна очень многим
Кто бы сомневался ))
 
Макрос устроит?
 
Цитата
rafa_el написал:
Данная функция будет полезна очень многим, желательно ее сделать универсальную для запросов каждого нуждающегося
не знаю поможет-ли это всем нуждающимся... но функцию я накрапал, которая числа, находячиеся в текстовой строке, умножает на указаннй коэффициент к
Код
Function MultiplyTxt$(s$, k, Optional Frmt$ = "")
  Dim re, m, i&
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = "[\d,.]+": re.Global = True
  If Not re.Test(s) Then Exit Function
  Set m = re.Execute(s)
  For i = 0 To m.Count - 1
    s = Replace(s, m(i), Format(Val(Replace(m(i), ",", ".")) * k, Frmt))
  Next
  MultiplyTxt = s
End Function
пример использования - во вложении. и можно метры переводить в дюймы или футы, а тонны в унции или пуды и наоборот
Изменено: Ігор Гончаренко - 30.11.2018 13:28:32
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Ігор Гончаренко написал:
пример использования - во вложении
Забыл вложение )
 
Юра, таки-да, забыл((
вот видно человек за порядком следит, не то, что некоторые разгильдяи... абы отписаться как-нибудь
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Сергей, Во первых, спасибо!Во вторых, я думаю нуждающиеся то же оценят  :) . Объем сами посчитают))
В третьих  почему то в некоторых значениях в решении Ігор Гончаренко, проскальзывают не правильные значения в двух последних столбцах. Например:
0.050 х 0.130 х   0.050 м5 х 13 х 5 см50 х 130 х 50 мм0,00,05 х 0,13 х 0,00,05 м0,00,0500 х 0,130 х 0,00,0500 м
0.260 х 0.060 х 0.260 м26 х 6 х 26 см260 х 60 х 260 мм0,20,06 х 0,06 х 0,20,06 м0,20,0600 х 0,060 х 0,20,0600 м
0.070 х 0.070 х   0.070 м7 х 7 х 7 см70 х 70 х 70 мм0,00,00,07 х 0,00,00,07 х 0,00,00,07 м0,00,00,07000 х 0,00,00,07000 х   0,00,00,07000 м
Не знаю с чем это связано, возможно, в повторении параметров Ш х Г х В  
 
Нет столбцов, есть текст в сообщении. Нужно показывать ошибку.
 
а Вы файл прицепите с кривыми результатами там и разобраться можно, что не так
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Вот
 
да, уж... накосячил слегка
используйте это:
Код
Function MultiplyTxt$(s$, k, Optional Frmt$ = "")
  Dim re, m, i&, b&, rz
  Set re = CreateObject("VBScript.RegExp"): re.Pattern = "[\d,.]+": re.Global = True
  If Not re.Test(s) Then Exit Function
  Set m = re.Execute(s)
  rz = Left(s, m(i).firstindex) & Format(Val(Replace(m(i), ",", ".")) * k, Frmt)
  For i = 1 To m.Count - 1
    b = m(i - 1).firstindex + Len(m(i - 1))
    rz = rz & Mid(s, b + 1, m(i).firstindex - b) & Format(Val(Replace(m(i), ",", ".")) * k, Frmt)
  Next
  b = m(i - 1).firstindex + Len(m(i - 1)):  rz = rz & Right(s, Len(s) - b)
  MultiplyTxt = rz
End Function
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх