[[20250321084619]] 『パワークエリで同一ブック内の複数シートを「列名』(tkm) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『パワークエリで同一ブック内の複数シートを「列名を合わせて」結合したい』(tkm)

Power Query(パワークエリ)で同一ブック内の複数シートを結合する際に、列名を合わせて結合する方法はありませんか?

ひとつのExcelブック内に複数のシートがあり、そのシートは定期的に増えていきます。
シートのデータは基本的に同じ形式のテーブルデータなのですが、一部のシートである列があったり無かったりします。

そのため以下の方法では、列が合わなくなります。
https://hamachan.info/excel2019-powerquery-ketugou/

例えばヘルパークエリを用いて、それぞれのデータで列名をヘッダーに揃えてから結合するようなことが、同一ブック内の複数シートでおこなうことはできませんでしょうか。

ご存じの方がいたら教えてください。よろしくお願いいたします。

< 使用 Excel:Microsoft365、使用 OS:Windows11 >


 原因が表の形式が揃っていないことにあるなら
 まずはそれぞれの表形式を揃えることはできませんか?
(ささみ) 2025/03/21(金) 10:20:09

 >一部のシートである列があったり無かったりします。
 >それぞれのデータで列名をヘッダーに揃えてから結合する
 この部分がイメージしづらいです。以下の様に例を挙げて説明できますか?

 <Sheet1>
    |[A]  |[B]  |[C]  
 [1]|項目1|項目2|項目3
 [2]|aaa  |    1|   10
 [3]|bbb  |    2|   20
 [4]|ccc  |    3|   30

 <Sheet2>
    |[A]  |[B]  |[C]  |[D]  
 [1]|項目1|項目2|項目4|項目5
 [2]|ddd  |    4|   40|  400
 [3]|eee  |    5|   50|  500
 [4]|fff  |    6|   60|  600

 <希望図>
    |[A]  |[B]  |[C]  |[D]  |[E]  
 [1]|項目1|項目2|項目3|項目4|項目5
 [2]|aaa  |    1|   10|     |     
 [3]|bbb  |    2|   20|     |     
 [4]|ccc  |    3|   30|     |     
 [5]|ddd  |    4|     |   40|  400
 [6]|eee  |    5|     |   50|  500
 [7]|fff  |    6|     |   60|  600

 こういうことで合ってますか?
 この場合だと、各シート毎、共通する列以外に「列のピボット解除」をして、
 クエリの追加で一つの表にまとめた後、項目の列で「列のピボット」をしています。
(RB) 2025/03/21(金) 10:45:51

 >列名をヘッダーに揃えてから結合
 の意味がいまひとつよくわかってないですが、
 シート毎に「1行目をヘッダとして使用」してから Table.Combine すればいいと思うので、
 こんな感じじゃないかと思います。

 let
    ソース = Excel.Workbook(File.Contents("D:\test.xlsx"), null, true),
    フィルターされた行 = Table.SelectRows(ソース, each ([Name] <> "main") and ([Kind] = "Sheet")),    /* なんかうまいことシート名とかでフィルタしてください。 */
    カスタム1 = Table.TransformColumns(フィルターされた行 ,{{"Data" ,  each Table.PromoteHeaders(_, [PromoteAllScalars=true])}}), /* Data列がTableなので、1行目をヘッダに昇格 */
    カスタム2 = Table.Combine(カスタム1[Data])    /* Data列を Table.Combine */                    
 in
    カスタム2
(´・ω・`) 2025/03/21(金) 16:09:25

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.