[[20210909043141]] 『クエリ 読み込み時の先頭行について』(ぽぽぽん) ページの最後に飛ぶ

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

 

『クエリ 読み込み時の先頭行について』(ぽぽぽん)

パワークエリでExcelファイルを読み込みするときに、一部のシートの先頭行が見出しではなくcolumn1、 column2…といった感じで読み込まれてしまいます。列数が異なるシートを結合したいときにその読み込まれ方だとずれて読み込んでしまうので、見出しで読み込みたいのですが解決方法ありますでしょうか?
[結合したいシートを個々に読み込みして、ヘッダーを昇格させればシートの結合はできるのですが、手間なので読み込み時点で見出しで読み込みたいという事情があります。)

どなたかご存知でしたら解決方法ご教授ください。

< 使用 Excel:Excel2019、使用 OS:unknown >


 ヘッダ行の下に罫線を引いておく(ヘッダ行の下の罫線だけ太くしておく)
 とかでどうでしょう
(´・ω・`) 2021/09/09(木) 07:26

>ヘッダーを昇格させればシートの結合はできるのですが

そうならば、これで上手くいきますか?

 let
    ソース = Excel.Workbook(File.Contents("実際のファイルパスを入力"), null, true),
    削除された他の列 = Table.SelectColumns(ソース,{"Data"}),
    追加されたカスタム = Table.AddColumn(削除された他の列, "カスタム", each Table.PromoteHeaders([Data], [PromoteAllScalars=true])),
    削除された他の列1 = Table.SelectColumns(追加されたカスタム,{"カスタム"}),
    追加されたクエリ = Table.Combine(削除された他の列1[カスタム])
 in
    追加されたクエリ

(マナ) 2021/09/09(木) 17:30


できれば、対象範囲をすべてテーブルに設定するのが確実ですが
それはできないのでしょうか。

(マナ) 2021/09/09(木) 17:35


ヘッダ行の下に罫線を引いておく(ヘッダ行の下の罫線だけ太くしておく)
 とかでどうでしょう
(´・ω・`) 2021/09/09(木) 07:26
>ご返信ありがとうございます。試してみたのですがやはりヘッダーとしては認識してもらえませんでした…

>ヘッダーを昇格させればシートの結合はできるのですが
そうならば、これで上手くいきますか?

 let
    ソース = Excel.Workbook(File.Contents("実際のファイルパスを入力"), null, true),
    削除された他の列 = Table.SelectColumns(ソース,{"Data"}),
    追加されたカスタム = Table.AddColumn(削除された他の列, "カスタム", each Table.PromoteHeaders([Data], [PromoteAllScalars=true])),
    削除された他の列1 = Table.SelectColumns(追加されたカスタム,{"カスタム"}),
    追加されたクエリ = Table.Combine(削除された他の列1[カスタム])
 in
    追加されたクエリ
(マナ) 2021/09/09(木) 17:30
>ご返信ありがとうございます。すみません、私の知識不足でお答えいただいた回答を操作のところでどうやればよいのかわからずでした。せっかくご回答いただいたのにすみません…
テーブルにはするのはいいのですが、できれば個々のファイルを開かないで読込したいという横着心がありまして、できればファイルを開かないでどうにかできないかと思っていました。

だいたい読み込むファイルは6つで、定期的にその6つのファイルを統合するのではなく、毎回ファイルが変わる作業になるので、初めから設定しておくということができないという事情があります…。

読み込まない原因が今日わかったのですが、見出しの中に「202001」というように数字だけの見出しが入っていまして、おそらくそれがデータだと認識されて見出しにされていないのだとわかりました。
その「202001」を文字列に変換してみたものの、それも見出しとして読み込まれず、「2020年売上」というように直したら見出しとして認識されました。ここの変更が手作業でやるくらいならテーブル化するか地道にコピーしたほうが楽だな、というのがいまのところの結論になりました…。

私の知識不足でいただいた回答で試せなかった方法もあったのですが、(´・ω・`)様、マナ様お知恵をご教授くださいましてありがとうございます。

(ぽぽぽん) 2021/09/10(金) 02:02


 >私の知識不足でお答えいただいた回答を操作のところでどうやればよいのかわからずでした。
 横からですが。
 クエリエディタの"表示"タブ→詳細エディター
 に上記のマナさんの示されたものを貼り付ければよいかと思います。

 もちろん、実際のファイルパスの部分は置換してください。
(*) 2021/09/10(金) 09:22

返信の際に、全文引用は無意味なので控えてください。

 >だいたい読み込むファイルは6つで、…

 一つのブック内の複数シートの結合ではなく、
 複数ブックのシートの結合でしたか?
 (データの取得/ファイルから/フォルダーから という操作ですね)

 その場合は、こんな感じです。
 Power Queryエディターの詳細エディターに下記をコピペしてください。

 let
    ソース = Folder.Files("ここに実際のフォルダパス"),
    追加されたカスタム = Table.AddColumn(ソース, "カスタム", each Excel.Workbook(File.Contents([Folder Path] & [Name]))),
    削除された他の列 = Table.SelectColumns(追加されたカスタム,{"カスタム"}),
    #"展開された カスタム" = Table.ExpandTableColumn(削除された他の列, "カスタム", {"Data"}, {"Data"}),
    追加されたカスタム1 = Table.AddColumn(#"展開された カスタム", "カスタム", each Table.PromoteHeaders([Data], [PromoteAllScalars=true])),
    追加されたクエリ = Table.Combine(追加されたカスタム1[カスタム])
 in
    追加されたクエリ

(マナ) 2021/09/10(金) 17:28


 ↑実際には、対象ファイルをエクセルブックに限定したり
 ブックが開かれていた場合の対処が必要です。

 また、結合対象は、Sheetに限定したほうが無難ですが、
 (テーブルや名前定義された範囲を除外)

  焦点がぼやけるので、省略しています。
  
※名前定義された範囲のデータを取得できることを
 mougの んなっと さんの回答で知りました。
 https://www.moug.net/faq/viewtopic.php?t=80893
  

(マナ) 2021/09/10(金) 17:42


コメント返信:

[ 一覧(最新更新順) ]


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