2015-12-04 4 views
0

Мне нужно преобразовать:дней часов минут д чч: мм: сс

  • 12 дней 2 часа 43 минут
  • 3 часа 18 минут
  • 1 день 1 минуту

В :

hh:mm 

Есть ли способ использовать только простую формулу для всех случаев ? Спасибо!

Cheers!

Medicloreans

+0

в какой программе? или язык –

+0

в каком формате у вас есть входные значения? Это текст? Дата/номер? – marmarta

+0

- это данные, которые необходимо преобразовать в буквальном формате в том виде, в каком вы размещали? Если да, хотите ли вы, чтобы результаты (в вашем примере) были соответственно '107: 20',' 3: 18' и '72: 1'? –

ответ

2

Рассмотрим следующий U сер D efined F соборование (UDF):

Public Function NewTime(SIn As String) As String 
    Dim nMinutes As Long, nHours As Long, V As Long 
    Dim Tag As String 
    ary = Split(SIn, " ") 

    For i = 0 To UBound(ary) - 1 Step 2 
     V = ary(i) 
     Tag = Replace(ary(i + 1), "s", "") 
     If Tag = "Day" Then nHours = nHours + 24 * V 
     If Tag = "Hour" Then nHours = nHours + V 
     If Tag = "Minute" Then nMinutes = nMinutes + V 
    Next i 
    NewTime = nHours & ":" & nMinutes 
End Function 

enter image description here

определенные пользователем функции (UDF) очень прост в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает свежий модуль
  3. вставить материал в и закройте окно VBE

Если вы сохраните книга, UDF будет сохранен вместе с ней. Если вы используете версию Excel позже 2003 года, вы должны сохранить файл как .xlsm, а не.XLSX

Чтобы удалить UDF:

  1. вызвать окно VBE как выше
  2. ясный код из
  3. закрыть окно VBE

Чтобы использовать UDF из Excel:

= myfunction (A1)

Чтобы узнать больше о макросах в целом, см:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

и

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

и конкретики по UDF, см:

http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx

макрокоманд должен быть включен для этого работать!

Смежные вопросы