Страницы: 1
RSS
Подставить к продаже номер договора при условии, что у клиента может быть несколько договоров в списке
 
Помогите, пожалуйста, не могу сообразить. Есть 2 списка: список договоров (с кодом клиента и сроком действия), список продаж (с кодом клиента и датой продажи). Нужно подставить к продаже номер договора при условии, что у клиента может быть несколько договоров в списке, но с разными сроками действия.
 
Мария -, Помогите, пожалуйста, не могу сообразить. в файле все на английском и арабском. покажите что должно получиться и почему так должно получиться.
 
Очень странно :) арабский я не знаю :)
Sold-to - код клиента
Sold-to name - название клиента
Contract No - номер контракта
Start - начало контракта
End - конец контракта
Date - дата продажи

около каждой строки продажи должен стоять номер договора (1,2,3,4 - Contract No) в зависимости от номера клиента и срока действия договора. Т.е. если продажа попадает в период договора, то соответствующий номер договора. VLOOKUP в данном случае не работает, у клиента может быть в списке несколько договоров с разными сроками действия. Поэтому и нужно каким-то образом учесть и срок действия договора и дату продажи
 
Ооочень странно
Код
=ПРОСМОТР(2;1/($D$2:$D$10<=N2)/($E$2:$E$10>=N2)/($A$2:$A$10=L2);$C$2:$C$10)
=СУММПРОИЗВ($C$2:$C$10*($D$2:$D$10<=N2)*($E$2:$E$10>=N2)*($A$2:$A$10=L2))
Изменено: artyrH - 22.02.2019 11:58:31
 
Код
=СУММПРОИЗВ((A:A=L2)*(D:D<=N2)*(E:E>=N2);C:C)
Изменено: magistor8 - 22.02.2019 12:08:35
 
СУММПРОИЗВ не работает. В номерах договоров бывают Буквы. А она похоже только с цифрами
 
Цитата
Мария - написал:
СУММПРОИЗВ не работает
исключите этот вариант
Изменено: artyrH - 22.02.2019 13:07:52
 
Вариант за пару минут на PQ. Может тормозить на большом массиве
 
Сделайте себе пользовательскую функцию VLOOPUP2 по 2 критериям.

Код ниже.
Код
1 Function VLOOKUP2(Table1 As Range, SearchValue1 As Variant, Table2 As Range, SearchValue2 As Variant, ResultColumn As Range)
2        Dim i As Integer
3                                    
4        For i = 1 To Table1.Rows.Count
5                If Table1.Cells(i, 1) = SearchValue1 Then
6                If Table2.Cells(i, 1) = SearchValue2 Then
7                VLOOKUP2 = ResultColumn.Cells(i, 1)
8                    Exit For
9                    End If
10                End If
11                Next i                  
12 End Function
Изменено: Paul Zealand - 22.02.2019 13:44:11
Страницы: 1
Наверх