Как я могу преобразовать финансовые данные с помесячной разбивкой в обычную таблицу в Excel?

Вопрос или проблема

У меня есть таблица, с левой стороны таблицы есть около 10 колонок справочной информации, а затем, двигаясь вправо, каждый месяц имеет около четырех колонок данных.

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

Таблица, показывающая начальную проблему

Сгенерировать этот результат

Предпочтительный результат

Я хотел бы увидеть формулу Excel или запрос Power Query / M, который может это сделать, я не ищу макрос.

Вот один из способов достижения желаемого результата с использованием Power Query

введите описание изображения здесь


Чтобы использовать Power Query, выполните следующие шаги:

  • Сначала преобразуйте источники диапазонов в таблицу и назовите ее соответствующим образом, в этом примере я назвал ее Table1 и не забудьте снять отметку У моей таблицы есть заголовки

  • Далее откройте пустой запрос из вкладки Данные –> Получить и преобразовать данные –> Получить данные –> Из других источников –> Пустой запрос

  • Это откроет окно Power Query, теперь в вкладке Главная –> Расширенный редактор –> и вставьте следующий M-Code, удалив все, что вы видите, и нажмите Готово

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    First2Rows = Table.FirstN(Source,2),
    Rows2Columns = Table.Transpose(First2Rows),
    FillDown = Table.FillDown(Rows2Columns,{"Column1"}),
    Merged = Table.CombineColumns(FillDown,{"Column1", "Column2"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Merged"),
    Columns2Rows = Table.Transpose(Merged),
    Combined = Table.Combine({Columns2Rows,Table.RemoveFirstN(Source,2)}),
    PromotedHeaders = Table.PromoteHeaders(Combined, [PromoteAllScalars=true]),
    AddedIndex = Table.AddIndexColumn(PromotedHeaders, "Index", 1, 1, Int64.Type),
    UnpivotedOtherColumns = Table.UnpivotOtherColumns(AddedIndex, {"Reference|ID", "Reference|NAME", "Reference|ROLE", "Index"}, "MONTH", "Value"),
    SplitColumnbyDelimiter = Table.SplitColumn(UnpivotedOtherColumns, "MONTH", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"MONTH.1", "MONTH.2"}),
    PivotedColumn = Table.Pivot(SplitColumnbyDelimiter, List.Distinct(SplitColumnbyDelimiter[MONTH.2]), "MONTH.2", "Value"),
    Sort = Table.Sort(PivotedColumn,{{"MONTH.1", Order.Ascending}, {"Index", Order.Ascending}}),
    RemovedCol = Table.RemoveColumns(Sort,{"Index"}),
    #"Renamed Columns" = Table.RenameColumns(RemovedCol,{{"Reference|ID", "ID"}, {"Reference|NAME", "NAME"}, {"Reference|ROLE", "ROLE"}, {"MONTH.1", "MONTH"}})
in
    #"Renamed Columns"

  • Наконец, чтобы импортировать это обратно в Excel –> нажмите на Закрыть и загрузить или Закрыть и загрузить в –> Первый вариант, на который вы нажмете, создаст Новый лист с нужным результатом, в то время как второй запросит окно, в котором вам будет предложено указать, куда разместить результат.

Ответ или решение

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

Шаги по преобразованию данных с использованием Power Query

  1. Подготовьте исходные данные:

    • Убедитесь, что ваши данные представлены в виде таблицы в Excel. Назовите эту таблицу, например, Table1. При создании таблицы убедитесь, что опция "Моя таблица имеет заголовки" отключена.
  2. Открытие Power Query:

    • Перейдите на вкладку Данные в Excel. Нажмите на Получить данные (Get Data) -> Из других источников (From Other Sources) -> Пустой запрос (Blank Query). Это откроет редактор Power Query.
  3. Ввод M-кода:

    • В редакторе Power Query выберите Главная (Home) -> Дополнительный редактор (Advanced Editor). Удалите любой существующий код и вставьте следующий M-код:
    let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
        First2Rows = Table.FirstN(Source,2),
        Rows2Columns = Table.Transpose(First2Rows),
        FillDown = Table.FillDown(Rows2Columns,{"Column1"}),
        Merged = Table.CombineColumns(FillDown,{"Column1", "Column2"},Combiner.CombineTextByDelimiter("|", QuoteStyle.None),"Merged"),
        Columns2Rows = Table.Transpose(Merged),
        Combined = Table.Combine({Columns2Rows,Table.RemoveFirstN(Source,2)}),
        PromotedHeaders = Table.PromoteHeaders(Combined, [PromoteAllScalars=true]),
        AddedIndex = Table.AddIndexColumn(PromotedHeaders, "Index", 1, 1, Int64.Type),
        UnpivotedOtherColumns = Table.UnpivotOtherColumns(AddedIndex, {"Reference|ID", "Reference|NAME", "Reference|ROLE", "Index"}, "MONTH", "Value"),
        SplitColumnbyDelimiter = Table.SplitColumn(UnpivotedOtherColumns, "MONTH", Splitter.SplitTextByDelimiter("|", QuoteStyle.Csv), {"MONTH.1", "MONTH.2"}),
        PivotedColumn = Table.Pivot(SplitColumnbyDelimiter, List.Distinct(SplitColumnbyDelimiter[MONTH.2]), "MONTH.2", "Value"),
        Sort = Table.Sort(PivotedColumn,{{"MONTH.1", Order.Ascending}, {"Index", Order.Ascending}}),
        RemovedCol = Table.RemoveColumns(Sort,{"Index"}),
        #"Renamed Columns" = Table.RenameColumns(RemovedCol,{{"Reference|ID", "ID"}, {"Reference|NAME", "NAME"}, {"Reference|ROLE", "ROLE"}, {"MONTH.1", "MONTH"}})
    in
        #"Renamed Columns"
  4. Загрузка данных в Excel:

    • После того, как вы вставили M-код, нажмите Готово (Done) в редакторе. Затем вернитесь в Power Query и нажмите Закрыть и загрузить (Close & Load) или Закрыть и загрузить в (Close & Load To), чтобы выбрать способ загрузки данных обратно в Excel. Вы можете создать новую таблицу на новом листе или выбрать другое место для отображения данных.

Заключение

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

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

Оцените материал
Добавить комментарий

Капча загружается...