
У меня есть следующая таблица и полученные формулы:
Сначала у меня есть продавец и количество продаж.
Затем в столбцах D и E я хочу узнать, кто из них лучшие продавцы.
Формула в E2 =LARGE($B$2:$B$11,$D2)
заполнена.
Затем я хочу узнать имена лучших продавцов. Формула в F2 заполнена =INDEX($A$2:$A$11,MATCH($E2,$B$2:$B$11,0))
.
Проблема в том, что 25 и 15 появляются дважды для Боба и Джеффа и Сью и Карла. Но в столбце F Боб и Сью появляются дважды, потому что Match возвращается только для первого совпадения. Мне нужно 25, чтобы перечислить Боба, а затем Джеффа, и 15, чтобы перечислить Сью, а затем Карла.
Я хотел проверить, сколько раз встречается значение в E. Если оно встречается несколько раз, то найдите, с каким экземпляром этого значения находится ячейка, а затем найдите это значение из совпадения имени. Так, для 25 с 2 значениями F4 находится рядом с первым 25 в E, поэтому он вернет Боба, а F5, который находится рядом со вторым 25, вернет Джеффа.
Звучит просто, но я не смог поместить это в рабочую формулу. Я пытаюсь получить единую формулу на F, дающую желаемые результаты.
решение1
Используйте AGGREGATE как функцию SMALL, чтобы вернуть правильную строку в INDEX:
=INDEX(A:A,AGGREGATE(15,6,ROW($B$2:$B$11)/($B$2:$B$11=$E2),COUNTIFS($E$2:$E2,$E2)))
Функция COUNTIFS($E$2:$E2,$E2)
вернет 1 для первого и 2 для второго экземпляров числа, тем самым заставляя AGGREGATE вернуть первое, а затем второе имя.
решение2
Моя маленькая попытка:
=IF(F1<>F2,INDEX($B$2:$B$13,MATCH(F2,$C$2:$C$13,0)),INDEX(OFFSET($B$2:$B$13,MATCH(G1,$B$2:$B$13,0),0,ROWS($B$2:$B$13)),MATCH(F2,OFFSET($B$2:$B$13,MATCH(G1,$B$2:$B$13,0),1,ROWS($B$2:$B$13)),0)