数GBの巨大な測定データを受け取り、Excelで開かず困ったことはありませんか?
そんな時に、サクッとCSVに入ったデータを覗く方法の紹介です。
先に全体像を掴むことで不要なデータの分割&確認作業が省略でき、作業の効率UPとなります。
Power Query作業手順
まずは作業手順をまとめました。後ほどこの作業の自動化も説明します。
CSVファイルを読み取り
Excelを開き Power queryのデータ取得からCSVファイルを選ぶ(Menu/Data/From Text/CSV)
Power Query起動
Transform Data をクリックしPower Queryに入ります。
Index行を追加
Add ColumnからIndex行を追加(Menu/Add Column/index Column)
Indexの属性をTEXTに変更
読み込み条件を「終わる」に設定
Indexを右クリックし、読み込み条件を「終わる」に設定します。
読み込み条件を設定
読み込み条件を"000"で終わるに設定します。
"000"では1000行おきに1行の割合でデータを読み込みますのでデータサイズはが1,000分の1になります。これで巨大ファイルが小さくなります。"000"を"0"に変更すると10行に1行読み込みます。
Dataを読み込む
Excelで開く
これでエクセル上にデータが読み込めましたので、グラフにするなりして必要なデータのINDEX番号を見つけて下さい。そのINDEXを使いフィルターを調整&再読み込みすると必要なデータが詳細に読み込めます。
自動化
この作業を毎回行うのは手間ですよね?
Power Queryでは、上で説明した一連の作業をこの作業を自動化できます。
ファイルパスを登録
ファイルパスをName Manager に登録(セルの値をPathTOに入れます)。
これでセルに入力したファイル名、ファイルパスをPower QUery に取り込めます。
セルにパス入力
Power Query editorの起動
テーブルをクリックしMenu/Query/EditからPower Query editorを起動します。
Advanced Editorを開く
Power Query EditorのMenu/Home/Advanced Editorを開きます。
Power Query の編集
これで「データ更新」でName Managerに登録されたPathTOのデータを読み込みます。
let
Path1 = Excel.CurrentWorkbook(){[Name="PathTO"]}[Content]{0}[Column1],
Source = Csv.Document(File.Contents(Path1),[Delimiter=",", Columns=424, Encoding=1252, QuoteStyle=QuoteStyle.None]),
#"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Added Index1" = Table.AddIndexColumn(#"Promoted Headers", "Index", 0, 1, Int64.Type),
#"Changed Type2" = Table.TransformColumnTypes(#"Added Index1",{{"Index", type text}}),
#"Filtered Rows1" = Table.SelectRows(#"Changed Type2", each Text.EndsWith([Index], "000")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows1",{"Index"})
in
#"Removed Columns"
データの更新
では、Power Queryを試してみます。ファイルパス、ファイル名を入力しExcel上で"Menu/Data/Refresh All"でデータを更新します。
読み込み中はこの表示が出ますので、消えるまでしばらくお待ちください。
従来巨大ファイルは、ファイル分割などで適当なサイズに分割後、いちいち各ファイルを確認していましたが、Power Queryのフィルタ機能を使い「読めるサイズ」で荒く読み取る方法です。先に全体像が見れるので、不要なデータを分割、確認する手間が省けます。