2017-02-20 10 views
2

мне нужна помощь со следующим требованием:Excel Формула - Как получить высокие значения 2 ячейки на основе другой ячейки

необработанных данных

  A   B   C 
     ------------------------------------- 
    1 |  Opp  | Vendor | Amount | 
    |-------------|-------------|---------| 
    2 |  101  | Vendor1 | 100000 | 
    3 |  101  | Vendor2 | 5000 | 
    4 |  103  | Vendor1 | 30000 | 
    5 |  103  | Vendor2 | 5000 | 
    6 |  103  | Vendor3 | 50000 | 

выход Таблица

  A    B   C   D   E 
     --------------------------------------------------------- 
    1 |  Opp  | MainVendor | Amount1 | 2Vendor | Amount2 | 
    |-------------|-------------|---------|---------|---------| 
    2 |  101  | Vendor1 | 100000 | Vendor2 | 5000 | 
    3 |  103  | Vendor3 | 50000 | Vendor1 | 30000 | 
  • MainVendor: Продавец с наибольшим количеством
  • количество1: Сумма для MainVendor
  • 2Vendor: Второе место поставщика
  • количество2: Сумма для 2Vendor

Я был только в состоянии получить значение Value1, используя следующую формулу массива:

{=MAX(IF(A:A=[@[Opp]];C:C))} 

в колонке C.

Я не в состоянии получить значения для столбца B, D & E.

Любая помощь была бы действительно оценена.

+0

Какая версия Excel? –

+0

Привет Рон! Я использую версию excel 2010 –

+0

@RonRosenfeld. Я уверен, что этот вопрос является почти дубликатом [этого] (http://stackoverflow.com/questions/22083331/excel-vlookup-with-multiple-criteria) , Сегодня был еще один дубликат. Должно быть, один из тех дней. – vknowles

ответ

0

Вот решение - может быть немного запутанным, так счастлив услышать конструктивную критику, если люди могут реорганизовать формулы.

Чтобы получить Amount1, Amount2 значения, которые вы можете использовать:

=INDEX(LARGE($C$2:$C$10*--($A$2:$A$10=$A13),1),1) 

Где:

  • $C$2:$C$10 является значением от Amount колонок
  • умноженных на --($A$2:$A$10=$A13) - значении {1;1;0;0;0;0;0;0;0} * {100000;5000;30000;5000;50000;45000;50000;40000;51000} - это есть влияние исключения значений в столбце Amount, которые не соответствуют o Opp строки.
  • Функция LARGE затем просто выбирает 1-й по величине из 100000 и 5000, так как другие значения в массиве теперь 0.
  • , чтобы получить 2-й по величине, 3-й по величине и т.д. Вы шаха 2, 3 и т.д. в функции LARGE
  • LARGE функция обернута в INDEX, чтобы получить фактическое значение, как я полагаю, что ее возвращение его как массив с 1-элементного (хотя это не ясно, с формулой инспектора)

Пример:

enter image description here

Чтобы получить MainVendor и Vendor2 значения, которые вы можете использовать:

=INDEX($B$2:$B$10,INDEX(MATCH(LARGE($C$2:$C$10*--($A$2:$A$10=$A13),1),$C$2:$C$10*--($A$2:$A$10=$A13),0),1)) 

, которая:

  • $B$2:$B$10 является значением от Vendor колонок
  • индекса извлекаемое с помощью MATCH на того же формулу используется для AmountX против собственного исходного массива
  • MATCH заворачивают в другой INDEX, чтобы получить фактическое значение, как, еще раз, я думаю, что значение возвращается в качестве 1-элемента массива в

Пример:

enter image description here

I создал другой набор значений Opp, и эта формула работает с некоторыми повторяющимися значениями в столбце Amount, но для разных Opp.

+0

Эй, Робин, ты классный, я попробую завтра и вернусь с моими результатами. Большое спасибо! MD –

+0

Спасибо, Робин, отлично работает! Извините за задержку при тестировании, поскольку я был на праздники! :) –

+0

В случае, когда поставщики имеют одинаковое «количество», как я могу получить другой? В этом случае я получаю тот же «Продавец». Благодаря! –