Добавить запросы 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, после согласования — четыре; пять исходных записей сохранены, тестовое добавление дало шестую. В рабочем процессе проверку структуры повторяют при появлении нового редактора или изменении формы журнала. Общий список можно использовать для планирования правок курса после того, как команда убедилась в смысле полей и сохранности записей.
Источники
Создайте свой курс в Umhub
Примените то, что узнали: соберите программу, добавьте материалы и пригласите учеников.