powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сортировка данных, помогите пожалуйста..
4 сообщений из 4, страница 1 из 1
Сортировка данных, помогите пожалуйста..
    #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
Сортировка данных, помогите пожалуйста..
    #35086757
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
воспользуйся сводной таблицей см. пример
...
Рейтинг: 0 / 0
Сортировка данных, помогите пожалуйста..
    #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
Сортировка данных, помогите пожалуйста..
    #35089953
starless
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vsem ogromnoe spasibo za pomoch. eslib vi znali kak pomogli.. thanks:)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сортировка данных, помогите пожалуйста..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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