Ваше первое - это простое условие "найти первое соответствие строки".
=INDEX(B:B, AGGREGATE(15, 7, ROW(A:A)/(A$1:A$16<>7), 1))
Второе должно учитывать первое местоположение.
=INDEX(B:B, AGGREGATE(15, 7, ROW(INDEX(A:A, AGGREGATE(15, 7, ROW(A:A)/(A$1:A$16<>7), 1)+1):A$16)/(INDEX(A:A, AGGREGATE(15, 7, ROW(A:A)/(A$1:A$16<>7), 1)+1):A$16=7), 1)-1)
Для ваших примеров данных это также работает, но я бы провел больше тестов для других образцов данных, прежде чем полагаться на них.Особенно, если есть «числа, которых нет» под второй партией 7-х.
=INDEX(B:B, MATCH(6, A:A))