vol4ok
Дата: Пятница, 15.01.2016, 18:06 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Просьба подсказать метод/формулы c с помощью которых можно преобразовать текстовые данные вида: 2 часов 40 минут 5 секунд 6 минут в значения: 2:40 0:00 0:60 с кастомным типом [ч]:мм для их последующего суммирования
Просьба подсказать метод/формулы c с помощью которых можно преобразовать текстовые данные вида: 2 часов 40 минут 5 секунд 6 минут в значения: 2:40 0:00 0:60 с кастомным типом [ч]:мм для их последующего суммирования vol4ok
Сообщение отредактировал vol4ok - Пятница, 15.01.2016, 18:18
Ответить
Сообщение Просьба подсказать метод/формулы c с помощью которых можно преобразовать текстовые данные вида: 2 часов 40 минут 5 секунд 6 минут в значения: 2:40 0:00 0:60 с кастомным типом [ч]:мм для их последующего суммирования Автор - vol4ok Дата добавления - 15.01.2016 в 18:06
Pelena
Дата: Пятница, 15.01.2016, 18:45 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19184
Репутация:
4420
±
Замечаний:
±
Excel 365 & Mac Excel
Например, так можноКод
=--ЕСЛИ(ЕЧИСЛО(ПОИСК("часов";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"часов";":");"минут";":");"секунд";);ЕСЛИ(ЕЧИСЛО(ПОИСК("минут";A1));"0:"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"минут";);"секунд";);0))
Например, так можноКод
=--ЕСЛИ(ЕЧИСЛО(ПОИСК("часов";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"часов";":");"минут";":");"секунд";);ЕСЛИ(ЕЧИСЛО(ПОИСК("минут";A1));"0:"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"минут";);"секунд";);0))
Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Например, так можноКод
=--ЕСЛИ(ЕЧИСЛО(ПОИСК("часов";A1));ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"часов";":");"минут";":");"секунд";);ЕСЛИ(ЕЧИСЛО(ПОИСК("минут";A1));"0:"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"минут";);"секунд";);0))
Автор - Pelena Дата добавления - 15.01.2016 в 18:45
SLAVICK
Дата: Пятница, 15.01.2016, 19:21 |
Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация:
766
±
Замечаний:
0% ±
2019
Еще можно udf: [vba]Код
Function t(s$) As Double Dim m, m1 m1 = Array("н", "д", "ч", "м", "с") m2 = Array(7, 1, 1 / 24, 1 / 24 / 60, 1 / 24 / 60 / 60) m = Split(Trim(s), " ") For i = UBound(m) To 1 Step -2 t = t + m(i - 1) * m2(Application.WorksheetFunction.Match(Left(m(i), 1), m1, 0) - 1) Next End Function
[/vba] Будет работать и с днями и с неделями
Еще можно udf: [vba]Код
Function t(s$) As Double Dim m, m1 m1 = Array("н", "д", "ч", "м", "с") m2 = Array(7, 1, 1 / 24, 1 / 24 / 60, 1 / 24 / 60 / 60) m = Split(Trim(s), " ") For i = UBound(m) To 1 Step -2 t = t + m(i - 1) * m2(Application.WorksheetFunction.Match(Left(m(i), 1), m1, 0) - 1) Next End Function
[/vba] Будет работать и с днями и с неделями SLAVICK
Иногда все проще чем кажется с первого взгляда.
Ответить
Сообщение Еще можно udf: [vba]Код
Function t(s$) As Double Dim m, m1 m1 = Array("н", "д", "ч", "м", "с") m2 = Array(7, 1, 1 / 24, 1 / 24 / 60, 1 / 24 / 60 / 60) m = Split(Trim(s), " ") For i = UBound(m) To 1 Step -2 t = t + m(i - 1) * m2(Application.WorksheetFunction.Match(Left(m(i), 1), m1, 0) - 1) Next End Function
[/vba] Будет работать и с днями и с неделями Автор - SLAVICK Дата добавления - 15.01.2016 в 19:21
Udik
Дата: Пятница, 15.01.2016, 19:23 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
така еще формулаКод
=ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" ч";A1);999;":");"0:")&ПРАВБ("0"&ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" м";A1);999;"");"00");2);" ";0)
== подправил формулу для случая типа 1 час 1 минут
така еще формулаКод
=ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" ч";A1);999;":");"0:")&ПРАВБ("0"&ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" м";A1);999;"");"00");2);" ";0)
== подправил формулу для случая типа 1 час 1 минут Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Суббота, 16.01.2016, 15:47
Ответить
Сообщение така еще формулаКод
=ПОДСТАВИТЬ(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" ч";A1);999;":");"0:")&ПРАВБ("0"&ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" м";A1);999;"");"00");2);" ";0)
== подправил формулу для случая типа 1 час 1 минут Автор - Udik Дата добавления - 15.01.2016 в 19:23
_Boroda_
Дата: Пятница, 15.01.2016, 20:08 |
Сообщение № 5
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация:
6481
±
Замечаний:
0% ±
2003; 2007; 2010; 2013 RUS
Примерно в ту же степь мысль шла. Только что-то долго шлаКод
=--(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК(" ч";A1)-1);0)&":"&ПРАВБ(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" м";A1);99;););2))
Примерно в ту же степь мысль шла. Только что-то долго шлаКод
=--(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК(" ч";A1)-1);0)&":"&ПРАВБ(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" м";A1);99;););2))
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Примерно в ту же степь мысль шла. Только что-то долго шлаКод
=--(ЕСЛИОШИБКА(ЛЕВБ(A1;ПОИСК(" ч";A1)-1);0)&":"&ПРАВБ(ЕСЛИОШИБКА(ЗАМЕНИТЬ(A1;ПОИСК(" м";A1);99;););2))
Автор - _Boroda_ Дата добавления - 15.01.2016 в 20:08
vol4ok
Дата: Пятница, 15.01.2016, 22:45 |
Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Спасибо всем! Попробовал все варианты, все работает, самый универсальный способ - с добавлением udf на мой взгляд.
Спасибо всем! Попробовал все варианты, все работает, самый универсальный способ - с добавлением udf на мой взгляд. vol4ok
Ответить
Сообщение Спасибо всем! Попробовал все варианты, все работает, самый универсальный способ - с добавлением udf на мой взгляд. Автор - vol4ok Дата добавления - 15.01.2016 в 22:45