AI для финансиста

Power Query и ChatGPT: пишем M-запросы через нейросеть и трансформируем финансовые данные без формул

Натали Васильева · · 35 мин чтения
UI-mockup на тёмном фоне: слева окно Power Query Advanced Editor с подсвеченным M-кодом (синий #2563EB, фиолетовый #7C3AED), справа окно ChatGPT с русским промптом и готовым M-запросом, без людей, современный продуктовый рендер 3:2

Типичная история: выгрузка из 1С лежит на столе, пять строк шапки сверху, суммы записаны текстом с пробелами как разделителями тысяч, даты в формате «дд.мм.гггг» вместо настоящих дат, и ты каждый месяц тратишь полтора часа на ручную правку одного и того же. В 2026 году это уже не обязательно. Power Query умеет запомнить все эти шаги и выполнять их в один клик. А ChatGPT, Claude Sonnet 4.6 или любая другая нейросеть умеет писать M-код для Power Query по вашему описанию на русском языке за 2-4 минуты.

Я Натали Васильева, эксперт по нейросетям и продюсер онлайн-школы «Финансовый директор | Мастер CFO». Работаю с AI-инструментами в задачах финансистов с февраля 2023 года, через курс прошли 800+ выпускников. В этой статье разберу, как использовать ChatGPT для написания M-запросов Power Query: 12 готовых промптов с M-кодом, три кейса с реальными цифрами, честный разбор ограничений и сравнение четырёх актуальных нейросетей. Актуально по состоянию на 27 июня 2026 года.

Что такое Power Query и зачем он финансисту в 2026 году?

Power Query это инструмент ETL (Extract, Transform, Load) встроенный в Excel и Power BI. ETL расшифровывается просто: извлекаем данные из источника, трансформируем (очищаем и преобразуем), загружаем в нужный формат. Power Query делает это через визуальный интерфейс и через M-язык под капотом.

Для финансиста это означает вот что. Вы один раз настраиваете шаги обработки, например «пропустить первые четыре строки заголовка 1С, удалить итоговые строки, преобразовать текстовые суммы в числа, разделить колонку “Дата и контрагент” на два отдельных поля». Потом нажимаете Обновить, и Power Query делает всё это автоматически с новой выгрузкой. Каждый месяц, без ручной работы.

Где находится Power Query в Excel: вкладка Данные -> раздел Получить и преобразовать данные. Кнопка «Из файла» запускает импорт и открывает редактор Power Query. В Microsoft 365 интерфейс обновляется, но логика та же. В Power BI Desktop Power Query это основной рабочий инструмент, без которого не строится ни один отчёт.

Почему это важно именно сейчас. Раньше Power Query казался инструментом для «продвинутых», потому что редактировать M-код без знания синтаксиса было сложно. Документация на английском, функций сотни, ошибки появляются в неожиданных местах. Нейросети убрали этот барьер: финансист описывает задачу словами, получает готовый M-код, вставляет в Advanced Editor и проверяет результат. Программирования нет, только понимание своей задачи.

Power Query бесплатен. Он встроен в Excel 2016, 2019, 2021 и Microsoft 365, а также в Power BI Desktop без дополнительной оплаты. Для большинства финансистов это инструмент, который уже лежит на рабочем столе и не используется из-за порога в виде M-языка. ChatGPT этот порог убирает.

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

Схема рабочей цепочки: выгрузка из 1С в Excel, описание задачи в ChatGPT на русском, получение M-кода, вставка в Power Query Advanced Editor, результат в виде чистой таблицы

Рабочая цепочка: описание задачи на русском в ChatGPT, M-код, вставка в Power Query, чистая таблица за 2-4 минуты вместо часа ручной правки.

Что такое M-язык и почему он выглядит страшнее, чем есть на самом деле?

M-язык (официально Power Query Formula Language) это функциональный язык программирования, на котором Power Query записывает все шаги трансформации. Когда вы кликаете в интерфейсе Power Query «удалить строки», «изменить тип» или «объединить столбцы», редактор автоматически дописывает соответствующую строчку M-кода в Advanced Editor.

Структура любого M-запроса всегда одна и та же:

let
    Шаг1 = ИсточникДанных,
    Шаг2 = Table.SomeFunction(Шаг1, параметры),
    Шаг3 = Table.AnotherFunction(Шаг2, параметры)
in
    Шаг3

Блок let содержит шаги по порядку. Каждый шаг получает результат предыдущего и делает с ним что-то одно: фильтрует строки, меняет тип колонки, добавляет новое поле. Блок in указывает, что отдать в результате, обычно это последний шаг. Когда открываете чужой M-запрос с 20 шагами, читайте его сверху вниз: каждая строчка это одно маленькое действие.

Три вещи, которые нужно понимать про M-язык перед работой с ChatGPT:

M-язык чувствителен к регистру. Table.SelectRows и table.selectrows это разные вещи, вторая вернёт ошибку. Когда копируете код из ChatGPT, регистр должен сохраниться точно. Большинство редакторов сохраняют его корректно при копировании.

Названия столбцов берутся дословно. Если в вашей таблице столбец называется «Сумма, руб.», а в коде написано «Сумма», будет ошибка. Если в имени есть пробел или запятая, M-код оборачивает его в специальные скобки: [#"Сумма, руб."]. Поэтому описывать структуру таблицы ChatGPT нужно с точными названиями, лучше скопировать заголовки прямо из Excel.

M-функции не переводятся на русский. Интерфейс Power Query на русском, но функции всегда на английском: Table.SelectRows, Table.TransformColumnTypes, Text.Trim. В подсказках ChatGPT их использует автоматически, это нормально. Русские названия появляются только там, где вы сами их задали как имена переменных или шагов.

Из-за этих трёх особенностей M-код, написанный ChatGPT без описания структуры вашей таблицы, почти наверняка не заработает с первого раза. Ниже разберу, как правильно описывать задачу, чтобы получать рабочий код сразу.

Пять самых используемых M-функций финансиста

Вот функции, которые встречаются в большинстве M-запросов. Знать их синтаксис наизусть не нужно, но понимать что каждая делает поможет проверить результат.

ФункцияЧто делаетТипичный сценарий
Table.SelectRowsФильтрует строки по условиюУбрать итоговые строки, пустые строки
Table.TransformColumnTypesМеняет тип столбцаТекст в число, текст в дату
Table.RenameColumnsПереименовывает столбцыПривести к единому стандарту имён
Table.AddColumnДобавляет вычисляемый столбецКатегория расходов по условию
Table.NestedJoinОбъединяет две таблицыАналог ВПР по ключевому полю
Table.GroupГруппирует и агрегируетСумма выручки по менеджерам
Table.UnpivotOtherColumnsТранспонирует матрицу в плоский видИз колонок-месяцев в строки
Table.CombineОбъединяет несколько таблиц вертикальноСклейка 12 ежемесячных файлов
Text.TrimУбирает лишние пробелы по краямОчистка текстовых полей из 1С
Date.FromTextПреобразует текст в датуДаты формата «дд.мм.гггг» из 1С

ChatGPT знает все эти функции и правильно комбинирует их по вашему описанию. Задача финансиста: понять по результату в Preview, что шаг сработал так как нужно.

Как ChatGPT помогает с Power Query: четыре сценария из практики

ChatGPT решает четыре класса задач в Power Query, и у каждого своя логика взаимодействия с нейросетью.

Сценарий 1. Написать M-код с нуля. Вы описываете что нужно сделать с таблицей. ChatGPT пишет полный M-запрос. Вставляете в Advanced Editor, проверяете результат в Preview. Без ChatGPT та же задача у финансиста без опыта в M-языке занимает 30-60 минут с поиском документации и попытками. С ChatGPT это 2-4 минуты на промпт и ещё 5-10 минут на проверку результата.

Сценарий 2. Исправить ошибку. Power Query выдал сообщение об ошибке вроде «Expression.Error: мы не смогли преобразовать значение “H” в тип Number». Вы копируете ошибку и текущий M-код в ChatGPT, описываете что ожидали получить. ChatGPT объясняет причину и предлагает исправленный код. По моей практике с учениками, 80% ошибок исправляются за одну итерацию при грамотно составленном промпте с текстом ошибки.

Сценарий 3. Объяснить чужой запрос. Вам достался файл с Power Query запросами, написанными предыдущим сотрудником или аналитиком. Копируете M-код в ChatGPT и просите объяснить простыми словами: что делает каждый шаг, где может сломаться, что будет если структура входящих данных изменится. Очень ценный сценарий при передаче дел.

Сценарий 4. Документировать запрос для команды. Когда вы настроили Power Query под сложную задачу и хотите, чтобы коллеги понимали логику без вашего участия, просите ChatGPT написать комментарий к каждому шагу M-кода. В M-языке комментарии пишутся через // в конце строки или блоками /* ... */, ChatGPT знает этот синтаксис и вставляет пояснения корректно. Получаете читаемый запрос, в котором через полгода разберётся кто угодно.

Как описать задачу ChatGPT: шаблон промпта

Большинство финансистов, которые жалуются «ChatGPT написал нерабочий код», пропускают один шаг. ChatGPT не видит ваши данные: он видит только текст промпта. Если написать «очисти мою таблицу из 1С», нейросеть придумает названия столбцов сама, они не совпадут с реальными, и код не заработает.

Рабочий шаблон для первого промпта в сессии содержит четыре блока:

  1. Источник данных: откуда берётся таблица (выгрузка из 1С, файл Excel, CSV)
  2. Структура: точные названия столбцов и типы данных
  3. Проблемы: что конкретно нужно исправить (лишние строки, текстовые числа, объединённые ячейки)
  4. Ожидаемый результат: как должна выглядеть чистая таблица
Промпт 1. Шаблон описания таблицы для первого запроса

Я финансовый директор, работаю в Excel 2021.
Мне нужен M-код для Power Query.

ИСТОЧНИК ДАННЫХ:
Файл Excel, выгрузка из 1С "Оборотно-сальдовая ведомость за период".

СТРУКТУРА (после лишних строк):
Колонка A: "Счёт" (текст, например "01.01")
Колонка B: "Наименование" (текст)
Колонка C: "Сальдо начало Дт" (число, но в файле записано как текст с пробелами)
Колонка D: "Сальдо начало Кт" (число, тоже текст с пробелами)
Колонка E: "Оборот Дт" (число, тоже текст)
Колонка F: "Оборот Кт" (число, тоже текст)
Колонка G: "Сальдо конец Дт" (число, тоже текст)
Колонка H: "Сальдо конец Кт" (число, тоже текст)

ПРОБЛЕМЫ:
1. Первые 6 строк это шапка отчёта 1С, их нужно пропустить
2. Числа в колонках C-H записаны как текст с пробелами как разделителями тысяч
   (например "1 234 567,89"). Нужно преобразовать в числа.
3. Строки, где колонка A пустая или начинается с "Итого" — удалить
4. Первая строка после шапки это заголовки столбцов

НУЖНО:
M-запрос, который загружает этот файл, пропускает шапку,
устанавливает правильные заголовки, удаляет итоговые строки,
преобразует числовые колонки в тип Number.

По моей практике с учениками, после такого промпта ChatGPT пишет рабочий M-код с первого раза в большинстве случаев. Единичные задачи требуют одной итерации на уточнение.

Важный лайфхак: попросите ChatGPT добавить шаг проверки прямо в M-запрос. Это простой шаг в конце, который выводит количество строк до и после фильтрации, чтобы убедиться что ни одна нужная строка не удалена. В M-коде это выглядит как отдельная переменная КоличествоСтрок = Table.RowCount(ОчищенныеДанные) в блоке let. Когда открываете Advanced Editor и видите что после очистки осталось 0 строк, проблема в условии фильтрации, а не в источнике данных: это помогает быстро найти где ошибка.

Двенадцать готовых промптов для Power Query: типовые задачи финансиста

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

Задача 1. Очистить стандартную выгрузку из 1С

Это самый частый запрос. Выгрузки 1С приходят с заголовком отчёта, итоговыми строками и числами как текстом.

Промпт 2. Очистка выгрузки из 1С (базовый)

У меня выгрузка из 1С в Excel. Структура:
- Строки 1-4: заголовок отчёта (название компании, период, дата) — нужно пропустить
- Строка 5: заголовки столбцов
- Далее: данные
- Последние 2-3 строки: итоговые строки, начинаются со слова "Итого" в первом столбце

Столбцы:
"Дата" (текст формата "дд.мм.гггг"), "Контрагент" (текст),
"Документ" (текст), "Сумма Дт" (текст с пробелами), "Сумма Кт" (текст с пробелами)

Нужно:
- Пропустить строки 1-4
- Использовать строку 5 как заголовки
- Удалить строки где первый столбец содержит "Итого" или пустой
- Преобразовать "Дата" из текста в тип Date (формат дд.мм.гггг)
- Преобразовать "Сумма Дт" и "Сумма Кт" из текста в число
  (убрать пробелы, заменить запятую на точку)
- Написать полный M-код для Power Query в Excel 2021

Базовый M-код для этой задачи:

let
    Источник = Excel.Workbook(File.Contents("C:\data\выгрузка.xlsx"), null, true),
    Лист = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    УдалитьШапку = Table.Skip(Лист, 4),
    ПервыйРядЗаголовки = Table.PromoteHeaders(УдалитьШапку, [PromoteAllScalars=true]),
    УдалитьПустыеИИтоги = Table.SelectRows(ПервыйРядЗаголовки,
        each [Дата] <> null
          and [Дата] <> ""
          and not Text.StartsWith(Text.From([Дата]), "Итого")),
    ПреобразоватьДату = Table.TransformColumns(УдалитьПустыеИИтоги,
        {{"Дата", each Date.FromText(_, [Culture="ru-RU"]), type date}}),
    ОчиститьСуммуДт = Table.TransformColumns(ПреобразоватьДату,
        {{"Сумма Дт",
          each Number.From(Text.Replace(Text.Replace(Text.Trim(_), " ", ""), ",", ".")),
          type number}}),
    ОчиститьСуммуКт = Table.TransformColumns(ОчиститьСуммуДт,
        {{"Сумма Кт",
          each Number.From(Text.Replace(Text.Replace(Text.Trim(_), " ", ""), ",", ".")),
          type number}})
in
    ОчиститьСуммуКт

Задача 2. Объединить таблицы из разных источников (аналог ВПР)

Когда нужно подтянуть данные из справочника в таблицу фактов.

Промпт 3. Объединение двух таблиц в Power Query

У меня два запроса в Power Query:
1. "Платежи" — таблица с полями: ДатаПлатежа (Date), КонтрагентID (Text),
   СуммаПлатежа (Number)
2. "Контрагенты" — справочник: КонтрагентID (Text), НазваниеКонтрагента (Text),
   Регион (Text), ГруппаКонтрагента (Text)

Нужно:
- Объединить таблицу "Платежи" со справочником "Контрагенты"
  по полю КонтрагентID (Left Join: все строки из Платежей)
- Из справочника добавить: НазваниеКонтрагента, Регион, ГруппаКонтрагента
- Если для КонтрагентID нет соответствия в справочнике — оставить null
- Итоговая таблица: ДатаПлатежа, НазваниеКонтрагента, Регион,
  ГруппаКонтрагента, СуммаПлатежа

Напиши M-код для создания нового запроса с объединением.
let
    ЛевоеОбъединение = Table.NestedJoin(
        Платежи, {"КонтрагентID"},
        Контрагенты, {"КонтрагентID"},
        "СправочникКонтрагентов", JoinKind.LeftOuter
    ),
    РаскрытьСправочник = Table.ExpandTableColumn(
        ЛевоеОбъединение, "СправочникКонтрагентов",
        {"НазваниеКонтрагента", "Регион", "ГруппаКонтрагента"}
    ),
    ВыбратьКолонки = Table.SelectColumns(РаскрытьСправочник,
        {"ДатаПлатежа", "НазваниеКонтрагента", "Регион",
         "ГруппаКонтрагента", "СуммаПлатежа"})
in
    ВыбратьКолонки

Задача 3. Собрать данные из нескольких файлов в одной папке

Классическая задача: двенадцать ежемесячных отчётов в папке, нужно объединить в один.

Промпт 4. Объединить все файлы Excel из папки

У меня папка "C:\отчёты_2026\" с 12 файлами Excel (по одному на каждый месяц).
Структура каждого файла одинаковая:
- Лист "Продажи"
- Строка 1: заголовки столбцов
- Столбцы: "Дата" (Date), "Менеджер" (Text), "Продукт" (Text), "Сумма" (Number)

Нужно:
- Загрузить все .xlsx файлы из папки автоматически
- Объединить в одну таблицу
- Добавить столбец "Источник" с именем файла (без расширения)
- Итоговая структура: Дата, Менеджер, Продукт, Сумма, Источник

Напиши M-запрос для Power Query в Excel.
let
    ИсточникПапка = Folder.Files("C:\отчёты_2026\"),
    ФильтрExcel = Table.SelectRows(
        ИсточникПапка,
        each Text.EndsWith([Name], ".xlsx")
    ),
    ДобавитьДанные = Table.AddColumn(
        ФильтрExcel, "Данные",
        each
            let
                Книга = Excel.Workbook([Content], null, true),
                Лист = Книга{[Item="Продажи", Kind="Sheet"]}[Data],
                ЗаголовкиИзСтроки = Table.PromoteHeaders(Лист, [PromoteAllScalars=true])
            in
                ЗаголовкиИзСтроки
    ),
    ДобавитьИсточник = Table.AddColumn(
        ДобавитьДанные, "ИмяФайла",
        each Text.BeforeDelimiter([Name], ".")
    ),
    РаскрытьДанные = Table.ExpandTableColumn(
        ДобавитьИсточник, "Данные",
        {"Дата", "Менеджер", "Продукт", "Сумма"}
    ),
    ВыбратьКолонки = Table.SelectColumns(
        РаскрытьДанные,
        {"Дата", "Менеджер", "Продукт", "Сумма", "ИмяФайла"}
    ),
    ПереименоватьИсточник = Table.RenameColumns(
        ВыбратьКолонки, {{"ИмяФайла", "Источник"}}
    )
in
    ПереименоватьИсточник
Power Query Advanced Editor с M-кодом объединения файлов из папки: функция Folder.Files, Table.Combine и расширение вложенных таблиц, тёмная тема редактора, код на синем фоне

M-код для сбора файлов из папки: Folder.Files подбирает все Excel-файлы автоматически, Table.Combine склеивает данные. ChatGPT пишет этот код по описанию структуры за 2-3 минуты.

Задача 4. Добавить вычисляемый столбец по условию

Когда нужно разбить сумму по категориям на основе значений другой колонки.

Промпт 5. Добавить столбец с категорией по условию

У меня таблица "Расходы" со столбцами:
"СтатьяРасходов" (Text), "Сумма" (Number)

Нужно добавить столбец "КатегорияДляОтчёта" по правилу:
- Если СтатьяРасходов содержит "Зарплата" или "Премия" или "НДФЛ" → "Фонд оплаты труда"
- Если СтатьяРасходов содержит "Аренда" или "Коммунал" → "Аренда и содержание"
- Если СтатьяРасходов содержит "Реклам" или "Маркетин" → "Маркетинг"
- Всё остальное → "Прочее"

Поиск по подстроке, регистр не важен.
Напиши M-код для добавления этого столбца.
let
    ДобавитьКатегорию = Table.AddColumn(Расходы, "КатегорияДляОтчёта",
        each
            let с = Text.Lower([СтатьяРасходов])
            in if Text.Contains(с, "зарплата") or Text.Contains(с, "премия")
                  or Text.Contains(с, "ндфл")
               then "Фонд оплаты труда"
               else if Text.Contains(с, "аренда") or Text.Contains(с, "коммунал")
               then "Аренда и содержание"
               else if Text.Contains(с, "реклам") or Text.Contains(с, "маркетин")
               then "Маркетинг"
               else "Прочее",
        type text)
in
    ДобавитьКатегорию

Задача 5. Транспонировать матрицу и привести к плоскому виду

Выгрузки из 1С часто приходят в виде матрицы «период по горизонтали», а для Power BI или анализа нужна плоская таблица. Эта операция называется unpivot или анпивот, и в финансовой аналитике применяется постоянно.

Промпт 6. Распаковать матрицу в плоскую таблицу (unpivot)

У меня таблица с бюджетом: строки это статьи P&L (15 статей),
столбцы это месяцы — Январь_план, Февраль_план, ..., Декабрь_план.
В каждой ячейке плановая сумма в рублях.

Также есть колонки "Статья" (Text) и "ГруппаСтатьи" (Text) —
их нужно сохранить как идентификаторы.

Нужно привести к плоскому виду:
- Статья (Text)
- ГруппаСтатьи (Text)
- Месяц (Text) — название месяца, например "Январь"
- Сумма_план (Number)

Из 12 столбцов месяцев должны получиться 12 строк для каждой статьи.
Напиши M-код с функцией Table.UnpivotOtherColumns.
Объясни разницу между Table.Unpivot и Table.UnpivotOtherColumns для этого случая.
let
    // Table.UnpivotOtherColumns оставляет выбранные колонки на месте
    // и разворачивает ВСЕ ОСТАЛЬНЫЕ. Это удобнее чем Table.Unpivot,
    // который требует явно перечислять все колонки месяцев.
    РаспаковатьМатрицу = Table.UnpivotOtherColumns(
        БюджетПлан,
        {"Статья", "ГруппаСтатьи"},
        "Месяц",
        "Сумма_план"
    ),
    // Убираем суффикс "_план" из названий месяцев если он есть
    ОчиститьМесяц = Table.TransformColumns(
        РаспаковатьМатрицу,
        {{"Месяц", each Text.Replace(_, "_план", ""), type text}}
    ),
    УстановитьТипы = Table.TransformColumnTypes(
        ОчиститьМесяц,
        {{"Сумма_план", type number}}
    )
in
    УстановитьТипы

Задача 6. Нормализовать форматы полей: ИНН, телефоны, коды

Промпт 7. Нормализация форматов поля ИНН

У меня столбец "ИНН" (Text). В нём разные форматы записи:
"7712345678", "77-1234-5678", "77 1234 5678", "ИНН: 7712345678"

Нужно привести к единому виду: только 10 или 12 цифр без разделителей.
Логика:
1. Убрать все нецифровые символы (пробелы, дефисы, буквы, двоеточие)
2. Если после очистки длина не 10 (для ЮЛ) и не 12 (для ИП) — пометить "ОШИБКА_ИНН"
3. Записать в столбец "ИНН_чистый"

Напиши M-код для добавления столбца "ИНН_чистый".
let
    ДобавитьЧистыйИНН = Table.AddColumn(
        ТаблицаКонтрагентов,
        "ИНН_чистый",
        each
            let
                БезЛишнего = Text.Select(
                    Text.From([ИНН]),
                    {"0".."9"}
                ),
                Длина = Text.Length(БезЛишнего)
            in
                if Длина = 10 or Длина = 12
                then БезЛишнего
                else "ОШИБКА_ИНН",
        type text
    )
in
    ДобавитьЧистыйИНН

Задача 7. Сгруппировать данные и посчитать агрегаты

Промпт 8. Группировка и агрегация в Power Query

У меня таблица "ДетализацияПродаж":
"Дата" (Date), "МенеджерID" (Text), "Регион" (Text),
"КатегорияТовара" (Text), "ВыручкаФакт" (Number), "СебестоимостьФакт" (Number)

Нужно сгруппировать по МенеджерID и КатегорияТовара и посчитать:
- ВыручкаИтого = сумма ВыручкаФакт
- СебестоимостьИтого = сумма СебестоимостьФакт
- КоличествоСделок = количество строк
- МаксимальнаяСделка = максимум по ВыручкаФакт
- ВаловаяПрибыль = ВыручкаИтого - СебестоимостьИтого

Напиши M-код с функцией Table.Group.
let
    Группировка = Table.Group(
        ДетализацияПродаж,
        {"МенеджерID", "КатегорияТовара"},
        {
            {"ВыручкаИтого", each List.Sum([ВыручкаФакт]), type number},
            {"СебестоимостьИтого", each List.Sum([СебестоимостьФакт]), type number},
            {"КоличествоСделок", each Table.RowCount(_), Int64.Type},
            {"МаксимальнаяСделка", each List.Max([ВыручкаФакт]), type number}
        }
    ),
    ДобавитьВаловую = Table.AddColumn(
        Группировка, "ВаловаяПрибыль",
        each [ВыручкаИтого] - [СебестоимостьИтого],
        type number
    )
in
    ДобавитьВаловую

Задача 8. Отладка ошибки преобразования типа

Промпт 9. Отладка ошибки преобразования типа в Power Query

В моём M-запросе есть шаг:
Table.TransformColumnTypes(Источник, {{"Сумма", type number}})

Получаю ошибку:
Expression.Error: Не удалось преобразовать значение "1 234,56" в тип Number.

Моя таблица: данные из 1С, числа записаны с пробелом как разделителем тысяч
и запятой как разделителем дробной части.

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

Исправленный шаг для замены в уже готовом M-запросе:

ПреобразоватьСумму = Table.TransformColumns(
    Источник,
    {{"Сумма",
      each Number.From(
          Text.Replace(
              Text.Replace(Text.Trim(_), " ", ""),
              ",", "."
          )
      ),
      type number}}
)

Объяснение цепочки: Text.Trim(_) убирает пробелы по краям строки, первый Text.Replace удаляет пробелы как разделители тысяч, второй заменяет запятую на точку, Number.From конвертирует в число.

Задача 9. Параметризировать путь к файлу

Промпт 10. Параметр пути к файлу в Power Query

У меня M-запрос с жёстко прописанным путём к файлу:
File.Contents("C:\Иванова\выгрузки\январь_2026.xlsx")

Хочу вынести путь к папке в отдельный параметр Power Query,
чтобы разные пользователи могли указывать свой путь без редактирования M-кода.

Объясни как создать параметр в Power Query и как использовать его
в M-запросе. Покажи пример с использованием параметра "ПапкаДанных".

Использование параметра в M-коде после его создания через интерфейс:

let
    // ПапкаДанных это параметр Power Query типа Text
    // Создаётся через: Главная -> Управление параметрами -> Создать параметр
    ПолныйПуть = ПапкаДанных & "\выгрузка.xlsx",
    Источник = Excel.Workbook(File.Contents(ПолныйПуть), null, true),
    Лист = Источник{[Item="Лист1", Kind="Sheet"]}[Data]
in
    Лист

Параметр ПапкаДанных создаётся в интерфейсе Power Query: вкладка Главная -> Управление параметрами. Пользователь вводит свой путь один раз, и все запросы, ссылающиеся на этот параметр, обновляют источник автоматически.


Каждую неделю разбираю AI-инструменты для финансистов в @findir_pro. Там 45 000 финансистов: конкретные кейсы без воды.


Дата-таблица для финансового анализа: создаём через ChatGPT

Дата-таблица (dimension calendar) это отдельная таблица с одной строкой на каждый день анализируемого периода и набором вычисленных атрибутов: год, квартал, месяц, название месяца, номер недели, признак выходного дня. В Power BI она обязательна для корректных функций временной аналитики (нарастающий итог, сравнение с прошлым периодом). В Excel Power Pivot тоже ценна.

Создавать её вручную утомительно. ChatGPT пишет M-запрос для полноценной дата-таблицы с первого промпта.

Промпт 11. Создать таблицу дат для финансового анализа

Мне нужна таблица дат для Power Query / Power BI.
Диапазон: с 01.01.2024 по 31.12.2026 (три года).

Нужные столбцы:
- Дата (Date)
- Год (Int64)
- Квартал_Номер (Int64, 1-4)
- Квартал_Текст (Text, "Q1", "Q2", "Q3", "Q4")
- Месяц_Номер (Int64, 1-12)
- Месяц_Название (Text, на русском: "Январь", "Февраль"...)
- Месяц_КраткоеНазвание (Text, "Янв", "Фев"...)
- Год_Месяц (Text, "2024-01", "2024-02"...)
- НомерНедели (Int64, ISO-неделя)
- ДеньНедели_Номер (Int64, 1=Пн, 7=Вс)
- ДеньНедели_Название (Text, на русском)
- Выходной (Logical, true для Сб и Вс)
- НачалоМесяца (Date)
- КонецМесяца (Date)

Напиши M-запрос для Power Query. Без зависимостей от других запросов.
let
    НачалоПериода = #date(2024, 1, 1),
    КонецПериода = #date(2026, 12, 31),
    КоличествоДней = Duration.Days(КонецПериода - НачалоПериода) + 1,
    СписокДат = List.Dates(НачалоПериода, КоличествоДней, #duration(1, 0, 0, 0)),
    ТаблицаДат = Table.FromList(СписокДат, Splitter.SplitByNothing(), {"Дата"}),
    УстановитьТипДаты = Table.TransformColumnTypes(ТаблицаДат, {{"Дата", type date}}),
    ДобавитьГод = Table.AddColumn(УстановитьТипДаты, "Год",
        each Date.Year([Дата]), Int64.Type),
    ДобавитьКварталНомер = Table.AddColumn(ДобавитьГод, "Квартал_Номер",
        each Date.QuarterOfYear([Дата]), Int64.Type),
    ДобавитьКварталТекст = Table.AddColumn(ДобавитьКварталНомер, "Квартал_Текст",
        each "Q" & Text.From(Date.QuarterOfYear([Дата])), type text),
    ДобавитьМесяцНомер = Table.AddColumn(ДобавитьКварталТекст, "Месяц_Номер",
        each Date.Month([Дата]), Int64.Type),
    ДобавитьМесяцНазвание = Table.AddColumn(ДобавитьМесяцНомер, "Месяц_Название",
        each Date.MonthName([Дата], "ru-RU"), type text),
    ДобавитьМесяцКратко = Table.AddColumn(ДобавитьМесяцНазвание, "Месяц_КраткоеНазвание",
        each Text.Start(Date.MonthName([Дата], "ru-RU"), 3), type text),
    ДобавитьГодМесяц = Table.AddColumn(ДобавитьМесяцКратко, "Год_Месяц",
        each Text.From(Date.Year([Дата])) & "-"
             & Text.PadStart(Text.From(Date.Month([Дата])), 2, "0"),
        type text),
    ДобавитьНеделю = Table.AddColumn(ДобавитьГодМесяц, "НомерНедели",
        each Date.WeekOfYear([Дата], Day.Monday), Int64.Type),
    ДобавитьДеньНедели = Table.AddColumn(ДобавитьНеделю, "ДеньНедели_Номер",
        each Date.DayOfWeek([Дата], Day.Monday) + 1, Int64.Type),
    ДобавитьДеньНазвание = Table.AddColumn(ДобавитьДеньНедели, "ДеньНедели_Название",
        each Date.DayOfWeekName([Дата], "ru-RU"), type text),
    ДобавитьВыходной = Table.AddColumn(ДобавитьДеньНазвание, "Выходной",
        each Date.DayOfWeek([Дата], Day.Monday) >= 5, type logical),
    ДобавитьНачалоМесяца = Table.AddColumn(ДобавитьВыходной, "НачалоМесяца",
        each Date.StartOfMonth([Дата]), type date),
    ДобавитьКонецМесяца = Table.AddColumn(ДобавитьНачалоМесяца, "КонецМесяца",
        each Date.EndOfMonth([Дата]), type date)
in
    ДобавитьКонецМесяца

Этот запрос создаёт 1096 строк для трёх лет с 15 атрибутами. После подключения к модели данных Power BI или Power Pivot в Excel таблица дат позволяет использовать функции TOTALYTD, DATEADD, SAMEPERIODLASTYEAR без дополнительной настройки.

Задача дополнительная: создать пользовательскую M-функцию для очистки чисел

Когда одна и та же операция нужна в десяти запросах, дублировать код расточительно. В M-языке можно вынести логику в функцию и вызывать её по имени.

Промпт 12. Создать реиспользуемую M-функцию для очистки числовых строк из 1С

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

Функция должна:
1. Принимать текстовое значение (число, записанное как текст из 1С)
2. Убрать пробелы как разделители тысяч
3. Заменить запятую на точку (десятичный разделитель)
4. Убрать лишние пробелы по краям
5. Если значение пустое или null — вернуть null
6. Иначе — вернуть число (Number)

Напиши эту функцию как отдельный M-запрос под именем "ОчиститьЧисло1С".
Покажи как её вызвать в другом запросе.
// Этот запрос создаётся как отдельный именованный запрос "ОчиститьЧисло1С"
// В Power Query: нажать + новый запрос -> Пустой запрос -> вставить код
(ВходнойТекст as nullable text) as nullable number =>
    if ВходнойТекст = null or Text.Trim(ВходнойТекст) = ""
    then null
    else Number.From(
        Text.Replace(
            Text.Replace(
                Text.Trim(ВходнойТекст),
                " ", ""
            ),
            ",", "."
        )
    )

После создания функции её вызов в другом запросе выглядит так:

// В запросе "ОчисткаОСВ" функция вызывается по имени
ПреобразоватьЧисла = Table.TransformColumns(
    ДанныеПослеФильтрации,
    {
        {"Сальдо начало Дт", ОчиститьЧисло1С},
        {"Сальдо начало Кт", ОчиститьЧисло1С},
        {"Оборот Дт",         ОчиститьЧисло1С},
        {"Оборот Кт",         ОчиститьЧисло1С},
        {"Сальдо конец Дт",   ОчиститьЧисло1С},
        {"Сальдо конец Кт",   ОчиститьЧисло1С}
    }
)

Преимущество: если логика очистки изменится (например, в новой выгрузке 1С разделитель стал точкой вместо запятой), вы правите только функцию ОчиститьЧисло1С, и все 10 запросов обновляются автоматически.

Три кейса с цифрами: что изменилось после Power Query + ChatGPT

Кейс 1. Ежемесячная консолидация из 14 юридических лиц

Было. Финансовый директор торговой сети, 14 юридических лиц, каждое со своей выгрузкой из 1С. Ежемесячная консолидация: вручную открыть 14 файлов, скопировать данные на один лист, убрать заголовки, привести форматы к единому виду, проверить что суммы сошлись. Примерно 6-7 часов каждый месяц, и почти всегда где-то ошибка при копировании. Один раз пропущенный минус в знаке цифры обнаружился только при встрече с акционерами.

Что сделали. Через ChatGPT написали M-запрос для Power Query, который берёт все 14 файлов из одной папки через Folder.Files, проверяет структуру каждого, добавляет поле с названием юридического лица из имени файла, приводит числовые форматы к единому виду и объединяет всё в одну таблицу. На написание и отладку M-кода ушло около 3 часов вместе с ChatGPT. Потребовалось три итерации: на второй оказалось, что у трёх юридических лиц другая кодировка файла, на третьей отловили строки-итоги, которые нужно было исключить.

Стало. Обновление занимает 4 минуты: положить 14 файлов в папку и нажать Обновить в Excel. Ежемесячная экономия около 6 часов, при ставке финансового директора 2 500 руб/час это 15 000 рублей в месяц или 180 000 рублей в год. Ошибки при ручном копировании исчезли полностью. Дополнительный эффект: консолидированный отчёт теперь готов к 5-му числу следующего месяца, а не к 15-му.

Кейс 2. Автоматизация сверки платёжного реестра с банковской выпиской

Было. Главный бухгалтер оптовой компании. Каждую неделю сверяла платёжный реестр из 1С с банковской выпиской из интернет-банка в CSV. Вручную: сортировка, поиск дублей, поиск незакрытых платежей, сверка сумм. Около 2 часов каждую пятницу. При этом сверка была ежемесячной по факту, а не еженедельной, потому что занимала слишком много времени.

Что сделали. Попросила ChatGPT написать три M-запроса в Power Query: первый загружает платёжный реестр из 1С и очищает его, второй загружает банковскую выписку из CSV и нормализует форматы дат и сумм, третий объединяет их через Table.NestedJoin по сумме и дате с допуском в один день, помечает несовпадения флагом «Требует проверки». На написание трёх запросов через ChatGPT ушло около 4 часов включая отладку нестандартного формата CSV выписки конкретного банка.

Стало. Сверка занимает 15 минут: обновить запросы, проверить таблицу несовпадений. Экономия 1,5-1,7 часа в неделю, около 85 часов в год. При ставке 1 200 руб/час это более 100 000 рублей в год. Главный эффект оказался неожиданным: сверка стала еженедельной вместо ежемесячной, что позволяет ловить ошибки в 4 раза быстрее. За первый квартал поймали два дублирующих платежа на 180 000 рублей суммарно.

Кейс 3. Подготовка данных для дашборда Power BI без аналитика

Было. Финансовый менеджер стартапа в сфере онлайн-сервисов. Нужен был дашборд для инвесторов с данными из трёх источников: CRM в виде выгрузки CSV, Google Sheets с плановыми показателями, 1С с фактом. Раньше всё сводилось вручную в Excel один раз в квартал за два полных рабочих дня. Данные за прошлые кварталы хранились в разных версиях файла с именами типа «дашборд_финал_ФИНАЛ_2».

Что сделали. Через ChatGPT написали M-запросы для каждого источника, настроили нормализацию ключей, добавили поля для слияния. Всего 7 M-запросов. Основная сложность была в датах: CRM отдавала даты в формате Unix timestamp (число секунд от 1 января 1970 года). ChatGPT написал формулу преобразования со второй попытки, объяснив почему первый вариант дал неверные значения: нужно делить на 86 400 и прибавлять к базовой дате.

// Преобразование Unix timestamp в дату Power Query
ПреобразоватьUnix = Table.AddColumn(
    ДанныеCRM, "ДатаСделки",
    each #date(1970, 1, 1) + #duration(Number.IntegerDivide([ДатаUnix], 86400), 0, 0, 0),
    type date
)

Стало. Данные для дашборда обновляются за 8 минут. Ежеквартальная подготовка сократилась с 2 дней до 40 минут. Аналитик данных не нанимался, сэкономили на консультациях аналитика около 120 000 рублей за год. Инвесторы получают отчёт по запросу, а не раз в квартал.

Инфографика трёх кейсов Power Query + ChatGPT: горизонтальные полосы до/после по часам и рублям, тёмный фон, цвета бренда синий и фиолетовый

Три кейса: от 6 часов консолидации до 4 минут, от 2 часов сверки еженедельно до 15 минут, от 2 дней подготовки данных ежеквартально до 40 минут.

GPT-5.5, Claude Sonnet 4.6, Gemini 2.5 и DeepSeek V3.2: кто лучше пишет M-запросы?

Если у вас есть подписки на несколько нейросетей, вот практическое сравнение по задачам Power Query на июнь 2026 года.

ЗадачаGPT-5.5Claude Sonnet 4.6Gemini 2.5DeepSeek V3.2
Базовые трансформации (очистка, типы, фильтрация)ОтличноОтличноХорошоХорошо
Объединение таблиц (NestedJoin + ExpandTableColumn)ОтличноОтличноХорошоУдовлетворительно
Сбор файлов из папки (Folder.Files)ОтличноОтличноХорошоСлабо
Отладка ошибок Power Query по тексту ошибкиОтличноХорошоУдовлетворительноСлабо
Объяснение M-кода простым языкомХорошоОтличноХорошоХорошо
Нестандартные задачи (Unix timestamp, кодировки)ХорошоХорошоУдовлетворительноСлабо
Группировка и агрегация (Table.Group)ОтличноОтличноХорошоХорошо
Создание дата-таблицыОтличноОтличноХорошоУдовлетворительно
Параметризация и пользовательские функцииХорошоХорошоУдовлетворительноСлабо
Доступ без специальных средств в РоссииНетНетНетДа
Цена (базовый тариф)$20/мес.$20/мес.Бесплатно/платноБесплатно

Мои практические выводы:

GPT-5.5 через chatgpt.com лучший для отладки M-кода. Понимает текст сообщений об ошибках Power Query буквально, предлагает конкретное исправление и объясняет причину. Режим Холст удобен для итерации длинных запросов: можно редактировать конкретный шаг, не переписывая весь M-код заново.

Claude Sonnet 4.6 беру когда нужно объяснить логику M-кода коллеге или написать сложный запрос с нестандартной структурой данных. Лучше удерживает длинный контекст сессии, что полезно при объяснении всей архитектуры нескольких связанных запросов. Документирование кода у Claude получается особенно читаемым.

Gemini 2.5 удобен если работаете в экосистеме Google и данные уже в Google Sheets: нет нужды переключаться между продуктами. Для M-кода Power Query немного уступает по глубине отладки, но базовые задачи решает корректно.

DeepSeek V3.2 работает без специальных средств подключения в России. Базовые трансформации напишет правильно. Для нестандартных задач и отладки результат стоит дополнительно проверить, особенно если задача нетипичная.

Мой рабочий стек: ChatGPT для генерации и отладки M-кода, Claude для объяснения логики и документирования запросов. Про возможности Claude в финансовых задачах подробнее в обзоре Claude для финансиста и бухгалтера.

Где ChatGPT ошибается в M-коде и как это быстро исправить

ChatGPT делает ошибки в Power Query. Важно знать где, чтобы не тратить время итерируя в неправильном направлении.

Ошибка 1: Неправильный тип при преобразовании. ChatGPT может предложить type number там, где нужен Int64.Type для целых чисел, или type date вместо type datetime. Power Query строгий по типам, и несовпадение даёт ошибку в следующем шаге. Решение: в промпте явно укажите ожидаемый тип «целое число», «дата без времени», «число с дробной частью».

Ошибка 2: Несуществующие названия столбцов. Если описание структуры неточное, ChatGPT использует свои варианты имён. M-код чувствителен к регистру и пробелам: «Сумма Дт» и «сумма дт» это разные столбцы. Решение: описывайте структуру с точными названиями как в файле, в кавычках. Лучше скопировать заголовки прямо из строки формул Excel и вставить в промпт.

Ошибка 3: Функции только для Power BI, но не для Excel. Некоторые M-функции работают в Power BI Desktop, но недоступны в Excel. Например, Table.Profile есть в Power BI, но в Excel может отсутствовать. Решение: в промпте явно укажите «пишу для Excel 2021» или «для Power BI Desktop».

Ошибка 4: Устаревший синтаксис. ChatGPT иногда предлагает паттерны из ранних версий Power Query. Это работает, но можно уточнить: «есть ли более современный способ написать этот шаг в 2025-2026 году?»

Ошибка 5: Проблема с региональными настройками. Функция Date.FromText работает по-разному в зависимости от культуры. Формат «01.02.2026» это 1 февраля в России, но 2 января в США. Всегда указывайте [Culture="ru-RU"] в промпте, иначе ChatGPT может пропустить этот параметр.

Рабочая схема отладки за одну итерацию:

Промпт. Отладка ошибки в M-запросе

Мой M-запрос в Power Query (Excel 2021):

[вставь полный M-код]

Получаю ошибку в шаге [название шага]:
[вставь точный текст ошибки — копируй из окна ошибки Power Query]

Что ожидал: [опиши что должен делать этот шаг]
Что происходит: [опиши что происходит на самом деле]

Структура входящей таблицы в этом шаге:
[названия столбцов с типами данных]

Пример проблемного значения: [конкретная строка из данных]

Найди причину и дай исправленный шаг с пояснением каждого изменения.

Практика из работы с учениками: большинство ошибок Power Query ChatGPT исправляет за одну итерацию при грамотно составленном промпте с текстом ошибки. Если за три итерации не получилось, перезапустите сессию с более детальным описанием структуры данных.

Power Query vs Python в ChatGPT: что выбрать финансисту?

Этот вопрос задают часто. ChatGPT умеет и писать M-код для Power Query, и анализировать данные на Python через Advanced Data Analysis. Что когда брать?

Берите Power Query + ChatGPT когда:

Подробнее про разные инструменты анализа данных с нейросетями смотрите в статье про ChatGPT для управленческого учёта: там больше кейсов на стыке данных и принятия решений.

Берите Python + ChatGPT (Advanced Data Analysis) когда:

Для 95% задач финансиста и бухгалтера это Power Query. Он не требует установки Python, работает прямо в Excel, и результат можно обновить кнопкой. Python нужен для аналитики следующего уровня, которая большинству финансистов встречается редко.

Если захотите углубиться в сравнение возможностей разных нейросетей для финансовых задач, смотрите наш обзор ChatGPT vs Claude vs DeepSeek для финансиста, а про сверку данных через ChatGPT подробно написала в статье Сверка регистров через ChatGPT Code Interpreter.

Сравнительная схема Power Query с ChatGPT против Python с ChatGPT: два столбца с иконками задач, условиями применения и пороговыми значениями объёма данных, тёмный фон, бренд-цвета

Power Query для регулярных задач с обновлением по кнопке, Python для разовой аналитики и больших объёмов. Для большинства финансистов Power Query перекрывает 95% потребностей.

Продвинутые паттерны: параметры и пользовательские M-функции

Когда базовые запросы освоены, следующий шаг это сделать их гибкими и переиспользуемыми. ChatGPT помогает и здесь.

Параметры Power Query: один раз изменить, везде применится

Представьте, что вы ведёте ежемесячный отчёт и в каждом запросе прописан период: «январь 2026». Когда приходит февраль, нужно менять период в 10 запросах. Параметр Power Query решает эту проблему: вы создаёте параметр ОтчётныйМесяц, а все запросы ссылаются на него. Меняете один параметр, обновляются все запросы.

ChatGPT умеет писать запросы с использованием параметров и объяснять как их создать в интерфейсе. Подробный промпт для этого уже есть выше в задаче 9. Главное понять принцип: параметр создаётся через Главная -> Управление параметрами, а потом вставляется в M-код как переменная без кавычек.

Пользовательские функции: DRY-принцип в Power Query

DRY расшифровывается Don’t Repeat Yourself — не повторяй себя. В Power Query это означает: если один и тот же блок логики встречается в нескольких запросах, выносите его в функцию.

Примеры функций, которые стоит создать один раз:

ChatGPT пишет M-функции по описанию. Формат объяснения работает так же, как для обычных запросов: описываете что принимает функция на вход и что должна вернуть. Для сложных функций попросите ChatGPT добавить обработку ошибок через try ... otherwise.

Динамические источники: когда структура меняется

Иногда выгрузки 1С меняют структуру: добавляется новый столбец или меняется порядок колонок. Жёстко написанный M-запрос ломается. ChatGPT помогает написать защитный код:

Эти паттерны чуть сложнее базовых, но ChatGPT справляется с ними хорошо если чётко описать задачу: «напиши M-код, который не сломается если в исходной таблице появятся новые столбцы или изменится их порядок».

Что Power Query + ChatGPT не заменяет: честный разговор

Хочу сказать прямо о том, с чем связка Power Query + ChatGPT справляется плохо, чтобы вы не потратили несколько дней на задачу, которая требует другого инструмента.

Бизнес-логика остаётся на вас. ChatGPT не знает вашу учётную политику, специфику компании и то, что считается нормой именно в вашей отрасли. Он напишет код для очистки данных по правилам, которые вы описали. Но правильно описать эти правила, проверить результат и отвечать за цифры в отчёте должен финансист.

Сложный ETL из многих источников. Если данные из 7-10 разнородных систем с несогласованной логикой, нетривиальными правилами сопоставления и требованием к производительности, это задача для специалиста по данным. Power Query хорош до определённого масштаба, дальше нужны специализированные ETL-системы.

Row-Level Security в Power BI. Безопасность на уровне строк, когда разные пользователи видят разные данные, это задача для администратора Power BI. ChatGPT объяснит концепцию, но внедрение в корпоративную инфраструктуру требует специалиста.

Оптимизация производительности при больших объёмах. Power Query на 50+ миллионах строк может работать медленно. Глубокая оптимизация с анализом Query Folding и внутренних механизмов это экспертная задача. ChatGPT подсказывает типичные паттерны ускорения (фильтровать данные раньше по цепочке, избегать лишних буферизаций), но это не заменяет полноценного анализа производительности.

Мой вывод. Power Query + ChatGPT закрывает 80-85% задач финансиста по подготовке данных: очистка выгрузок, объединение таблиц, автоматизация рутины. Оставшиеся 15-20% это инфраструктурные задачи, которые большинству финансистов встречаются редко или вовсе не нужны.

Чтобы понять, где Power Query вписывается в общую картину AI-автоматизации финансового отдела, смотрите статью AI-сервисы для автоматизации бухгалтерии в 2026: там полный обзор инструментов от обработки первичных документов до управленческой отчётности.

Чек-лист: Power Query + ChatGPT за первую рабочую неделю

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

День 1. Изучить интерфейс Power Query (1-2 часа). Откройте любую выгрузку из 1С в Excel через Данные -> Из файла. Посмотрите как выглядит Power Query Editor, найдите вкладку Advanced Editor. Прочитайте M-код, который Power Query сгенерировал автоматически для ваших кликов. Не меняйте ничего, просто изучите структуру let ... in. Найдите кнопку «Закрыть и загрузить» и посмотрите где появляется результат в Excel.

День 2. Описать структуру таблицы в ChatGPT (30 минут). Возьмите одну регулярную задачу: выгрузку которую обрабатываете каждый месяц. Откройте ChatGPT и напишите описание по шаблону Промпта 1 из этой статьи: источник, точные названия столбцов, проблемы, ожидаемый результат. Получите M-код. Если ChatGPT написал код без понимания структуры — уточните названия столбцов и попросите исправить.

День 3. Вставить код и проверить результат (1-2 часа). Вставьте M-код в Advanced Editor. Нажмите OK. Посмотрите на Preview: данные выглядят как ожидали? Если есть ошибка, скопируйте её текст в ChatGPT по схеме из раздела про отладку. Проверьте на нескольких строках что преобразование типов сработало правильно: число должно быть числом, дата датой. Проверьте что строки-заголовки и строки-итоги убраны.

День 4. Добавить второй запрос и объединить (2-3 часа). Если задача требует объединения данных из двух источников (план и факт, платежи и справочник контрагентов), создайте второй запрос и попросите ChatGPT написать M-код для слияния через Table.NestedJoin. Проверьте результат объединения на строках, где ключевое поле точно есть в обоих источниках, и на строках где его нет (null в результирующих полях это ожидаемое поведение при Left Join).

День 5. Настроить источник и передать коллеге (1 час). Укажите правильный путь к папке с файлами как источник. Если нужен параметризованный путь, создайте параметр по промпту 10. Проверьте что нажатие кнопки Обновить в Excel подтягивает новые данные. Задокументируйте в 3-5 предложениях что делает запрос, для кого и как обновлять. Передайте коллеге для проверки.

После этой недели у вас будет один работающий автоматический запрос. Дальше по той же схеме автоматизируете следующую рутину.

Типичная прогрессия у учеников курса: первый месяц автоматизируют одну выгрузку из 1С, второй месяц добавляют объединение с плановыми таблицами, третий месяц настраивают сбор данных из нескольких юридических лиц. К четвёртому месяцу у большинства 5-7 автоматических запросов, и они перестают тратить на подготовку данных то время, которое раньше уходило целыми днями.

Безопасность: что нельзя отправлять в нейросеть

Отдельно проговорю, потому что вопрос важный. M-код не содержит реальных данных, только инструкции для обработки. Описывать структуру таблицы (названия столбцов, типы данных, примеры значений без реальных сумм) безопасно.

Что не отправляем в ChatGPT:

Что отправлять безопасно:

Если нужно показать пример данных для отладки кода, обезличиваем: меняем реальные значения на «Контрагент_1», «Сотрудник_1», суммы на тестовые числа. Структура останется та же, и ChatGPT поймёт задачу без реальных данных.

Для организаций с требованиями к конфиденциальности: ChatGPT Business и корпоративный тариф Claude по умолчанию не используют ваши данные для обучения модели. Подробнее о безопасной работе с данными через нейросети читайте в статье Обезличивание данных перед ChatGPT.

Разделённая инфографика: слева зелёный столбец с иконками безопасных данных для ChatGPT (структура таблицы, типы колонок, тестовые примеры), справа красный столбец с запрещёнными данными (суммы, ИНН, персданные)

Безопасное описание модели данных: структура и названия полей без реальных значений. Реальные суммы, ИНН и персональные данные в ChatGPT не отправляем.

Что дальше: Power Query как фундамент для AI-автоматизации финансов

Power Query это не конечная точка, а фундамент. Когда данные автоматически очищаются и обновляются одной кнопкой, открывается следующий уровень: дашборды в Power BI с DAX-формулами, автоматизированные отчёты для собственника, агентная автоматизация через n8n. Всё это строится поверх надёжного слоя подготовки данных.

Путь, который я вижу у большинства финансистов нашей школы:

Сначала Power Query убирает ручную рутину очистки данных: выгрузки из 1С обновляются кнопкой, консолидация 14 юрлиц занимает 4 минуты, сверка с банком делается еженедельно. Это первый месяц.

Потом ChatGPT помогает с DAX-формулами в Power BI и строятся интерактивные дашборды, которые собственник может смотреть сам без вашей помощи. Это второй-третий месяц.

Потом появляются n8n-агенты для автоматической подготовки еженедельных отчётов: данные обновляются сами, агент формирует сводку и отправляет в Telegram собственнику. Это четвёртый-шестой месяц.

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

ChatGPT в этой цепочке это не замена финансиста, а ускоритель. Вы по-прежнему принимаете решения о том, что считать, как интерпретировать и за что отвечать. Нейросеть убирает техническую работу: написание кода, поиск функций в документации, отладку ошибок.

Если сравниваете разные инструменты для работы с Excel и данными с нейросетями, смотрите также обзор нейросетей для Excel финансиста: там подробнее про Claude for Excel, Copilot и Excel Labs.

FAQ: вопросы, которые остались за кадром

Что такое Power Query и чем он отличается от обычных формул Excel?

Power Query это встроенный инструмент для загрузки, очистки и трансформации данных. В отличие от формул в ячейках, он записывает шаги обработки один раз и применяет их к новым данным автоматически при обновлении. Если ежемесячно обрабатываете одинаковую выгрузку из 1С, Power Query делает это за секунды вместо часов ручного труда. Формулы Excel пересчитываются в ячейках текущего листа, Power Query работает как пайплайн обработки до загрузки в Excel.

Нужно ли знать M-язык для работы с Power Query через ChatGPT?

Базовое понимание структуры let ... in ... поможет проверить что ChatGPT написал правильно. Знать синтаксис функций наизусть не нужно. Главный навык это умение правильно описать задачу в промпте: точные названия столбцов, типы данных, что нужно сделать. Остальное делает нейросеть. После нескольких проектов вы начнёте читать M-код свободно, это происходит само по себе.

Доступен ли Power Query в Excel бесплатно?

Да. Power Query встроен в Excel 2016, 2019, 2021 и Microsoft 365 без доплаты. В Excel это вкладка Данные, раздел Получить и преобразовать данные. В Power BI Desktop Power Query бесплатен как основной инструмент. Единственное исключение: Excel 2013 требовал отдельной установки надстройки, но этой версией уже мало кто пользуется.

Как ChatGPT ошибается в M-запросах?

Пять основные ошибки: неправильные типы данных при преобразовании, несуществующие имена столбцов если не описали структуру заранее, функции доступные только в Power BI но не в Excel, устаревший синтаксис, региональные настройки для форматов дат. Схема исправления: скопируйте текст ошибки из Power Query в ChatGPT, укажите в каком шаге возникла, добавьте реальные названия столбцов. Обычно одной итерации достаточно.

Power Query или Python: что выбрать финансисту?

Power Query если данные в Excel или Power BI и задача регулярная: настроили один раз, обновляете кнопкой. Python если нужна нестандартная статистика, большие объёмы (10+ миллионов строк) или интеграция с веб-API. Для 95% задач финансиста Power Query проще и не требует установки дополнительных инструментов. Python нужен реже, чем кажется при первом знакомстве с темой.

Можно ли использовать Power Query для данных из 1С?

Да, это один из главных сценариев. Выгружаете отчёт из 1С в Excel или CSV, настраиваете шаги очистки в Power Query один раз с помощью ChatGPT. В следующем месяце кладёте новую выгрузку в ту же папку и нажимаете Обновить. ChatGPT помогает с типичными проблемами 1С: заголовки отчёта, итоговые строки, текстовые числа с пробелами, форматы дат. Это самая частая задача у моих учеников.

Безопасно ли описывать структуру данных в ChatGPT?

Структуру таблицы без реальных значений (названия столбцов, типы данных, пример строки с тестовыми числами) описывать безопасно. Реальные суммы, ИНН, имена клиентов в промпт не вставляем. ChatGPT понимает задачу по структуре, реальные данные ему не нужны для написания M-кода. Для корпоративных задач с конфиденциальными данными используйте ChatGPT Business или Claude Team.

Работает ли Power Query с данными на русском языке?

Полностью. Power Query поддерживает русский язык в именах столбцов и значениях. Нюанс один: M-язык чувствителен к регистру. Если копируете M-код из ChatGPT, убедитесь что регистр функций сохранился точно: Table.SelectRows, а не table.selectrows. Имена переменных-шагов могут быть на русском — это работает корректно и делает код более читаемым для команды финансистов.

Чек-лист готовности: Power Query + ChatGPT внедрён

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

  1. Первая выгрузка загружена в Power Query и открывается без ошибок в Preview
  2. Все шаги очистки описаны в M-коде (не только через клики в интерфейсе)
  3. Типы данных у числовых колонок установлены как Number, у дат как Date
  4. Строки-заголовки и строки-итоги из 1С убраны
  5. Нажатие кнопки Обновить в Excel подтягивает новые данные
  6. Результирующая таблица проверена на нескольких строках вручную
  7. Результат совпадает с ручной сверкой хотя бы на одном периоде
  8. Путь к файлам-источникам задан через параметр или как переменная
  9. Коллега понял как обновлять данные без вашего участия
  10. Задокументировано что делает запрос и откуда берёт данные

Освоить Power Query, ChatGPT и другие AI-инструменты для финансовой работы системно можно на курсе «AI-навыки финансиста» онлайн-школы «Финансовый директор | Мастер CFO». 10 модулей, 800+ выпускников, авторская методика. Основатель школы Софья Бурцева, разработка и ведение AI-блока на мне. Диплом государственного образца, налоговый вычет 13%.

Записаться на курс «AI-навыки финансиста»

От 49 900 рублей, рассрочка от 4 991 руб/мес.


Об авторе

Натали Васильева. Эксперт по нейросетям и продюсер онлайн-школы «Финансовый директор | Мастер CFO» (fin-academy.pro). С нейросетями в работе финансиста с февраля 2023 года, ежедневный практик AI-инструментов в коммерческих задачах. Через курс «AI-навыки финансиста» прошли 800+ финансистов, главбухов и финдиров. Веду Telegram-каналы @findir_pro (45 000+ подписчиков) и «АИ с Софьей и Натали» (13 000+ подписчиков).

Если статья оказалась полезной, поделитесь с коллегой из финотдела. И попробуйте сегодня: откройте любую выгрузку из 1С в Power Query, скопируйте структуру в ChatGPT и попросите написать M-код для очистки. Первый рабочий запрос у большинства получается за один вечер.

Наши каналы

Следите за практическими разборами AI-инструментов для финансистов:

Часто задаваемые вопросы

Что такое Power Query и чем он отличается от обычных формул Excel? +
Power Query это встроенный инструмент Excel и Power BI для загрузки, очистки и трансформации данных. В отличие от формул в ячейках, Power Query записывает шаги обработки один раз, а потом автоматически применяет их к новым данным при нажатии кнопки Обновить. Если каждый месяц получаете выгрузку из 1С с одинаковой структурой, Power Query очищает и форматирует её за секунды без ручного труда.
Нужно ли знать M-язык, чтобы работать с Power Query через ChatGPT? +
Базовое понимание структуры поможет: M-запрос всегда имеет вид let ... in ..., каждый шаг это переменная с результатом. Но знать синтаксис функций наизусть не нужно: ChatGPT пишет M-код по описанию задачи на русском языке. Главное уметь проверить результат в окне Preview Power Query: данные должны выглядеть так, как вы ожидали.
Доступен ли Power Query в Excel бесплатно? +
Да. Power Query встроен в Excel начиная с версии 2016. В Excel 2016 и 2019 это вкладка Данные, раздел Получить и преобразовать данные. В Microsoft 365 он обновляется постоянно и включает последние функции. В Power BI Desktop Power Query доступен бесплатно как основной инструмент подготовки данных.
Как ChatGPT ошибается в M-запросах и как это быстро исправить? +
Три частые ошибки: неправильные типы данных (дату распознаёт как текст), несуществующие названия столбцов если не описали структуру заранее, функции которые работают только в Power BI но не в Excel. Схема исправления: скопируйте текст ошибки в ChatGPT, укажите в каком шаге M-кода возникла, добавьте реальные названия столбцов. Обычно хватает одной итерации.
Power Query или Python: что выбрать финансисту для очистки данных? +
Power Query если данные в Excel или Power BI и задача повторяется регулярно: один раз настроили, дальше нажимаете Обновить. Python если нужна нестандартная математика, работа с большими данными (миллионы строк) или интеграция с внешними API. Для 95% задач бухгалтера и финансиста Power Query проще, быстрее и не требует установки дополнительных программ.
Можно ли использовать Power Query для данных из 1С? +
Да, и это один из главных сценариев. Выгружаете отчёт из 1С в Excel или CSV, подключаете к Power Query, настраиваете шаги очистки один раз. В следующем месяце кладёте новую выгрузку в ту же папку и нажимаете Обновить: Power Query применяет те же шаги к новым данным. ChatGPT помогает написать M-код для типичных проблем 1С-выгрузок: лишние строки сверху, объединённые ячейки, текстовые числа с пробелами.
Безопасно ли описывать структуру данных в ChatGPT? +
Структуру таблицы (названия столбцов, типы данных, пример строки без реальных цифр) описывать безопасно. Реальные суммы, ИНН, имена клиентов в промпт не вставляем. Для работы с конфиденциальными данными используйте ChatGPT Business, который по умолчанию не обучается на ваших запросах. Структурное описание модели данных не является коммерческой тайной.
Работает ли Power Query с данными на русском языке? +
Полностью. Power Query поддерживает русский язык в названиях столбцов, текстовых значениях и в интерфейсе. Единственный нюанс: M-язык чувствителен к регистру, то есть Table.SelectRows и table.selectrows это разные вещи. Когда копируете M-код из ChatGPT в Advanced Editor, убедитесь, что регистр функций сохранился правильно.