Вы можете сделать это с большим количеством VLOOKUP.
Предположим, вы поместили список имен в A21: A24
=unique(C2:C11)
Затем выполните поиск по каждой паре Имя / субъект всоответствующий столбец
=ArrayFormula(iferror(vlookup(A21:A24&{"Math","Math","English","English","Science","Science","HSIE","HSIE"},{C2:C11&D2:D11,E2:N11},{2,3,4,5,6,7,8,9},false),""))
Пояснение
Возможно, способ объяснить это - построить егоот случая одного студента - один предмет для многих студентов - много предметов?Это предполагает, что у вас есть список имен учеников в A21: A24, и вы хотите извлечь информацию для каждого из них из исходных данных.
(1) Один студент, один предмет
Надеюсь, тривиально - просто предоставьте ссылку на отчет студента
=E2
(2) Несколько студентов, один предмет (математика) (имена не обязательно в том же порядке, что и в оригинальном списке)
Используйте vlookup для получения отчета по каждому имени
=ArrayFormula(vlookup(a21:a24,C2:E11,3,false))
Это формула массива, так что она работает через каждое из 4 имен, находя первый отчет, связанный с каждым.Обратите внимание, что в ваших данных он выберет пробел для Сьюзен, потому что в первой строке с Сьюзен есть пробел для математики.
(3) Несколько учеников, несколько предметов
=ArrayFormula(iferror(vlookup(A21:A24&{"Math","Math","English","English","Science","Science","HSIE","HSIE"},{C2:C11&D2:D11,E2:N11},{2,3,4,5,6,7,8,9},false),""))
Здесь мы ищем такие пары, как
BobMath BobMath BobEnglish BobEnglish ... JimMath JimMath JimEnglish ...
(имя студента + первая пара фигурных скобок)
inмассив (вторая пара фигурных скобок), где первый столбец равен
BobMath
JimMath
SusanScience
...
и вытягивает правильную строку.Также нужно указать vlookup, какой столбец искать (третья пара фигурных скобок).
Таким образом, первый сгенерированный этим vlookup будет
vlookup("BobMath",array,2,false)
, где массив содержит
BobMath Cross (several other columns)...
JimMath Blue (several other columns)...
...
BillHSIE (several other columns)... Hair
, поэтому он выберет Cross
ипоследний vlookup был бы
vlookup(BillHSIE,array,9,false)
, который взял бы Волосы.
Теперь это не забирает пробел для математики Сьюзен, потому что в первом ряду он смотрит вэто строка 9, и она выбирает Tickle из столбца E.
EDIT
Если вы хотите добавить столбцы, относящиеся только к студенту, а не к какому-либо конкретномуДля предмета (например, «студент посещает консультации») вам потребуется другой подход.
=ARRAYFORMULA(IFERROR(VLOOKUP($A21:$A24,FILTER({$C2:$C11,M2:M11},M2:M11<>""),2,FALSE),""))
При этом выполняется поиск, как в (2) выше, но сначала пропускаются все пустые ячейки в конкретном столбце, используемом дляуважать.Эта формула работает только для одного столбца, но может использоваться для дополнительных столбцов.