2006年度経済情報処理

第6回 データ入力でラクをする(外部データの利用)

↑経済情報処理(2006)ホームページに戻る


6.1 ファイル経由でデータを読む

6.1.1 テキストファイル

Excelでテキストファイルを読み込むには? → Excel編 Sec. 52

テキストファイルとは、たとえばメモ帳などで作成したファイルである。Excelに限らず、多くのソフトで読んだり編集したりできるので、特定のアプリケーションを相手としないデータ販売などではよく使われる。テキストファイルにはそもそも決まった構造というものがないので、Excelのようにセル構造に流し込むためには若干細工が必要なこともある。Excelがテキストファイルを読み込む際の基本は、

  1. テキストファイルの1行(改行で区切られた)分が、Excelの行として入力される
  2. 行の中を列に分解してセルに入力するには、決まった文字を区切りにして項目を分ける方法と、決まった長さで項目を分ける方法がある

という2点。

上の図はスペースで項目間が着られているケースを示している。以下では、まず区切り文字を使って項目を分ける方式を説明し、続いて一定の幅ごとに項目を切っていく方式を説明する。

区切り文字方式

この方式では、改行が Excelでの行を分けるために使われ、ユーザーが指定した区切り文字(タブ、空白、カンマなど)で項目間の区切りを表す。この方式は多くのアプリケーションソフトで扱えることと、作るために特殊なアプリケーションソフトを必要としない。そのため、様々な環境でコンピューターを使っている人同士がデータをやりとりする際にはよい選択肢である。

例題1. 区切り文字方式のデータを Excelに読み込んでみる

データファイルは、sepchar.txt を用いるので、あらかじめ右ボタンクリックでダウンロードしておく。

Step 1. Excelの「ファイル(F)」メニューから「開く」を選んで、「ファイルの種類」を「テキストファイル(*.prn; *.txt; *.csv)」にする

Step 2. sepchar.txt を開くと、テキストファイルウィザード 1/3が表示される

初期状態では、「元のデータの形式」が「スペースによって右または左にそろえられた固定長フィールドのデータ」となっている。ここでは、区切り文字で区切られたデータを読みたいので、上のラジオボタンをクリックしてから「次へ」をクリック。

「取り込み開始行」は、もとのファイルの何行目から読み込むかの設定。1行目にしておけば、ファイルの先頭から読み込む

Step. 3 テキストファイルウィザード 2/3が表示される

テキストファイルウィザード 1/3 で「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を正しく選択していないと、ここで表示されるウィザード画面が別のものになる。もし違っていた場合は「戻る」をクリックして Step 2からやり直し。

ここでは、スペースでセルが区切られているデータを使うので、「スペース」にチェックをいれて、「次へ」をクリック

区切り文字の種類

区切り文字として普通に使えるのは、4種類。「その他」については、その他のチェックボックスをチェックしてから、右側の入力ボックスに区切りに使いたい文字を入力する。

連続した区切り文字は1文字としてあつかう

スペースを区切りにしたときによく使われる。このチェックボックスにチェックしていると、

ロータス 1 2 3
ロータス 1       2       3

が同じようにあつかわれる。チェックしていない場合は1個のスペースが1つのセル区切りになるので、2行目は空きセルが途中に入って読み込まれる。

Step 4 テキストファイルウィザード 3/3 が表示される

指定した区切り文字で実際に行を列に分解した結果が「データのプレビュー」として表示されているので、正しく切れているかどうかを確認する。また、列のデータ形式が意図したものと同じかどうかも確認しておく。特に 1-1のように日付として解釈されそうなデータが入っているときは、この画面できちんと形式を指定しておかないと後で面倒。

Step 5. できあがり

正しくデータが読み込めている。ただし、この状態ではファイル名が開いた「sepchar.txt」のままになっているので、保存するときにファイル形式をExcel形式にすると後々便利。

練習問題1. 以下のテキストファイルを Excelに読み込んでみなさい

  1. tab.txt (区切り文字はタブ。連続する区切り文字は1文字としてはあつかわない
  2. space.txt (区切り文字はスペース。連続する区切り文字は1文字としてあつかう

練習問題2 以下のテキストファイルを Excelに読み込んでみなさい

  1. space.txt (区切り文字はスペース。連続する区切り文字は1文字としてあつかわない)
  2. p_date.txt (区切り文字はタブ。連続する区切り文字は1文字としてあつかう)

固定幅方式

この方式では、改行が Excelでの行を分けるために使われ、項目間の区切りはデータ作成時にあらかじめ決められた幅でデータを読むことによって行う。 メインフレームコンピューター(いわゆる汎用機)を使ってデータを作っている際にはこのような形式になっていることが多い。 たとえば、役所の外郭団体が売る統計のデータなどはこの形式になっている場合が大部分である。

【固定幅方式データの例】

KITSUNE-FOODS                  2000 435611111
TANUKI-BUSSAN                 1450045560 1245
JUGEMU-JUGEMU-AGENCY          125661345633333

この形式の場合、データを自体を見たときに人間が分かるような区切り文字が入っているわけはなく、単に数字がずらずらと並んでいるだけである。たとえば、上のデータ例でも数字の部分は見ても切れ目がよくわからない。そのため、「何桁目から何桁はこのデータで、小数点は何桁目に入れる」といったデータが書いてある資料(レイアウトシート)を使って項目を切り分けていく必要がある。区切り文字方式で使った「テキストファイルウィザード」には固定幅方式のファイルを読み込む機能もあるが、対話的に区切り位置を指定していくため1行に含まれる項目数が多い場合にはかなりの注意力が必要である。

【レイアウトシートの例】

項目番号 項目名 開始桁 桁数 データ型 備考
1 会社名 1 30 文字列 30字を超えた場合は切り捨てられている
2 2003年売上 31 5 数値 千円
3 2004年売上 36 5 数値 千円
4 2005年売上 41 5 数値 千円

例題2. 固定幅方式のデータテキストファイルウィザードで Excelに読み込んでみる

データファイルは fixedwidth.txt を用いるので、あらかじめ右ボタンクリックでダウンロードしておく。

Step 1. Excelの「ファイル(F)」メニューから「開く」を選んで、「ファイルの種類」を「テキストファイル(*.prn; *.txt; *.csv)」にする

Step 2. fixedwidth.txt を開くと、テキストファイルウィザード 1/3が表示される

今回は「スペースによって右または左にそろえられた固定長フィールドのデータ」を読みたいのでそのまま「次へ」をクリック。「フィールド」というのは、この場合は行に含まれる一つ一つの項目を意味する。ちなみに、項目をフィールドと呼ぶ際には行は「レコード」と呼ぶ。

「取り込み開始行」は、もとのファイルの何行目から読み込むかの設定。1行目にしておけば、ファイルの先頭から読み込む

Step. 3 テキストファイルウィザード 2/3が表示される

テキストファイルウィザード 1/3 で「スペースによって右または左にそろえられた固定長フィールドのデータ」を正しく選択していないと、ここで表示されるウィザード画面が別のものになる。もし違っていた場合は「戻る」をクリックして Step 2からやり直し。

Excelのテキストファイルウィザードで固定幅のデータを読み込むときに一番の難物がこの指定画面である。「データのプレビュー」部分に一応区切り位置を表すルーラーが出ているものの、レイアウトシートに会わせて区切り位置を丁寧にクリックしていくのは根気と手先の正確さが必要な作業である。固定幅形式のデータは往々にして1行に数百個のフィールドが入っていたりするので、それに耐えられない人はテキストファイルウィザードを使わない方がいい。

さらに良くないことは、ここで指定した区切り位置を記録しておく方法がないこと。後で「データの読み込みが変だったのでは?」と思っても検証する方法がない。

Step 4 テキストファイルウィザード 3/3 が表示される

指定した区切り文字で実際に行を列に分解した結果が「データのプレビュー」として表示されているので、正しく切れているかどうかを確認する。また、列のデータ形式が意図したものと同じかどうかも確認しておく。特に 1-1のように日付として解釈されそうなデータが入っているときは、この画面できちんと形式を指定しておかないと後で面倒。

Step 5. できあがり

正しくデータが読み込めている。ただし、この状態ではファイル名が開いた「fixedwidth.txt」のままになっているので、保存するときにファイル形式をExcel形式にすると後々便利。

練習問題. 3 以下のレイアウトに従ってソニーの株価データを表すテキストファイル(sony.txt)を Excelに読み込みなさい

項目番号 項目名 開始桁 桁数 データ型 備考
1 1 4 数値 西暦年4桁
2 5 2 数値 1〜9月は01, 02...と表記
3 始値 7 5 数値
4 高値 12 5 数値
5 安値 17 5 数値
6 終値 22 5 数値
7 出来高 27 9 数値

練習問題 4 レイアウトに従って国勢調査による男女別年齢別都道府県人口テキストファイルをExcelに読み込みなさい

Tips. 項目数が多い固定幅データをラクにあつかう

6.1.2 CSVファイル

Excelは何も考えなくても CSVファイルを解釈して読み込むことができる。それどころか標準では Excelをインストールすると拡張子が .csvのファイルは自動的に Excelで開くように結びつけられる

練習問題5. GDP需要項目別時系列表を読み込みなさい

gaku-jcy0622.csv は内閣府経済総合研究所が公表している GDPの需要項目別時系列表である。右ボタンクリックで一旦ファイルに保存してから、Excelに読み込んでみなさい。

6.1.3 Excelファイルその他

練習問題6. 総務省統計局の Webからデータを得る

総務省統計局 <http://www.stat.go.jp/>から「労働力調査」を開き、平成17年度平均 第1表を読み込みなさい。

※右ボタンクリックで一旦保存してから開くこと

6.2 クリップボード経由での貼付

6.2.1 Webページからの表データ貼り付け

例題3. 練習問題3で使ったレイアウトの表を Excelに貼り付けてみる

Step 1. 表の範囲をドラッグして選択する

Step 2. Ctrl + C あるいはメニューから選んでコピーする

Step 3. Excelの中で貼り付けたい範囲の左上セルをアクティブセルにしてから、「貼付」を実行する

うまくいけば、下のような感じで貼付できる。

※ 表をブラウザの中で選択するときは、ちょっと余計に選択するくらいの積もりの方がいい。Excelに貼ってから消すのは簡単だが、レイアウトが崩れてしまうと始末が悪い

練習問題 7

  1. 経済学部の2005年度 優秀卒論賞 受賞者リスト を Excelに取り込みなさい
  2. 取り込んだリストを、執筆者名で並べ替えなさい

6.3 Webクエリー(Web query)

例題4. 現在の時刻を Webから Excelに取り込む

ここで使うのは、現在の時刻を表示するだけのサンプルページ。ページ URLは http://eipweb.econ.kanagawa-u.ac.jp/disptime.shtml

Step 1. 新規のブックを作成する

Step 2. 「データ(D)」-「外部データの取り込み」-「新しいWebクエリ」を選ぶ

Step 3. 「新しい Web クエリ」という画面が開くので、「アドレス」欄に開きたいページに URLを入力する。この場合は

http://eipweb.econ.kanagawa-u.ac.jp/disptime.shtml

入力したら、「移動」をクリックすると、以下のような画面が開く

Step 4. Excelに取り込みたいデータの範囲を指定する

画面上にいくつかあるの上にマウスを持って行くと、そので選択する範囲に太枠がついて下図のようになる。

必要な範囲が太枠で囲まれるが見つかったらクリックすると、チェックマークに変わり選択された表が反転表示になる

Step 5. 右下の「取り込み」をクリックする

データを読み込むExcel上の場所を聞いてくるので、指定する。下の例は現在選択されているシートの セルA1を左上とする範囲に読み込む指定

Step 6. 「OK」をクリックする

Excelが自動的にネットワークにアクセスして、指定した位置にデータが読み込まれる

Step 7. 読み込んだデータを手動で更新してみる(*1

  1. 読み込んだデータが入っているセルをアクティブセルにする
  2. 「データ(D)」-「データの更新」をクリックする

※「データの更新」が選べないときは、アクティブセルがデータを読み込んだ範囲(外部データ範囲)に入っているか確認

*1)Excelがブックを開く際、あるいは開いている間、指定した間隔で更新するように設定も可能。ただし、自動的に何度も外部のデータにアクセスするようなシステムは、参照先のネットワークやサーバーに負荷をかけることになるので要注意。相手によってはそのような利用方法を許可していない可能性もある。

練習問題 8

6.3.2 Webクエリーを使う場合の注意点


↑経済情報処理(2006)ホームページに戻る