2006年度経済情報処理
Excelでテキストファイルを読み込むには? → Excel編 Sec. 52
テキストファイルとは、たとえばメモ帳などで作成したファイルである。Excelに限らず、多くのソフトで読んだり編集したりできるので、特定のアプリケーションを相手としないデータ販売などではよく使われる。テキストファイルにはそもそも決まった構造というものがないので、Excelのようにセル構造に流し込むためには若干細工が必要なこともある。Excelがテキストファイルを読み込む際の基本は、
という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 2 3 ロータス 1 2 3
が同じようにあつかわれる。チェックしていない場合は1個のスペースが1つのセル区切りになるので、2行目は空きセルが途中に入って読み込まれる。
Step 4 テキストファイルウィザード 3/3 が表示される
指定した区切り文字で実際に行を列に分解した結果が「データのプレビュー」として表示されているので、正しく切れているかどうかを確認する。また、列のデータ形式が意図したものと同じかどうかも確認しておく。特に 1-1のように日付として解釈されそうなデータが入っているときは、この画面できちんと形式を指定しておかないと後で面倒。
Step 5. できあがり
正しくデータが読み込めている。ただし、この状態ではファイル名が開いた「sepchar.txt」のままになっているので、保存するときにファイル形式をExcel形式にすると後々便利。
練習問題1. 以下のテキストファイルを Excelに読み込んでみなさい
練習問題2 以下のテキストファイルを Excelに読み込んでみなさい
この方式では、改行が 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. 項目数が多い固定幅データをラクにあつかう
Excelは何も考えなくても CSVファイルを解釈して読み込むことができる。それどころか標準では Excelをインストールすると拡張子が .csvのファイルは自動的に Excelで開くように結びつけられる
練習問題5. GDP需要項目別時系列表を読み込みなさい
gaku-jcy0622.csv は内閣府経済総合研究所が公表している GDPの需要項目別時系列表である。右ボタンクリックで一旦ファイルに保存してから、Excelに読み込んでみなさい。
練習問題6. 総務省統計局の Webからデータを得る
総務省統計局 <http://www.stat.go.jp/>から「労働力調査」を開き、平成17年度平均 第1表を読み込みなさい。
※右ボタンクリックで一旦保存してから開くこと
例題3. 練習問題3で使ったレイアウトの表を Excelに貼り付けてみる
Step 1. 表の範囲をドラッグして選択する
Step 2. Ctrl + C あるいはメニューから選んでコピーする
Step 3. Excelの中で貼り付けたい範囲の左上セルをアクティブセルにしてから、「貼付」を実行する
うまくいけば、下のような感じで貼付できる。
※ 表をブラウザの中で選択するときは、ちょっと余計に選択するくらいの積もりの方がいい。Excelに貼ってから消すのは簡単だが、レイアウトが崩れてしまうと始末が悪い
練習問題 7
例題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)Excelがブックを開く際、あるいは開いている間、指定した間隔で更新するように設定も可能。ただし、自動的に何度も外部のデータにアクセスするようなシステムは、参照先のネットワークやサーバーに負荷をかけることになるので要注意。相手によってはそのような利用方法を許可していない可能性もある。
練習問題 8
©2006, Hiroshi Santa OGAWA
このページにアダルトコンテンツ、XXXコンテンツ類は一切含まれていません。暴力反対.