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

Добавить запросы Power Query: как собрать общий журнал правок курса

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

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

Выберите добавление строк для своей задачи

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

Microsoft различает добавление и слияние запросов: добавление соединяет строки, а слияние сопоставляет таблицы по значениям столбцов. Если к замечанию нужно присоединить имя автора по коду урока, это другой сценарий. Здесь мы складываем однотипные журналы друг под другом, не ищем совпадающую пару строк.

Работайте с копиями. До объединения запишите названия двух источников и количество записей без заголовков. Контроль «3 + 2 = 5» позволит заметить потерянную строку или случайно выбранный третий журнал. Он не заменяет проверку содержания, но задаёт понятную начальную границу.

Подготовьте две маленькие исходные таблицы

Назовём запросы ReviewA и ReviewB. В первом используем столбцы Batch, ID, Lesson, Issue. Batch хранит метку источника, ID — код замечания, Lesson — код урока, Issue — содержание проблемы. Для короткой пробы достаточно следующих строк:

  • A, A01, L01, «Не указан формат ответа».

  • A, A02, L02, «Не работает ссылка на пример».

  • A, A03, L03, «В подписи перепутаны обозначения».

Во втором журнале расположим поля иначе: ID, Lesson, Category, Batch. Дадим две записи: B01, L03, «Мелкий шрифт схемы», B и B02, L04, «Нет исходных данных задания», B. Разное название Category оставлено намеренно: сначала увидим его влияние. Оба поля Issue и Category в этом учебном наборе означают один и тот же текст замечания.

Для воспроизведения можно вручную ввести эти данные в редакторе Power Query через команду ввода данных. Microsoft описывает этот способ создания запроса и загрузку результата на лист. Если исходники уже находятся в Excel, сначала оформите их как понятные таблицы с устойчивыми заголовками и создайте запросы привычным способом импорта.

Создайте отдельный результирующий запрос

В Excel откройте «Данные» → «Запросы и подключения», затем нужный запрос. В редакторе на вкладке «Главная» раскройте команду добавления запросов и выберите «Добавить запросы как новые». В английском интерфейсе это Append Queries as New. Укажите режим двух таблиц, выберите ReviewA и ReviewB, подтвердите действие.

В документации Power Query объясняется разница: обычное добавление создаёт шаг текущего запроса, вариант «как новые» создаёт отдельный запрос и сохраняет исходные запросы без такого шага. Для первой проверки назовём результат ReviewAll, чтобы не путать его с источниками.

Посмотрите на предварительный результат до дальнейших действий. Не загружайте его сразу как готовый отчёт и не исправляйте пустоты произвольными значениями. Сейчас важнее понять, почему результат имеет именно такую структуру.

Найдите несовпадающие заголовки

Добавление сопоставляет столбцы по названиям, а не по их позиции. Поэтому перемещение Batch в конец второго журнала не должно перемешать значения. Зато Issue и Category становятся разными столбцами. В результате нашей первой пробы получится пять столбцов и пять строк.

У трёх строк источника A поле Category будет null, у двух строк B — поле Issue будет null. Это отсутствие соответствующего поля в исходной таблице, а не сообщение «редактор не нашёл ошибок». Сравните B01 с исходником: текст «Мелкий шрифт схемы» должен находиться в Category, код L03 — в Lesson, метка B — в Batch.

Убедившись, что смысл полей одинаков, переименуйте Category в Issue в исходном запросе ReviewB. Затем снова проверьте результат добавления. Теперь ожидаются четыре столбца и те же пять записей; все замечания находятся в Issue. Если одинаковые названия скрывают разные значения, переименование не подходит: сначала потребуется согласовать структуру журналов.

Проверьте происхождение и повторное выполнение

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

В тестовую версию ReviewB добавьте B03 для L05 с замечанием «Не раскрыта аббревиатура». После повторного вычисления результата ожидаются шесть записей: три из A и три из B. Проверьте именно новую строку, а не только итоговое число. Если источник — внешний файл, сохраните его изменение и отдельно проверьте обновление своего подключения.

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

Передайте результат вместе с правилом сборки

Загрузите проверенный запрос на лист через команду закрытия и загрузки редактора. Назовите лист так, чтобы коллега отличал общий результат от двух исходных журналов. Рядом укажите: одна строка — одно замечание, Batch обозначает источник, исходные запросы называются ReviewA и ReviewB.

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

Источники

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

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

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

Создать курс