Найти последнее вхождение определенного значения подряд

У меня есть таблица с результатами матчей лиги фэнтези-футбола. Самая низкая результативная неделя не входит в общую сумму.

Я могу найти самый низкий балл, используя =min function [=min(B2:R2)]

Я могу найти первый экземпляр, используя =match function. [=MATCH(S2,B2:R2,0)]

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

Например, у Порции самый низкий балл - 8, первое вхождение - неделя 4, но я бы хотел, чтобы оно возвращало самое последнее вхождение - 11-ю неделю

2 ответа

Вы также можете сделать это с помощью LOOKUP функция и избегая формул массива, например, предполагая S2 имеет минимальное значение, которое вы можете получить на прошлой неделе с этим значением с помощью этой формулы в T2 скопировано вниз

=LOOKUP(2,1/(B2:R2=S2),B$1:R$1)

Это работает, потому что (B2:R2=S2) возвращает массив TRUE/FALSE значения, а затем деление 1 на этот массив дает вам массив 1с или #DIV/0! ошибки. Когда вы используете 2 в качестве значения поиска для этого массива он не найдет 2Таким образом, s будет совпадать с последним числом (последним 1) в массиве. Это соответствует последней неделе с вашим наименьшим значением, поэтому использование верхней строки в качестве "вектора возврата" означает, что формула возвращает соответствующий номер недели при необходимости

Вам нужно будет использовать формулу массива для достижения этой цели. Следующее вернет "самое высокое" наименьшее значение, если вы используете столбцы B:R в качестве столбцов данных и столбец T в качестве столбца нижней недели. Вам нужно ввести это как формулу массива (CSE), скопировав и вставив ее в ячейку T2 и нажав Ctrl+Shift+Enter.

=IFERROR(INDEX($A$1:$R$1,1,SMALL(IF(B2:R2=MIN(B2:R2),COLUMN(B2:R2),FALSE),COUNTIF(B2:R2,MIN(B2:R2)))),"")

объяснение

Во-первых, COUNTIF(B2:R2,MIN(B2:R2)) будет подсчитывать, сколько раз встречается минимальное значение. Это необходимо, потому что простойMIN(B2:R2) будет захватывать только первое минимальное значение, а не n-е минимальное значение.

Далее IF(B2:R2=MIN(B2:R2),COLUMN(B2:R2),FALSE) фактическая часть формулы массива уравнения (причина, по которой вам нужно использовать Ctrl+Shift+Enter). Он будет возвращать ссылки только тогда, когда у вас есть минимум и возвращение FALSE для всех остальных записей больше минимального. Теперь у вас есть массив только столбцов с номерами наименьших значений в наборе данных.

Затем SMALL(IF(B2:R2=MIN(B2:R2),COLUMN(B2:R2),FALSE),COUNTIF(B2:R2,MIN(B2:R2))) возьмет номера столбцов наименьших значений и найдет самое последнее вхождение этого из COUNTIF(B2:R2,MIN(B2:R2)) код.

Теперь, когда номер столбца последнего наименьшего вхождения известен, вы можете использовать INDEX функция для поиска значения в первой строке INDEX($A$1:$R$1,1,

Наконец, IFERROR отобразит строку Low Week, если SMALL Функция находит совпадение, в противном случае она будет отображать пустую ячейку. Это можно использовать для копирования этой формулы массива вниз по странице для строк, для которых у вас еще нет пользователей.

Результат

Другие вопросы по тегам