Страницы: 1
RSS
Позиция элемента суммы с накоплением по двум условиям
 
Доброго времени суток! (исправился))

Имеем даты, поступающие по договорам суммы и номера договоров.
Как определить дату (Бог с ней, с датой - позицию), при которой по определенному договору была накоплена определенная сумма.
П.С. Архив читал
Изменено: konsvg - 22.05.2020 10:37:59
 
konsvg, и Вам привет( а нет вы же не здороваетесь)

а что должно вывести в вашем случае? если макс. сумма 38 тыс.??
Изменено: Mershik - 20.05.2020 13:39:17
Не бойтесь совершенства. Вам его не достичь.
 
Приношу извинения, Здравствуйте!

В файле просто отрывок данных, сумму можно снизить, изменить номер договора
 
konsvg, c доп. столбцом.
Код
=ИНДЕКС($B$4:$B$47;ПРОСМОТР(2;1/($F$4:$F$47="");СТРОКА($F$4:$F$47)))
Не бойтесь совершенства. Вам его не достичь.
 

еще макрос

Код
Sub test5()
Dim a As Long, n As Long
a = 0
n = 4
lr = Cells(Rows.Count, 2).End(xlUp).Row
  Do While a < Cells(1, 8)
    If Cells(n, 5) = Cells(2, 8) Then
        a = a + Cells(n, 3)
     End If
        n = n + 1
    If n >= lr Then
        MsgBox "НЕ НАКОПЛЕНО"
        GoTo 1
    End If
  Loop
    Cells(5, 8) = CDate(Cells(n - 1, 2))
    Cells(6, 8) = "Находится в строке " & n - 1
1
End Sub
Изменено: Mershik - 20.05.2020 14:20:49
Не бойтесь совершенства. Вам его не достичь.
 
Огромнейшее спасибо!!!
Сейчас приступлю))  
 
Цитата
Mershik написал:
=ИНДЕКС($B$4:$B$47;ПРОСМОТР(2;1/($F$4:$F$47="");СТРОКА($F$4:$F$47)))
То есть мы вводим доп.столбец, и уже с его помощью определяем индекс для одного выбранного значения накопленной суммы по выбранному договору

Еще раз приношу извинения, вопрос в самом начале был поставлен несколько некорректно.
Дело в том, что нужно определять дату (индекс) для разных (всех) договоров, накопленные по ним суммы тоже будут разные.
И № договоров, и суммы указываются в отдельной таблице...
Вот с этим можете помочь?
 
konsvg, файл пример приложите нормальный и покажите желаемый результат с учетом
Цитата
Дело в том, что нужно определять дату (индекс) для разных (всех) договоров, накопленные по ним суммы тоже будут разные.
И № договоров, и суммы указываются в отдельной таблице..
Изменено: Mershik - 20.05.2020 16:17:13
Не бойтесь совершенства. Вам его не достичь.
 
Для определения позиции по одному параметру - накопленной сумме - я использовал формулу для массива
=ПОИСКПОЗ(2;2/(ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;СМЕЩ($C$1;;;СТРОКА($C$4:$C$47)))<=H$1))
Но как ее заставить проверять еще и номер договора - не могу разобраться
А договоров много - больше сотни
Изменено: konsvg - 20.05.2020 16:37:34
 
konsvg, т.е. вы снова приводите прмиер только для одного договора да? или вам нужно для всех???
Не бойтесь совершенства. Вам его не достичь.
 
Для всех, в том-то и дело!
Связи в листах я и сам настрою, главное понять принцип и синтаксис формул
 
konsvg, вам я так понмаю решение нужно только формулами ?  
Не бойтесь совершенства. Вам его не достичь.
 
Желательно
 
konsvg, ну формулой я пасс
макросом вроде то что нужно
Код
Sub test5()
Dim a As Long, n As Long
a = 0
For i = 4 To Worksheets("Договоры").Cells(Rows.Count, 2).End(xlUp).Row
lr = Worksheets("Платежи").Cells(Rows.Count, 2).End(xlUp).Row
    For n = 4 To lr
        If Worksheets("Платежи").Cells(n, 5) = Worksheets("Договоры").Cells(i, 2) Then
            a = a + Worksheets("Платежи").Cells(n, 3)
        End If
        If a >= Worksheets("Договоры").Cells(i, 3) Then
            Worksheets("Договоры").Cells(i, 4) = CDate(Worksheets("Платежи").Cells(n, 2))
            GoTo 1
        End If
    Next n
1 a = 0
Next i
End Sub
Не бойтесь совершенства. Вам его не достичь.
 
Спасибо, сейчас буду изучать.
А формулы совсем никак? Подозреваю, что в ПОИСКПОЗ должна быть возможность задать еще один массив с доп. условием
 
konsvg, сейчас профи придут может сделают
Не бойтесь совершенства. Вам его не достичь.
 
На всякий случай повторно сформулирую задачу.
На листе "Договоры" в каждую ячейку столбца "Даты" я должен ввести формулу с параметрами из столбцов "№ договора" и "Накопленная сумма". И получить дату, при которой по этому договору была накоплена соответствующая сумма. Данные для расчета берутся с листа "Платежи".
 
Профессионалы, с добрым понедельником!
Кто-нибудь может посредством формул решить эту задачу, с выбором по двум условиям?
АУ!!!!
 
Вводите как формулу массива:
=ИНДЕКС(Платежи!$B$4:B47;ПОИСКПОЗ(ИСТИНА;СУММЕСЛИ(СМЕЩ(Платежи!E$4;;;СТРОКА($C$4:$C$47)-3;);B4;СМЕЩ(Платежи!C$4;;;СТРОКА($C$4:$C$47)-3;))>=C4;))
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, огромнейшее спасибо!  Изящное решение)))
Все замечательно работает. Выручили!!!
Страницы: 1
Наверх