Мне удалось извлечь 10 лучших результатов из таблицы (tblData) с параметрами:

  1. Тип = LPR
  2. Год = этот год (TYEAR)
  3. QTR = этот квартал финансового года (КВАРТАЛ)
  4. Столбец A удерживает позиции 1 - 10 с помощью функции LARGE .
{=LARGE(IF((tblData[Type]=LPR)*(tblData[Year]=TYEAR)*(tblData[QTR]=QUARTER),tblData[Score]),$A7)}

Теперь мне нужно извлечь из tblData (исходной таблицы) информацию о сопоставлении из каждой строки, в которой находятся 10 лучших результатов.

Используя функции INDEX и MATCH, я извлекаю данные из столбца 3 таблицы:

{=INDEX(tblData[#All],MATCH(1,(tblData[Type]=LPR)*(tblData[Year]=TYEAR)*(tblData[QTR]=QUARTER)*(tblData[Score]=$B7),0),3)}

Это хорошо работает до тех пор, пока в первой десятке не появится повторяющаяся оценка. Затем я получаю ту же информацию из столбца 3 tblData против обоих результатов.

Я знаю, что ответ смотрит мне в лицо!

Мои необработанные данные:

Мои необработанные данные

Мой вывод:

Мой вывод

tblData:

tblData

1 ответ1

0

Используя модифицированную формулу из этого SO ответа

=INDEX(tblData[Code], MATCH(1, INDEX((tblData[Score]=LARGE(IF((tblData[Type]=LPR)*(tblData[Year]=TYEAR)*(tblData[QTR]=QUARTER),tblData[Score]),$A7))*(COUNTIF(C$1:C1, tblData[Code])=0),),0))`

объяснение

Эта формула создает таблицу топ-10, а затем ищет соответствующую строку кода. (COUNTIF(C$1:C1, tblData[Code])=0) эта часть просматривает текущий столбец и проверяет, вставлена ли уже определенная строка кода. Если он уже вставлен, он находит следующее вхождение.

Например, если значение ABC и DEF равно 9, столбец покажет, что 4-я позиция - это ABC . Когда она пытается найти значение 9, эта часть формулы знает, что ABC уже находится в столбце, поэтому она найдет следующую строку кода со значением 9, то есть DEF . Так что теперь на 5-й позиции это показывает DEF .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .