Формула индекса в Excel, Топ-10, повторяет предыдущее значение

#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. ааааа!!! Волшебник среди нас!!! Большое спасибо за самое ясное объяснение, которое я когда-либо получал!