Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование из числа в строку в EXCEL / 4 сообщений из 4, страница 1 из 1
10.04.2006, 10:58:44
    #33655169
Полковник Трофимов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование из числа в строку в EXCEL
Как правильно преобразовать числа вида:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
 32 . 11 
 34 . 24 
 34 . 34 
 41 . 01 
 43 . 58 
 133 . 19 
 155 . 00 
 158 . 35 
 162 . 35 
 134 . 51 
 140 . 25 
 143 . 34 
 160 . 21 
 174 . 03 
 176 . 00 
 183 . 55 
 196 . 53 
 203 . 00 
 94 . 45 
во время, вида:
Код: plaintext
1.
2.
3.
4.
5.
 0 : 34 : 24 
 0 : 34 : 34 
 0 : 41 : 01 
 0 : 43 : 58 
 2 : 13 : 19 
...
для дальнейших вычислений. Спасибо!

ЗЫ обратите внимание, что во входных данных после точки- не десятичная часть минуты в десятичном формате, а количество секунд!
...
Рейтинг: 0 / 0
10.04.2006, 12:08:02
    #33655450
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование из числа в строку в EXCEL
...
Рейтинг: 0 / 0
10.04.2006, 12:20:59
    #33655502
Ashton
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование из числа в строку в EXCEL
Если это время суток, то:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Public Sub ConvertToTime()
    Dim wb As Workbook
    Dim cel As Range
    Dim rng As Range
    Dim intHours As Integer
    Dim intMinutes As Integer
    Dim avarItems As Variant
    
    Set wb = ThisWorkbook
    Set rng = wb.Worksheets("Лист1").Range("A1").CurrentRegion
    
    For Each cel In rng.Cells
        avarItems = Split(cel.Value, ".")
        
        If (avarItems( 0 ) \  60 ) >  1  Then
            intHours = avarItems( 0 ) \  60 
            intMinutes = avarItems( 0 ) Mod  60 
        Else
            intHours =  0 
            intMinutes = avarItems( 0 )
        End If
        
        cel.Offset( 0 ,  1 ).NumberFormat = "h:mm:ss"
        cel.Offset( 0 ,  1 ).Value = _
          TimeSerial(intHours, intMinutes, avarItems( 1 ))
    Next cel
End Sub

А, если это просто какое-то суммарное время:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Public Sub ConvertToTime2()
    Dim wb As Workbook
    Dim cel As Range
    Dim rng As Range
    Dim lngHours As Long
    Dim lngSeconds As Long
    Dim avarItems As Variant
    
    Set wb = ThisWorkbook
    Set rng = wb.Worksheets("Лист1").Range("A1").CurrentRegion
    
    For Each cel In rng.Cells
        avarItems = Split(cel.Value, ".")
        
        lngSeconds = avarItems( 0 ) *  60  + avarItems( 1 )
               
        cel.Offset( 0 ,  1 ).NumberFormat = "h:mm:ss"
        cel.Offset( 0 ,  1 ).Value = Format(lngSeconds \  3600 , "00") & ":" & _
          Format((lngSeconds \  60 ) Mod  60 , "00") & ":" & _
          Format(lngSeconds Mod  60 , "00")
    Next cel
End Sub
...
Рейтинг: 0 / 0
10.04.2006, 14:42:25
    #33656020
Полковник Трофимов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Преобразование из числа в строку в EXCEL
Спасибо кросавчеги!

Воспользовался готовым решением учаснега vkodor!
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Преобразование из числа в строку в EXCEL / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]