Страницы: 1
RSS
По номеру договора узнать, сколько раз в определенный месяц менялась сумма
 
Добрый день!
Есть данные:
Договор Общая стоимость Дата запроса
17718860156 6.201,60 07.06.2017 15:06
17718860156 6.201,60 23.05.2017 9:16
17718860156 6.201,60 21.04.2017 9:37
17718860156 6.201,60 17.03.2017 9:50
17718860156 6.201,60 17.02.2017 10:39
17718860156 6.201,60 27.01.2017 9:45
17730950159 5.943,20 07.06.2017 14:45
17730950159 5.943,20 23.05.2017 9:16
17730950159 5.943,20 21.04.2017 9:08
17730950159 5.943,20 17.03.2017 9:27
17730950159 5.943,20 17.03.2017 9:24
17730950159 20.672,00 15.03.2017 16:00
17730950159 14.728,80 15.03.2017 15:56
17730950159 14.728,80 15.03.2017 15:53
17730950159 7.855,36 15.03.2017 15:50
17730950159 37.510,00 15.03.2017 15:46
17730950159 4.879,20 17.02.2017 9:58
17730950159 20.672,00 17.02.2017 9:54
17730950159 14.728,80 16.02.2017 11:36
17730950159 14.728,80 16.02.2017 11:33
17730950159 7.855,36 16.02.2017 11:30
17730950159 37.510,00 16.02.2017 11:27
17730950159 5.943,20 23.01.2017 14:44
и т.д.
Надо узнать по номеру договора сколько раз в определенный месяц менялась сумма. т.е. в итоге получилась таблица где в верху месяца а по строчкам номер договора и кол изменения цены в данном месяце:
                     01.17   02.17......
17730950159     1        3
Делаю так: считываю все в массив и пытаюсь сделать сортировку но что то не могу найти подходящий простой метод...
Код
Sub Moskva()
Dim Massiv_lista As Variant
Dim tek_summa As Variant
Dim tek_dogovor As Variant
Dim mesyac(1 To 6) As Variant

    Set Range_Lista = Worksheets("Лист1").UsedRange
    Massiv_lista = Range_Lista.Value
    kol_strok_Lista = UBound(Massiv_lista, 1) 
    kol_stolbov_Lista = UBound(Massiv_lista, 2) 
    Cells(1, 5) = "Договор"
    tek_dogovor = Cells(2, 1)
    Cells(2, 5) = tek_dogovor
    tek_summa = Cells(2, 2)
    For s = 2 To 7
        mesyac(s - 1) = Right(Left(Massiv_lista(s, 3), 10), 7)
        Cells(1, s + 4) = mesyac(s - 1) 'массив месяцев
    Next s
    shag = 3
    'цикл перебора массива
    For d = 2 To kol_strok_Lista
        If tek_dogovor = Massiv_lista(d, 1) Then
            If tek_summa = Massiv_lista(d, 2) Then
                For aa = 1 To 6
                    tek_mesyac = Right(Left(Massiv_lista(d, 3), 10), 7)
                        If tek_mesyac = mesyac(aa) Then
                            Cells(2, aa + 5) = 1
                        End If
                Next aa
            End If
        Else
            tek_dogovor = Massiv_lista(d, 1)
            Cells(shag, 5) = tek_dogovor
            tek_summa = Massiv_lista(d, 2)
            shag = shag + 1
        End If
    Next d
  
End Sub
 
Цитата
eagl69 написал:
Есть данные
Где они? На листе? Так покажите.
 
Да на листе...
 
Так что ли...?
 
почти, только не по числам а по месяцам....
 
В сводной "докинуть" месяца просто)
 
Красиво получилось и главное быстро... а я заморочиться хотел с кодом...
Можно по подробней как этого добиться? у меня не получается....
 
Цитата
eagl69 написал:
а я заморочиться хотел с кодом...
Я тоже )
Упс! Кажется я не то сделал: у меня считает не РАЗНЫЕ цены, а просто их количество в месяц.
 
Юрий М, я тоже подумал про РАЗНЫЕ суммы, а потом понял что просто количество по последней колонке надо.
Цитата
eagl69 написал:
Можно по подробней как этого добиться?
Просто сводной таблицей сделал. Проверьте точно так нужно?
P.S. Про сводные таблицы можно почитать в приемах: http://www.planetaexcel.ru/techniques/8/130/
Изменено: Дмитрий Тарковский - 22.06.2017 21:15:30
 
Если так, то у меня правильно ) Но ведь в названии
Цитата
eagl69 написал:
сколько раз в определенный месяц менялась сумма
и в описании
Цитата
eagl69 написал:
сколько раз в определенный месяц менялась сумма
Ведь не зря это? :)
 
Да, но) в примере 2 договора, по первому суммы не меняются, меняются только дата просмотра или что там в третей колонке, вот я и сделал вывод что, скорей всего, нужно простое количество  :)  
 
Подождём автора )
 
Да, совершенно верно, не количество записей в месяц а именно сколько раз менялась сумма в месяц, если не менялась то 1 если три разных суммы в мясяц то 3 и тд.
А макрос считает количество оплат в месяц.... например
17730950159 1 1 1 7 6 1  в 3-м месяце должно быть 5 а 7 это кол саумм. а менялась она 5 раз....

Спасибо всем кто ответил, буду вникать :)
 
Не зря я сомневался )) Тогда так (см. файл).
 
Да теперь так:) а если не сложно, можно попросить комментарии к коду?
 
Цитата
eagl69 написал:
сколько раз в определенный месяц менялась сумма
Договор 17718860156 Сумма 6.201,60 каждый месяц. Если следовать логике ТС то должно быть 1 0 0 0 0 0 :) Не прикапываюсь, просто мысли вслух.
 
Поменял файл - теперь с комментариями.
 
Дмитрий Тарковский, немного не так: в каждом месяце по этому договору ОДНА цена. Потому и единичка )
 
Спасибо за комменты, буду изучать...
Страницы: 1
Наверх