はじめに
今回はいったん、Pythonから離れてEXCELにデータを取り込む方法をご紹介します。提供されたcsvやxlsxのデータは、直接開かずにデータタブの「データの取得と変換」からファイルを指定する方がよいでしょう。文字コードや各フィールドの型の指定、さらには前処理などもすることができます。
データを取り込む
サンプルデータ
今回はGoogleAnalyticsからエクスポートしたデータ(csv形式)を扱うことにしましょう。GoogleAnalyticsから出力したデータの文字コードはUTF-8です。このファイルを直接、EXCELで開くと次のように文字化けします。

また先頭6行はレポートに関する情報が記載されていて、データではないようです。この部分の処理もしてしまいましょう。
文字コードを指定して読み込む
EXCELにデータを読み込むときには、「データ」タブの「データの取得と変換」リボンから「テキストあるいはCSVから」を選択してください。すると、ファイルを選択するダイアログが開くので、ファイルを保存しているフォルダに移動し、ファイルを指定してください。
すると、ファイルのプレビュー画面が表示されます。

文字化けしてますね。よくみると画面上部の「元のファイル」の箇所で「日本語(シフトJIS)」が選択されています。ここを次のようにUnicode(UTF-8)に指定してください。

すると、次のようにプレビュー画面が再描画されて表示されます。今度は文字化けが解消されていますね。

ただ、ヘッダ行が正しく設定されておらず、データではないレポートの概要部分なども取り込まれています。この部分の処理も見ていきましょう。このプレビュー画面の下側には次のようなボタンが設置されています。

「読み込み」の文字列の部分をクリックすると、そのままデータの読み込みができますが、基本的にはこれは使わないようにしましょう。必ず、「データの変換」を選ぶようにしてください。
PowerQueryエディターを使う
「データの変換」をクリックすると、PowerQueryエディターが起動します。

まずは右側の領域にある「クエリの設定」のプロパティで「名前」を設定しましょう。これはこのデータを読み込む設定である「クエリ」の名前になります。次にデータを見ていきましょう。まず、先頭6行はデータではないので削除してしまいましょう。

「ホーム」タブの「行の削減」リボンに「行の削除」があります。この▼をクリックすると、プルダウンメニューが表示されます。ここから「上位の行の削除」をクリックしましょう。

すると「上位の行の削除」というダイアログが開くので削除したい行数(ここでは6)を指定して「OK」をクリックします。すると、以下のように不要な行を削除することができました。

よく見てみると、ヘッダ行がデータ行と同じように扱われています。1行目がヘッダ行として扱われれうようにしましょう。これは、「ホーム」タブの「変換」リボンの中に「1行目をヘッダーとして使用」が用意されています。これをクリックしましょう。

うまくいきましたか?次のようにヘッダ行が設定され、1行目からデータ始まっていれば成功です。

再びデータをよくみると、下側にも不要なデータがあります。これも除いておきましょう。これは簡単ですね。

先ほどと同じように「ホーム」タブの「行の削減」リボンから「行の削除」のプルダウンメニューを表示させ、今度は「下位の行の削除)を選びます。集計行もいらないので、今回は10を指定しましょう。

このように表示されれば成功です。さらに、各フィールドのデータ型も簡単に設定することができます。各フィールド名の横にある「ABC」や「123」がデータ型を表しています。「ABC」はテキスト型、「123」は整数型となります。ここでは特に変更不要ですが、変更する場合はこの「ABC」や「123」をクリックしてください。すると、次のような表示となります。

ここから、適用したい型を選ぶだけで、フィールドの型を指定することができます。これで下準備は完了です。データを取り込むときには、(今回は)「ファイル」タブの「閉じて読み込む」をクリックしてください。

これでEXCELにデータがテーブルとして読み込まれます。今回は「閉じて読み込む」のボタンをそのままクリックしたのですが、ここではさらに高度な設定もできます。データモデルに追加する設定をしておくと、データ処理時に便利なのですが、また別の機会に扱うことにしましょう。

まとめ
いかがでしたか?データを読み込むだけで、わざわざこんな風にしなくてもいいのに、と思うかもしれませんね。ただ、一度設定しておくとこのクエリを呼び出すことができますから、たとえば月次の処理などでは読み込むファイルを差し替えて「すべて更新」をクリックするだけでデータの更新をすることができます。決まった作業などは、できるだけ自動化を進めたいですね。
▶ さらに前処理を加えたい場合は、以下の記事を参考にしてください。
▶ EXCELで自動処理をしたい場合は以下の記事を参考にしてください。
コメント