Разбираемся · Создание онлайн-курсов

Отменить свертывание столбцов Power Query: журнал оценок курса

Как превратить широкую таблицу результатов в список «участник — задание — балл», сохранить нулевые оценки и проверить пропуски перед анализом курса.

В этом материале

Определите единицу записи в будущем журнале

В небольшой группе удобно отмечать баллы в таблице: участники расположены по строкам, задания — по столбцам. Но для поиска всех результатов одного задания потребуется другое представление. Подготовим список, в котором одна строка означает один известный балл участника за конкретное задание.

Для условной пробы используем три кода и два задания. У U01 за A стоят 2 балла, за B — 0. У U02 значения равны 1 и 3. У U03 за A результат отсутствует, за B стоят 2 балла. В исходном запросе отсутствие должно быть представлено значением null. Все числа придуманы для проверки преобразования, это не данные учеников Umhub.

До работы зафиксируйте ожидание: всего шесть возможных сочетаний участника и задания, пять известных результатов, один пропуск. Сумма известных баллов равна восьми. Эти числа помогут заметить потерю нуля или случайное превращение отсутствующего результата в оценку.

Подготовьте исходник с устойчивыми заголовками

Назовите столбцы Participant, A и B. Оставьте коды участников текстовыми, а оценки задайте числами. Уберите из области данных отдельную строку «Итого»: это вычисленный результат, который нельзя смешивать с участниками. Сохраните исходную книгу и работайте с копией.

Если источник начинается с внешнего файла, сначала проверьте его через управляемый импорт CSV. Для этого примера запрос уже должен содержать три корректные записи. Отмена свертывания не исправит перепутанные разделители и ошибочную кодировку предыдущего шага.

Запишите также правило пропуска: null означает, что балл пока неизвестен. Ноль означает известный результат, равный нулю. Если команда использует пустоту для нескольких разных состояний, сначала разделите их в исходном учёте. Иначе технически правильная таблица останется неоднозначной для куратора.

Превратите задания в значения одного поля

В редакторе Power Query выделите Participant и выберите «Преобразование» → «Отменить свертывание других столбцов», в английском интерфейсе Unpivot Other Columns. Названия A и B перейдут в поле Attribute, соответствующие оценки — в Value. Переименуйте эти поля в Assignment и Score.

Устройство операции и расположение команды описаны в документации Microsoft по отмене свертывания. Вариант с сохранением выбранного столбца подходит нашему сценарию: коды остаются признаками участника, остальные столбцы становятся записями результатов.

Это отличается от транспонирования таблицы. Здесь мы получаем повторяющиеся коды участников и отдельное поле задания. На маленькой пробе найдите запись U02, B, 3 и сравните её с исходным пересечением строки и столбца.

Проверьте нули и отсутствующие значения

В примере функции Table.Unpivot строки для значений null не попадают в результат. Поэтому для нашей таблицы ожидаются пять записей. Запись U01, B, 0 должна сохраниться; строки U03, A с числовой оценкой быть не должно.

Сверьте все результаты: U01 даёт две строки, U02 — две, U03 — одну. Затем сложите Score: 2 + 0 + 1 + 3 + 2 = 8. Если строк четыре, проверьте фильтр, который мог убрать нули. Если строк шесть, выясните, чем заполнен пропуск и на каком шаге это произошло.

Отдельно посчитайте среднее по заданию A среди известных результатов: (2 + 1) / 2 = 1,5. Подстановка нуля вместо пропуска дала бы 1. Это другой показатель с другим смыслом. Не выбирайте способ заполнения только потому, что после него удобнее строится отчёт.

Испытайте добавление следующего задания

В копию исходника добавьте столбец C. Для U01 укажите 4, для U02 — 2, для U03 оставьте null. Обновите запрос. Теперь ожидаются семь известных результатов с суммой 14, а среди девяти возможных сочетаний остаются два пропуска.

Unpivot Other Columns подхватывает новые столбцы, кроме сохранённых. Это удобно для новых заданий, но требует контроля структуры. Если рядом появится столбец «Комментарий», он тоже может попасть в преобразование. Не принимайте его за ещё одно задание: пересмотрите список сохраняемых полей и назначенные типы.

Для сценария с заранее фиксированным набором показателей Microsoft описывает отдельную команду Unpivot Only Selected Columns. Выбирайте её осознанно, если новые поля должны проходить ручное включение. Затем проверьте изменение исходника: способ обновления должен соответствовать договорённости команды.

Передайте журнал с правилами интерпретации

Загрузите результат на отдельный лист и подпишите назначение трёх полей. Укажите, что строка хранит известный балл, а отсутствие сочетания требует отдельной проверки исходной таблицы. Не выдавайте число строк за число участников: один человек здесь представлен несколькими записями.

Сохраните контрольный протокол: сначала пять строк и восемь баллов, после добавления C — семь и четырнадцать. Рядом отметьте две отсутствующие оценки U03. При повторных попытках понадобится дополнительный признак попытки; текущая маленькая схема рассчитана на один результат за задание.

Такой журнал можно использовать для фильтров и последующего анализа затруднений. Перед выводом о качестве урока проверьте, что одинаковое название задания означает одинаковые условия оценки. Преобразование упорядочивает записи, а содержательную сопоставимость обеспечивает автор курса.

Источники

  1. документации Microsoft по отмене свертывания ↗
  2. Table.Unpivot ↗
Создать аккаунт и собирать свою библиотеку →
От знаний — к своему курсу

Создайте свой курс в Umhub

Примените то, что узнали: соберите программу, добавьте материалы и пригласите учеников.

Создать курс