kabylake
@kabylake

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

PowerQueryのExcel複数結合の際に各ファイルのA1セル値を書込みたい

解決したいこと

PowerQueryのExcelファイルを結合する際に各ファイルのA1セル値を書き込みたいです。

例)

Book1.xlsx
Excel1.png

Book2.xlsx
Excel2.png

求めている結果
Excel結合結果.png

自分で試したこと

通常の結合では下記のようにしています。

let
 Source = Folder.Files("C:\folder"),
 #"Added Custom" = Table.AddColumn(Source, "カスタム", each Excel.Workbook([Content])),
 カスタム = Table.Combine(#"Added Custom"[カスタム]),
 #"Expanded {0}" = Table.ExpandTableColumn(カスタム, "Data", {"Column1", "Column2"}, {"Data.Column1", "Data.Column2"})
in
 #"Expanded {0}"

GPTに聞くなど今日1日色々と試しましたが分からず困っております。どうかよろしくお願いいたします。
0

2Answer

Comments

  1. @kabylake

    Questioner

    回答頂きましてありがとうございます。
    通常の結合処理では セルA1 の値を書き込むことはできないように思います。
    アドバイス頂けると幸いです。
    よろしくお願いいたします。

  2. あー、テーブルの形になっていないものをテーブルにまとめたいってことですか。正直、フォーマット見直してテーブル化すぺきだと思いますが、、、

    やるとしたら、単一ファイルから複数クエリーを取得してそれを合成したあとで、ファイル合成をすればよいかと思いますよ

  3. @kabylake

    Questioner

    コメントありがとうございます。
    仰る通り、本来はまともな形でテーブルにするべきなのですがPOSシステム(約600店舗分)から出てくるデータが整っておらず困っている現状です。

    一つのクエリで処理しようとせず、分けてクエリ処理を考えた方が良いということですね。チャレンジしてみようと思います。
    ありがとうございます。

  4. 楽にやろうとしたら複数クエリーになりますけど、単一クエリにまとめられすよ。

  5. @kabylake

    Questioner

    できればクエリは増やさず単一にまとめておきたいので、もう少し調べて学習してみます。
    ありがとうございます。

  6. それぞれのクエリーを、GUIて作ってから、詳細エディターで合成する感じですね
    詳細エディターての合成はなれないとちょっと難しいですが、今ならGPTに聞けば!

let
    Source = Folder.Files("C:\temp\folder"),
    AddBookColumn = Table.AddColumn(Source, "Book", each Excel.Workbook([Content])),
    SelectBookColumn = Table.SelectColumns(AddBookColumn, {"Book"}),
    ExpandBook = Table.ExpandTableColumn(SelectBookColumn, "Book", {"Name", "Data", "Item", "Kind", "Hidden"}),
    TransformTable = (table) =>
        let
            tableTitle = table{0}[Column1],
            dropFirstRow = Table.RemoveFirstN(table, 1),
            promoteHeaders = Table.PromoteHeaders(dropFirstRow),
            addTitle = Table.AddColumn(promoteHeaders, "追加列", each tableTitle),
            reorderColumns = Table.ReorderColumns(addTitle, {"追加列"} & Table.ColumnNames(promoteHeaders))
        in
            reorderColumns,
    Transform = List.Transform(ExpandBook[Data], TransformTable),
    Combine = Table.Combine(Transform)
in
    Combine

各Bookに他のシートなど余分なものがある場合は、ExpandBookのあとに、行を絞り込むステップを追加してください。

0Like

Your answer might help someone💌