#excel #excel-formula #formula #excel-2016
#excel #excel-формула #формула #excel-2016
Вопрос:
Я просматриваю таблицу с данными для top 10 значений. Я делаю это с помощью формулы:
=LARGE($R$2:$R$26,U13)
Эта формула находится в столбце V
.
Значения Tha берутся из этой таблицы:
В столбце W
я пытаюсь определить, какая именно страна имеет одно из этих значений top 10. Я делаю это с помощью формулы:
=INDEX($I$2:$I$26,MATCH(V13,$R$2:$R$26,0))
Моя проблема заключается в следующем. Если значение первой десятки для 2 стран одинаковое (как в случае 9 и 10 внизу моей таблицы, где 2 страны имеют значение 39), моя INDEX
формула повторяет первую страну, найденную в обеих строках.
Например, должна быть Нигерия с рангом 10, потому что она также имеет значение 39.
Я думаю, я делаю что-то не так, не так ли?
Комментарии:
1. Присвоить им разные ранги?
2. @SJR извините, я не совсем понял. Я отредактировал свой пост, так что, надеюсь, теперь легче понять, откуда берутся значения для ранжирования.
3. Если у вас есть данные, на которых основаны ранги, вы можете рассчитать уникальные ранги.
Ответ №1:
Попробуйте эту формулу в ячейке W4:
=IF(V3=V4,INDEX(INDIRECT("I"amp;MATCH(W3,I:I,0) 1amp;":I26"),MATCH(V4,INDIRECT("R"amp;MATCH(W3,I:I,0) 1amp;":R26"),0)),INDEX($I$2:$I$26,MATCH(V4,$R$2:$R$26,0)))
Формула проверяет, имеет ли предыдущая страна тот же балл, что и фактическая. В таком случае выполняется поиск предыдущей страны в списке и переопределяется диапазон, который будет выбран для оценки. Таким образом, даже идеальная привязка во всем списке приведет к созданию списка уникальных стран.
Ваша формула не решила вашу проблему, потому что функция ИНДЕКСА выполняет поиск первого вхождения искомого значения. Он не учитывает, если в другой ячейке вы уже запустили другой ИНДЕКС. Переопределяя диапазон для поиска в соответствии с предыдущим результатом, вы просто исключите первое (или второе, третье или любое другое) значение искомого значения (а также некоторые другие значения, которые вас не интересуют).
Расширяя формулу, мы получаем следующее:
=IF(V3=V4, 'Checks for a tie
'---------------------------------------------If it's a tie
INDEX( 'Use a index function to pick the result
INDIRECT( 'Use an indirect function to define the range to be searched
"I"amp; 'State the column of the range to be searched
MATCH(W3,I:I,0) 1amp; 'Use a match function to find the previous occurence of the score whithin the column of the range to be searched and add 1 to it to cut out that value (and any previous one)
":I26" 'State the closing cell of the range to be searched
),
MATCH( 'Use a match function to determine in what row of the defined range the score is occuring
V4, 'The value to be searched
INDIRECT( 'Use an indirect function to define the range to be searched
"R"amp; 'State the column of the range to be searched
MATCH(W3,I:I,0) 1amp; 'Use a match function to find the previous occurence of the score whithin the column of the range to be searched and add 1 to it to cut out that value (and any previous one)
":R26" 'State the closing cell of the range to be searched
),
0 'Specify that you want the the exact occurence
)
),
'---------------------------------------------If it's not a tie
INDEX( 'Use a index function to pick the result
$I$2:$I$26, 'State the range to be searched
MATCH( 'Use a match function to determine in what row of the range the score is occuring
V4, 'The value to be searched
$R$2:$R$26, 'State the range to be searched
0 'Specify that you want the the exact occurence
)
)
)
Комментарии:
1. ааааа!!! Волшебник среди нас!!! Большое спасибо за самое ясное объяснение, которое я когда-либо получал!