Всем привет.
Пытаюсь написать
Для этого воспользовался макросом с excel-planet.
этот макрос тянет n значение из таблицы.
Но проблема как раз в том чтобы определить это n.
Есть три типа контракта: ОСНОВНОЙ(НОНФУД И ПРИКАССА), ПУШ И ОТГРУЗКА. Приоритет следующий:
Если есть ПУШ, то тянем ПУШ КОНТРАКТ, если нет ПУШ КОНТРАКТА-тянем ОСНОВНОЙ КОНТРАКТ, если нет ОСНОВНОГО и ПУШа, то тянем ОТГРУЗКУ.
Если есть какие-нибудь другие идеи как можно решить эту задачу, то прошу подсказать. СРАЗУ ГОВОРЮ, ЧТО СОРТИРОВКА И ПРОЧИЕ СПОСОБЫ С ДОБАВЛЕНИЕМ СТОЛБЦОВ И ИЗМЕНЕНИЕМ ПОРЯДКА МАССИВОВ НЕ ГОДЯТСЯ!
СПАСИБО!
Пытаюсь написать
Для этого воспользовался макросом с excel-planet.
Код |
---|
Function VLOOKUP2(Table As Variant, SearchColumnNum As Long, SearchValue As Variant, _ N As Long, ResultColumnNum As Long) Dim i As Long, iCount As Long Select Case TypeName(Table) Case "Range" For i = 1 To Table.Rows.Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 To UBound(Table) If Table(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 If iCount = N Then VLOOKUP2 = Table(i, ResultColumnNum) Exit For End If Next i End Select End Function |
Но проблема как раз в том чтобы определить это n.
Есть три типа контракта: ОСНОВНОЙ(НОНФУД И ПРИКАССА), ПУШ И ОТГРУЗКА. Приоритет следующий:
Если есть ПУШ, то тянем ПУШ КОНТРАКТ, если нет ПУШ КОНТРАКТА-тянем ОСНОВНОЙ КОНТРАКТ, если нет ОСНОВНОГО и ПУШа, то тянем ОТГРУЗКУ.
Если есть какие-нибудь другие идеи как можно решить эту задачу, то прошу подсказать. СРАЗУ ГОВОРЮ, ЧТО СОРТИРОВКА И ПРОЧИЕ СПОСОБЫ С ДОБАВЛЕНИЕМ СТОЛБЦОВ И ИЗМЕНЕНИЕМ ПОРЯДКА МАССИВОВ НЕ ГОДЯТСЯ!
СПАСИБО!