Я вообще не в ту сторону смотрел
Я тоже. Поэтому вот еще решеньеце на формуле массива - "из другой стороны". Формула вводится в единственную ячейку D4 листа "Сводная таблица" и дальше саморасширяется в зависимости от заполняемости колонки A:
[vba]
=ArrayFormula( ЕСЛИОШИБКА( ВПР( B4:ИНДЕКС(B:B;МАКС(СТРОКА(A4);СТРОКА(A:A)*(A:A<>""))); QUERY({'Поврежденый Девайс'!B:B\ТРАНСП(РАЗБИТЬ(ПОВТОР("Поврежденные|";ЧСТРОК('Поврежденый Девайс'!B:B));"|"));'Девайс на ремонте'!B:B\ТРАНСП(РАЗБИТЬ(ПОВТОР("На ремонте|";ЧСТРОК('Девайс на ремонте'!B:B));"|"));'Готовый девайс'!B:B\ТРАНСП(РАЗБИТЬ(ПОВТОР("Готовые|";ЧСТРОК('Готовый девайс'!B:B));"|"))};"where Col1 <> ''");2;ЛОЖЬ); "Нет статуса") )
[/vba]
Или версия попроще - с меньшим количеством используемых функций:
[vba]
=ArrayFormula( ЕСЛИОШИБКА( ВПР( B4:ИНДЕКС(B:B;МАКС(СТРОКА(A4);СТРОКА(A:A)*(A:A<>""))); QUERY({'Поврежденый Девайс'!B:B\Т(СТРОКА('Поврежденый Девайс'!B:B))&"Поврежденные";'Девайс на ремонте'!B:B\Т(СТРОКА('Девайс на ремонте'!B:B))&"На ремонте";'Готовый девайс'!B:B\Т(СТРОКА('Готовый девайс'!B:B))&"Готовые"};"where Col1 <> ''");2;ЛОЖЬ); "Нет статуса") )
[/vba]