Страницы: 1
RSS
Преобразовать в дни нестандартную форму времени
 
Здравствуйте.
В исходнике есть время процесса, которое представлено примерно в таком виде 1д5ч30мин, 5ч, 1м3д34мин и т.п. Это значение нужно использовать в качестве фильтра в дальнейшей работе с таблицей.
Хотел преобразовать эти значения в дни. Но составить формулу ЕСЛИ не осилил. Попробовал через условное форматирование, но это получается громоздко. Нужно как минимум выделить все ячейки, которые будут содержать значения, включающие от 1 до 3 дней.
Это  преобразование надо будет переносить на другие книги.

Подскажите, пожалуйста, направление в котором нужно искать.

Файл с примером
 
Цитата
Pol Poloviny написал:
в котором нужно искать
ищите автора этих шедевральных данных, предложите ему преобразовать их в стандартные даты
к стандартным датам вы сможете применить ЛЮБЫЕ стандартные средства работы с датами (и фильтры в том числе)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
направление в котором нужно искать.
Код
Sub Tabl_Days()
Dim i As Long
Dim iLastRow As Long
Dim iDays As Integer
Dim iHour As Integer
Dim iMin As Integer
Dim TimeInDays As Double
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 With CreateObject("VBScript.RegExp")
   .Pattern = "(\d+д)?(\d+ч)?(\d+мин)?"
  For i = 2 To iLastRow
    iDays = Val(.Execute(Cells(i, "A"))(0).SubMatches(0))
    iHour = Val(.Execute(Cells(i, "A"))(0).SubMatches(1))
    iMin = Val(.Execute(Cells(i, "A"))(0).SubMatches(2))
    TimeInDays = WorksheetFunction.RoundUp((iDays + iHour / 24 + iMin / 24 / 60), 0)
    Cells(i, "C") = TimeInDays
  Next
 End With
End Sub

Цитата
выделить все ячейки, которые будут содержать значения, включающие от 1 до 3 дней.
Это уж вы сами
 
не надо преобразовывать, нужно отсечь все что больше 3х дней
=IFERROR(LEFT([@[Общее время]];FIND("д";[@[Общее время]])-1);1)+ISNUMBER(SEARCH("д??";[@[Общее время]]))
Ну разве что прибавить контроль на совсем пусто.
Изменено: БМВ - 28.03.2021 21:12:47
По вопросам из тем форума, личку не читаю.
 
Kuzmich, спасибо! Буду изучать

БМВ, спасибо! На 90% это решило задачу.
 
Посмотрите файл с функцией в втором столбце. Единственное условие, чтобы месяцы записывались "мес" а не "м".

Эта формула не учитывает високосный год.
Изменено: artemkau88 - 29.03.2021 11:04:29
Страницы: 1
Наверх