Здравствуйте А какой у Вас офис? В нем нет iferror() ?
upd1 Вариант 2. Сразу отбрасываем как неправильный. Там и с ссылками беда. Вариант 1. Укорачиваем формулу за счет iferror(). И меняю расчет второго параметра small() =IFERROR(INDEX($'ТАБЛИЦА 1'.$B$2:$B$151;SMALL(IF($C$2='ТАБЛИЦА 1'.$G$2:$G$151;ROW($A$2:$A$151)-1;"");ROW(A1)));"") массивная
это аналогично тому, что было у Вас, сократил только чуть написание. После проверки на номер отдела получаем массив из номеров строк СТРОКА($A$2:$A$151)-1 , если номера отделов равны и "", если не равны, из этого массива выбираем наименьшее значение, номер (или порядок) которого определяем формулой СТРОКА(A1), т.е. в первой строке ищем первое наименьшее, во второй - второе итд. Можно и по алфавиту в приемах на этом сайте есть варианты реализации