Объедините данные ответов из представлений в форме Google, где респонденты имеют одинаковые имена - PullRequest
0 голосов
/ 24 мая 2018

Я думал, что смогу понять это, но, похоже, не могу.В основном, информация об учениках будет вводиться в Google Sheets через Google Forms, но из-за того, что в моих формах Google есть разделы, данные об одном ученике отображаются в разных строках.Каждый студент оценивает 4 предмета, и каждый из них имеет 4 учителяформа разделяет каждую предметную область на разделы, а Google Sheets размещает эту информацию в 4 разных строках.

Я пытаюсь объединить все данные с одинаковым именем в одну строку, а не появляться в 4 разных строках,Я воссоздал то, как мои данные в настоящее время выглядят в этом примере электронной таблицы .

Любая помощь будет высоко ценится, это сводит меня с ума!

1 Ответ

0 голосов
/ 24 мая 2018

Вы можете сделать это с большим количеством 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),""))

enter image description here

Пояснение

Возможно, способ объяснить это - построить егоот случая одного студента - один предмет для многих студентов - много предметов?Это предполагает, что у вас есть список имен учеников в 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) выше, но сначала пропускаются все пустые ячейки в конкретном столбце, используемом дляуважать.Эта формула работает только для одного столбца, но может использоваться для дополнительных столбцов.

...