Я вообще не в ту сторону смотрел
Я тоже. Поэтому вот еще решеньеце на формуле массива - "из другой стороны". Формула вводится в единственную ячейку D4 листа "Сводная таблица" и дальше саморасширяется в зависимости от заполняемости колонки A:
[vba]Код
=ArrayFormula( IFERROR( VLOOKUP( B4:INDEX(B:B;MAX(ROW(A4);ROW(A:A)*(A:A<>""))); QUERY({
'Поврежденый Девайс'!B:B\TRANSPOSE(SPLIT(REPT("Поврежденные|";ROWS('Поврежденый Девайс'!B:B));"|"));
'Девайс на ремонте'!B:B\TRANSPOSE(SPLIT(REPT("На ремонте|";ROWS('Девайс на ремонте'!B:B));"|"));
'Готовый девайс'!B:B\TRANSPOSE(SPLIT(REPT("Готовые|";ROWS('Готовый девайс'!B:B));"|"))
};"where Col1 <> ''");2;FALSE); "Нет статуса") )
[/vba]
Или версия попроще - с меньшим количеством используемых функций:
[vba]Код
=ArrayFormula( IFERROR( VLOOKUP( B4:INDEX(B:B;MAX(ROW(A4);ROW(A:A)*(A:A<>""))); QUERY({
'Поврежденый Девайс'!B:B\T(ROW('Поврежденый Девайс'!B:B))&"Поврежденные";
'Девайс на ремонте'!B:B\T(ROW('Девайс на ремонте'!B:B))&"На ремонте";
'Готовый девайс'!B:B\T(ROW('Готовый девайс'!B:B))&"Готовые"
};"where Col1 <> ''");2;FALSE); "Нет статуса") )
[/vba]