В ячейке D5 формула =IF(C5="";; TRANSPOSE(QUERY({'Списки'!D$4:R};"SELECT Col"&C5))). QUERY возвращает содержимое колонки, номер который мы узнали в колонке С, TRANSPOSE выводит этот список в одну строку, а IF, как и в прошлый раз, выключает формулы на пустых строках. ArrayFormula не работает с формулами, которые возвращают массив, а потому формулу из D5 нужно скопировать на все последующие ячейки столбца.
Теперь, когда на рабочем листе мы выберем имя категории, оно попадет на техлист, формулы узнают номер столбца, в котором указаны её подкатегории, и выведут их рядом с категорией в виде горизонтального списка, на который уже ссылается выпадающий список подкатегорий на рабочем листе.
На словах это сложнее, чем кажется :) Просто возьмите файл с примером, изучите его и применяйте в своих проектах. Ну а как на рабочем листе выводить цены подкатегорий - мы расскажем в следующий раз.