Как использовать индекс, чтобы найти все значения, превышающие

Я немного разбираюсь в своей ситуации, как на этом сайте, так и на других, причем это самое близкое к моей проблеме / решению:

Найти все значения, большие или равные некоторому значению

Однако использование этого решения в моей ситуации не дает мне правильных результатов. У меня есть список из 83 имен с санкциями, которые даются каждому имени. На отдельной вкладке я хочу отобразить вывод всех имен, которые имеют любой штраф (> 0).
У меня есть только четыре возможных штрафа, поэтому, если мне нужно будет ссылаться на них в формуле (матч или поиск), это тоже будет хорошо. Сокращение и составление данных, вот пример того, что у меня есть:

+----------+---------+ | Name | Penalty | +----------+---------+ | Name 1 | 0 | | Name 2 | 0 | | Name 3 | 5 | | Name 4 | 0 | | Name 5 | 0 | | Name 6 | 10 | | Name 7 | 0 | | Name 8 | 0 | | Name 9 | 0 | | Name 10 | 20 | +----------+---------+ 

Используя эту формулу, затем CSE и перетащите вниз:

 =INDEX($R$4:$R$13,SMALL(IF($S$4:$S$13>0,ROW($S$4:$S$13)),ROW(1:1))) 

Это дает мне следующие результаты:

 +---------+ | Name 6 | | Name 9 | | #REF! | | #NUM! | | #NUM! | | #NUM! | | #NUM! | | #NUM! | | #NUM! | | #NUM! | +---------+ 

Я буду заботиться об ошибках, используя IFERROR и делая их пустыми, но он все еще не находит правильные имена тех, у кого есть штрафные очки> 0

edit: Изменение последней части «ROW» дает мне разные ответы, поэтому я думаю, что моя проблема существует, но я до сих пор не знаю, что с ней делать. Это должно быть значение «k» функции «SMALL».

Буду признателен за любую оказанную помощь. Благодаря!

Я предпочитаю использовать MATCH () вместо SMALL ():

 =INDEX($R$4:$R$13,MATCH(1,($S$4:$S$13>0)*(COUNTIF($U$3:U3,$R$4:$R$13)=0),0)) 

Это формула Array, поэтому используйте Ctrl-Shift-Enter.

Кроме того, эта формула требует, чтобы она начиналась, по меньшей мере, во второй строке, так как граф должен ссылаться на ячейку выше, чтобы избежать циклической ссылки.

введите описание изображения здесь


Если вы действительно хотите использовать SMALL (), вам нужно сделать настройку для стартовой строки:

 =INDEX($R$4:$R$13,SMALL(IF($S$4:$S$13>0,ROW($S$4:$S$13)-ROW($S$4)+1),ROW(1:1))) 

Или как @dirk указал, что массив является SMALL (), а не INDEX, поэтому вполне нормально использовать полный столбец в части INDEX и использовать ваш SMALL как есть, поскольку он вернет фактический номер строки:

 =INDEX($R:$R$,SMALL(IF($S$4:$S$13>0,ROW($S$4:$S$13)),ROW(1:1))) 

Также формула массива так подтверждается с помощью Ctrl-Shift-Enter.

введите описание изображения здесь

Другой метод – использовать AGGREGATE, который вводится без CSE в качестве обычной формулы:

 =INDEX($R:$R,AGGREGATE(15,6,ROW($R$4:$R$13)/($S$4:$S$13>0),ROW(1:1)) 

Это вводится как обычная формула. Он по-прежнему является формулой типа массива, поэтому все еще нужно использовать только набор данных в качестве ссылки и избегать ссылок на полные столбцы в части массива формулы.

Последние два особенно полезны, когда первый результат возвращается в первой строке, так как они не требуют, чтобы COUNTIF () поддерживал уникальный возврат.

  • Функция поиска Excel ищет структурированную таблицу и столбец
  • среднее из последних x дней (начало последней заполненной ячейки)
  • excel для возврата результата по индексу-small-if с несколькими критериями
  • Формула соответствия индексов не дает правильных ответов - я думаю, что мне не хватает части формулы
  • Как df.loc ячейка в кадре данных Pandas с повторяющимися значениями индекса?
  • Найдите две совпадающие строки и отобразите данные из трех (Excel)
  • EXCEL - индекс и динамический диапазон
  • преобразование строк в несколько столбцов
  • Суммировать только согласованные значения из двух столбцов
  • Формула соответствия индекса Excel для вывода данных из другой вкладки / файла
  • index-small-if с несколькими критериями из одного столбца
  • Давайте будем гением компьютера.