Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сортировка данных, помогите пожалуйста.. / 4 сообщений из 4, страница 1 из 1
24.01.2008, 21:26
    #35086306
starless
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных, помогите пожалуйста..
u menia takaia problema, ia novichok, ne sudite please. itak na odnom sheet u menia dannie po dmum kolonkam:
A B
gospital moskva
bolnica piter
klinika moskva
klinika stavropol
bolnica moskva
gospital sochi
i tak dalee..

na drugom sheet mne nuzno otsortirovat kolichestvo medicinskix zuchrezdenii po gorodam v takom formate:

gospital bolnica klinika
moskva 1 1 1
piter 0 1 0
stavropol 0 0 1
sochi 1 0 0

zaranee ogromnoe spasibo za pomoch....
...
Рейтинг: 0 / 0
25.01.2008, 09:36
    #35086757
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных, помогите пожалуйста..
воспользуйся сводной таблицей см. пример
...
Рейтинг: 0 / 0
25.01.2008, 14:27
    #35087916
klen_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных, помогите пожалуйста..
цикл, не самое лучшее решение, но работает
Код: 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.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
Sub Macros1()
    Dim city As String
    Dim clin As String
    Dim Row2 As Long
    Dim RowF As Long
    
    Dim rngF As Range
    Dim rng1 As Range
    Dim rng2 As Range
    Dim cel1 As Range
    
    Set rng1 = ThisWorkbook.Worksheets("Sheet1").Range("A1:A6")
    Set rng2 = ThisWorkbook.Worksheets("Sheet2").Range("A:D")
    rng2.ClearContents
    
    rng2.Cells( 1 ,  2 ).Value = "gospital"
    rng2.Cells( 1 ,  3 ).Value = "bolnica"
    rng2.Cells( 1 ,  4 ).Value = "klinika"
    rng2.Range(Cells( 1 ,  2 ), Cells( 1 ,  4 )).Font.Bold = True
    
    Application.ScreenUpdating = False
    
    Row2 =  1 
    For Each cel1 In rng1
        city = cel1.Offset(,  1 ).Value
        clin = cel1.Value
        With rng2
            Set rngF = .Columns( 1 ).Find(city)   ' зависит от Range("A:D")
            If rngF Is Nothing Then
                Row2 = Row2 +  1 
                RowF = Row2
                .Cells(RowF,  1 ).Value = city
                .Cells(RowF,  5 ).Font.Bold = True
                .Cells(RowF,  5 ).FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"
                .Range(Cells(RowF,  2 ), Cells(RowF,  4 )).HorizontalAlignment = xlCenter
                .Range(Cells(RowF,  2 ), Cells(RowF,  4 )).Value = Application.Transpose(Array( 0 ,  0 ,  0 ))
            Else
                RowF = rngF.Row
            End If
            
            Select Case clin
            Case .Cells( 1 ,  2 ).Value: .Cells(RowF,  2 ).Value =  1 
            Case .Cells( 1 ,  3 ).Value: .Cells(RowF,  3 ).Value =  1 
            Case .Cells( 1 ,  4 ).Value: .Cells(RowF,  4 ).Value =  1 
            End Select
        End With
        
    Next
    
    rng2.Range(Cells(RowF +  1 ,  2 ), Cells(RowF +  1 ,  4 )).Font.Bold = True
    rng2.Range(Cells(RowF +  1 ,  2 ), Cells(RowF +  1 ,  4 )).HorizontalAlignment = xlCenter
    rng2.Range(Cells(RowF +  1 ,  2 ), Cells(RowF +  1 ,  4 )).FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
    
    Application.ScreenUpdating = True
End Sub
хотелось бы, конечно, компактнее...
...
Рейтинг: 0 / 0
27.01.2008, 12:24
    #35089953
starless
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сортировка данных, помогите пожалуйста..
vsem ogromnoe spasibo za pomoch. eslib vi znali kak pomogli.. thanks:)
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сортировка данных, помогите пожалуйста.. / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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