*テキストファイルの加工とエクセルの使い方 [#b58bfe69]

#contents


**&color(green){【トピックス】};:[[Google>http://www.google.co.jp]]の各種プロジェクト [#a4b18f37]
今やGoogleと言えばウェブ検索の代名詞になりましたが、Google社では現在、様々なプロジェクトを立ち上げています。Google Earthはその代表格かもしれません。その他にも、ウェブ経由で文書作成やスプレッドシートが利用できるサービスも立ち上げています。今日はそのうちのいくつかを紹介します。

**テキストファイルとエクセルの間でのデータのやりとり [#uf8c85d1]
>
前回授業で、テキストファイルをK2Editorで編集して、エクセルの表を作った。みんなできたけど、あれって、実は、かなり高度な技。ライセン前を行く千葉大生100人に聞いて、10人知っているかどうか。。。
~%%%&size(18){タブはエクセルのセル同士の区切りに対応する};%%%
~これほど世の中でパソコンが普及していても、大半の人は、テキストファイルを編集したことが無いみたいです。だから、タブ区切りとエクセルのセルの関係も知らない人が大勢います。~
~今後、皆さんはいろんな解析データを扱うことになると思いますが、~
~&size(16){''大量のデータを一括処理するには、フォーマット(データの形式)の統一が不可欠''};~
~です。一つ一つコピー・ペーストでこなすのもいいですが、テキストエディタと一括置換・検索でラクしたいですね。

**正規表現と友達になろう [#q38b03d3]
>
 &size(18){正規表現はジョーカー(ワイルドカード)};
~これまでの授業で何度も正規表現ということばを聞いたと思います。正規表現はIT用語辞典によると、
 文字列のパターンを表現する表記法。文字列の検索・置換を行なうときに利用される。
検索や置換で文字そのものを検索・置換するのでは無く、パターンを検索・置換するものです。~
私がMacで使っているJeditXというテキストエディタのマニュアルから、授業で使った正規表現と使用例を引用します
 .  <梶田注:半角ドット1つ> 任意文字 (改行を除くあらゆる1文字に一致)
   例: a.d 
   aで始まり、つぎになにか1文字つづき、dで終わる文字列。
  「and」「add」「a漢d」などがマッチする。
 *         パターンに0回以上連続でマッチします。
   例: an*d    
   aで始まり0回以上のnの繰り返しを含みdで終わる文字列。
   「annd」「add」などがマッチする。
 +       パターンに1回以上連続でマッチします
   例:    an+d    
   aで始まり1回以上のnの繰り返しを含みdで終わる文字列。
   「and」「annd」はマッチするが「advance」「add」などはマッチしない。
 \t           水平タブ			(0x09)
 \n           改行             		(0x0A)
 \       退避修飾 (エスケープ)  正規表現記号の有効/無効の制御
   \^, \$, \*, \+, \?, \\ のように「^」「$」などメタ文字としての意味を打ち消して
    単なる文字(リテラル)として指定したいときに使用します。
    <梶田注:日本語キーボードでは半角の\マークです>
MS Wordのワイルドカード検索も正規表現の文法にかなり近いものを使っています。~
 質問: 1行に含まれる全ての文字列を表す正規表現は?
 では、ここで、正規表現を使った検索・置換の演習問題をやってみましょう。

***正規表現を使った検索・置換の練習 [#q8d9763c]
>
-前回の課題: プロジェクトの相談、アイデア書き込み集計
~ &size(16){一緒に操作してください。今回復習課題に出す操作の多くが含まれています。};
+%%%やりたいこと%%%: 受講者全員がちゃんと課題1を提出しているかどうかチェックする
+→[[プロジェクト相談のページ>http://bean.bio.chiba-u.jp/joho/index.php?joho19%2FPROJECT]]にアクセスして、発言データをコピーする
+K2Editorを開いて、新規ページに上のデータをペースト
+データの並びをじーっと見る
     * 梶田(07s4098) 2007-04-26 (木) 13:35:56 -- 今年度のスポーツ大会の委員を...
+下のようなパターンが見えてくる
 <空白>*<空白>氏名(学生証番号)<空白>日付<空白>時間<空白>曜日<空白>--<空白>コメント内容
+データを見ながら、エクセルでどの項目を別々のカラム(縦の列)に入れたいかを考える。【&color(red){''ポイント''};】~
今回の場合、
 氏名  学生証番号  日付  曜日  時間  コメント
をそれぞれ別のカラムに入れたいので、
--&size(14){上のデータの<空白>のところを<タブ>に置き換え};
--&size(14){要らないものを消去すれば良い};
+K2Editorの置換ウィンドウを開いて、以下の置換(3回)行う~
  (注:この程度の置換なら、正規表現を使わなくても可能だが、今回は主に正規表現を使って行う)
++まず、名前までの余分な空白と*を消す。* は正規表現で意味を持つ文字なので、正規表現置換ではない、普通の置換を行う。
 (正規表現チェックははずしておく)
 検索文字     * 
 置換文字 <無し>
---授業で説明した、正規表現を使う方法:
 (正規表現にチェック)
 検索文字  +¥* 
 置換文字 <無し>
++次に、目立つところから置換する。コメントの前に入っている<空白>--<空白>をタブに置換
 (正規表現チェック)
 検索文字   -- 
 置換文字 \t
++次に、<空白>をタブに置き換える
 検索文字   (注:半角空白1つ)
 置換文字 \t
+全体を選択してコピーする。
~&size(14){  ここまででK2Editorでの操作は終わり。次はエクセルでの操作 };
+エクセルで新しいページを開き、左上角のセルをクリックして、セルの書式を文字列に設定
+ワークシートの中の左上のセルをクリックして、ペースト。【''&color(brown){テキストファイルのデータをエクセルに移動できた};''】
+データをざーっと眺めると、書式が乱れているところがある。原因は
--名前を入れずにコメントを投稿したため、カラム(列)が一つ左にずれているところ
--新規投稿で New の文字が表示されていたため、カラムが1つ右にずれているところ。
+フォーマットの乱れをコピー・ペーストで修正する
--例えば、下のような例で書式を揃えたい場合~
&ref(./Untitled-1.gif,70%);
--移動させたい領域を選択(マウスのドラッグ)し~
--カットし、~
&ref(./Untitled-2.gif,70%);
--移動させたい領域の左上のセル一つをクリックして~
&ref(./Untitled-3.gif,70%);
--ペースト~
&ref(./Untitled-4.gif,70%);

**Excel(エクセル)の操作の基本【p31 - 45参照】 [#f88e2b36]
今日から2回ほど、表計算ソフトの代表ともいえるExcel(エクセル)の操作を習得します。表計算ソフトは、コンピュータに作らせた表の上に数値を記入して計算させるものです。手計算では、表の中の一つの数値を変更したら他の数値も全てもう一度計算し直さなければならない場合も、表計算ソフトを使うと、他の数値は自動的に再計算されます。このアイデアは、ハーバード大学の学生であったDaniel Bricklinが1979年が思いつき、[[VISICALC>http://en.wikipedia.org/wiki/VisiCalc]]というソフトウェアとして実現したものです。その後、表計算ソフトは、DOS/V機(日本ではPC-98)におけるLOTUS-1-2-3やWindowsにおけるMicrosoft Excelとして発展してきました。表計算ソフトは、ハードウェアの普及を促進したということで、パーソナルコンピュータにおけるキラーソフト(キラーアプリ)と呼ばれています。

***Microsoft Excelの各部の名称 [#v06c7abe]
&ref(授業/H18/情報処理/05/excelmeisho.gif,70%);

***値・数式の入力と計算 [#pe558f46]
+セルを一つクリックして、 =1+2 という式を入力
&ref(授業/H18/情報処理/05/sushiki.gif,80%);

***セルの参照 [#w4447e13]
+セルA1に3, セルB1に5を入力
+セルC1をクリックして半角=を入力し、セルA1、せるB1をクリック
--(あるいは、セルC1をクリックして、=A1+B1と入力しても同じ)
>&ref(授業/H18/情報処理/05/sansho.gif,80%);
***式(参照)のコピー・ペースト [#y43b1cd6]
+式を入力したセル(例ではC1)をクリックしてコピー(ctrl+c):選択されたセルが波線で囲まれる
+同じ法則(例では「左側の2つのセルの値を足すこと」)を適用したいセルをマウスドラッグで選択
+ペースト(ctrl+v)すると、選択範囲に全て式がコピーされる
>&ref(授業/H18/情報処理/05/sanshocopy.gif,80%);

***絶対参照 [#uc0f01ca]
+下の例のようにエクセルに果物の個数を入力して合計を求める
--&ref(授業/H18/情報処理/05/soutaierr1.gif,80%);
+りんごの個数の全体に対する比率を =B2/B5 で計算。書式をパーセントにする
+りんごの比率の入ったセルをコピーして、他の項目の比率のセルにペーストしてもうまく行かない
--&ref(授業/H18/情報処理/05/soutaierr2.gif,80%);
+これは、%%%通常のコピー・ペーストでは、セルが''相対的な位置関係で参照''されるため%%%
+リンゴの比率を計算するときに、分母のセル指定を $B$6 と$記号をつけて参照することで、絶対参照できる
--&ref(授業/H18/情報処理/05/zettai1.gif,80%); → &ref(授業/H18/情報処理/05/zettai2.gif,80%);


***関数の利用 [#d2fa0732]
+合計を入力したいセルをクリック(例ではC6)
+ =sum( と入力し、マウスで合計したい数値の範囲をドラッグし、最後に ) を入力してリターン
-(合計を入力したいところにカーソルを持っていって、ツールバーのΣをクリックしてリターンでもよい)
>&ref(授業/H18/情報処理/05/sum.gif,80%); → &ref(授業/H18/情報処理/05/sum2.gif,80%);

**Excelの使い方をもう少し詳しく知ろう [#x3a0f9a4]
 Excelは本当に便利なソフトです。上でやったようなデータの整形処理や並べ替えだけでなく、データの集計だとか、簡単なグラフ作りだとか、本当にいろんなことができます。でも、そういう1つずつの操作全てを授業でやるわけにはいかないので、いくつか、私が個人的に、大切なことだと考えていることをいくつか紹介し、実際にどういうことができるのか見て貰います。

***ツールバーのカスタマイズ [#l3705ccd]
エクセルを使いやすくするには、ツールバーに自分がよくつかう機能のアイコンを割り当てておくことです。メニューバーの「ツール/ユーザー設定/ツールバー」から変更できます。~
&ref(./Untitled-5.gif,60%);

***データをエクセルに移動するときには、セルの書式(文字列データ、標準データ)に注意 [#fd25f991]
エクセルのセルに入っているデータには、数値データ、文字列データなどの違いがあります。他のアプリケーションからデータを移動するとき、データ形式が問題になる場合があるので、注意しましょう。
-例: 下の囲みの中を全てコピーし、エクセルの新しい表の上にコピーすると、ここに書かれた通りにはペーストされません(注:標準の設定の場合)
 0432902818
 1 Jan. 2007
 2007.05.10
 19:8:3
 1090980541050134984058923423423
-上に書かれた文字を、エクセル上でその通りに表示したい場合は、ペーストする領域のセルを選択して、「書式/セル/表示形式」から「文字列」を選びます。こうすることで、ペーストする文字列が「文字データ」として扱われます。「文字データ」にしてしまうと表の上で計算はできないので、注意してください。(注:関数を使って変換すれば計算できます)

**表の見栄えを良くしよう [#cf1f1577]
-フォント、色


*第4回授業の課題 [#p66d6541]
-提出期限:5月14日月曜正午
-&size(16){http://bean.bio.chiba-u.jp/joho/index.php?joho19に、「自分のID」/04 という新しいページを作成し、下の囲みの中にあるアンケートをコピー・ペーストして、「回答:」の後に答えを書き込むこと。};
**課題1.アンケート調査 [#z32243ca]
 *第4回授業・基本課題 
 **氏名:
 **課題への回答
 -今日の授業の進み方は?(はやい、丁度いい、おそい)
 --回答:
 -今日の授業の難しさはどう感じましたか(簡単すぎ 簡単 丁度いい 難しい 難しすぎ):
 --回答:
 -難しいと答えた人は、特にどの点が難しかったですか?:
 --回答:
 -今日の授業は(よく分かった 分かった 分からなかった):
 --回答:
 -分からないと答えた人は、特にどの点が分からなかったですか?:
 --回答:
 -今日の講義で理解できなかった用語があったら挙げてください:
 --回答:

**課題2. 復習課題: 千葉大学の17年度決算:収入・支出の総額を計算[#y265ed35]
-下の囲みの中のテキストは、公開されている平成17年度決算報告書のPDFから、テキストデータを抜き出したものです。
 国立大学法人千葉大学 
    (単位:百万円) 
 区分 予算額 決算額 差額 備考 
 (決算-予算) 
  収入    
 運営費交付金 17,365 17,365 0 
 施設整備費補助金 1,150 1,166 16
 船舶建造費補助金 0 0 0 
 施設整備資金貸付金償還時補助金 3,349 10,046 6,697
 補助金等収入 0 196 196 
 国立大学財務・経営センター施設費交付金 86 86 0 
 自己収入 24,629 25,760 1,131  
 産学連携等研究収入及び寄附金収入等 2,311 2,873 561
 長期借入金収入 3,298 3,298 0 
 貸付回収金 0 0 0 
 承継剰余金 0 0 0 
 旧法人承継積立金 0 0 0 
 目的積立金取崩 0 75 75 
 計 52,188 #1 #2  
 
  支出 
 業務費 40,555 40,834 279
 施設整備費 4,534 4,550 16
 船舶建造費 0 0 0 
 補助金等 0 216 216 
 産学連携等研究経費及び寄附金事業費等 2,311 2,698 387
 貸付金 0 0 0 
 長期借入金償還金 4,788 11,467 6,679
 国立大学法人財務・経営センター施設費納付金 0 0 0 
 計 52,188 #3 #4
 
 収入-支出 0 #5 1,099
 
 上のデータは作業を簡単にするために、自己収入の内訳と業務費の内訳は省略してあります。
 それぞれ、以下の通りです。
 自己収入内訳
  授業料、入学料及び検定料収入 8,518 8,616 99
  附属病院収入 15,919 16,886 967
  財産処分収入 0 0 0 
  雑収入 192 258 66
 
 業務費内訳
  教育研究経費 20,409 19,481 △928 
  診療経費 14,501 15,486 986 
  一般管理費 5,645 5,866 221 

-問1: 表中、#1 - #5に入る金額を答えなさい。
-問2: 自己収入のうち、「授業料、入学料及び検定料収入決算」は、収入総額決算の何パーセントを占めるか答えなさい
-提出方法:上で作成した「自分のID」/04というページに、下の囲みの中の文字列をペーストし、:の後にそれぞれの答えを書き込みなさい。
 **課題2. 復習課題の答案
 問1
  #1: 
  #2:
  #3:
  #4:
  #5:
 問2: 

-復習内容
--テキストエディタとExcelでのデータ交換
--正規表現検索・置換
--エクセルでの表計算
---補足:



**課題3.予習課題:グラフの種類を考える [#nece2885]
-来週はエクセルでデータを集計して、グラフを作成する方法を学びます。以下の3つの場合、示したいことを最も表現できると思われるグラフを選択肢から選んで記号で答えなさい(複数選択可)。
-データ
 a. 上の決算報告で、それぞれの項目が総額のうちどれほどの割合を占めているのかを示したい
 b. このクラス36人の身長の頻度分布を示したい
 c. プロジェクト相談ページで、書き込みのピークは開始から何分後ぐらいだったかを示したい
-グラフ
~&ref(./Untitled-6.gif);
--注:横棒グラフは積み上げグラフを含む
-提出方法:上で作成した「自分のID」/04というページに、下の囲みの中の文字列をペーストし、:の後にそれぞれの答えを書き込みなさい。
 **課題3. 予習課題の答案
 a: 
 b: 
 c: