Excel Tips

テキストファイルとのデータ交換

SASその他の統計処理ソフトウェアとデータをやりとりする場合に必要になる。方法は何通りもあるが,簡単そうな方法と,プログラミングが簡単という方法を優先する。

1.CSVファイル

一番簡単なのは,“,”(カンマ)でデータ(変数)が区切られ改行でオブザべーションが異なる形式のファイル(=CSVファイル)を利用することである。

エクセル→テキストファイル

保存するときに,ファイル(F)-名前をつけて保存(A)-ファイルの種類(T)で,
CSV(カンマ区切り)(*.csv)
を選ぶ。

テキストファイル→エクセル

テキストファイルの名前が(任意).csvであれば,問答無用で読み込まれる

2.空白区切りのテキストファイル

エクセル→テキストファイル

保存するときに,ファイル(F)-名前をつけて保存(A)-ファイルの種類(T)で,
テキスト(スペース区切り)(*.prn)
を選ぶ。

テキストファイル→エクセル

データを読み込んだ後で,
データ(D)-区切り位置(E)
を選択。あとは区切り位置ウィザードに従う。

エクセルの表およびプログラム

 もっとも普遍的なプログラミング環境としてエクセルがあると思いましたので,その上で動作する小さなプログラムやあると便利な表をいくつか作ってみました。
使用する際にできるだけ煩瑣でない,単一機能のシンプルなものにしました。
インターネットを検索すればきっとすばらしい多機能のソフトウェアは多数あると思いますが,多少の手作業を伴っても,なんの後腐れもなく,使い終えたらそのままワークシートを閉じるだけで,悪さをなにもしないところが自分では気に入ってます
望みの結果が得られたら,コピーしてご利用ください。

注意事項:
1.マクロを含むことが多いので,「マクロを含んでいます」という趣旨の警告が出るかもしれませんが,それは「有効にする」をクリックしてください(これ自体は悪影響を及ぼしません)。

2.これらのファイルはブラウザの上から開かず,ダウンロードしてからお使いください。ブラウザの上で直接実行すると正しく動作しないことがあります(現在のところ理由はよくわかりません)。結果が明らかに変なのですぐおわかりと思います。ダウンロードして実行した場合は正しく動作する(はず)です。


二項分布表

成功確率変更可能 これ

χ2分布表

 これ

t分布表

有意水準変更可能,自由度変更可能な表 これ

F分布表

有意水準変更可能,自由度変更可能な表 これ

標準正規分布表1

有意水準変更可能,自由度変更可能な標準正規分布の表 これ

横座標の0の値から任意の値までの面積の値を求める表です。普通に統計書の後ろに付録としてついているものです

標準正規分布表2

有意水準変更可能,自由度変更可能な逆正規分布の表 これ

標準正規分布表1の逆で,面積から対応する横座標を求める表です

rのz'変換 & z'のr変換

r(相関係数)を正規化するFisherのz'変換とその逆変換の表です。 これ

T得点化

 これ


ランダムデータ作成

以下のような場合に使うと便利です。

  1. 全員に当てたいが,順番はランダムにしたい
  2. A〜Eの5つの刺激を各々10回ずつランダムに提示したい
  3. 1等1本,2等5本,3等20本,4等50本のくじを作成して順に全てを取り尽くしたい
など,刺激等の(複数の種類の)個数は決定しているが,順序をランダムにしたい場合に使えます。
1.の場合は,例えば10人として各セルに1...10までを書き込み(エクセルの連続データ作成の機能を使うと簡単)範囲指定して,実行ボタンをクリック

2.の場合は
       A B C D E
       A B C D E
       A B C D E
       A B C D E
       A B C D E
          .....
のように作成しておいて,範囲指定して,実行ボタン

3.の場合は
 1 2 2 2 2 2 3 3 3 3..., 4 4...
のように書き込み,範囲指定して,実行ボタン

というように使います。普通に範囲指定できる格好になっていれば長方形でも一直線でもかまいません。範囲指定した部分だけが疑似ランダム化されます。
できあがったものをエディタでも他のワークシートにでも貼り付けてご利用ください。
{註:真の意味でランダムではありませんが、実用的には充分であると思っています}

これ

計数集計サンプルプログラム

 変数別にそれがとる値別にカウントするというプログラムです。つまり、たとえばアンケート等で、1(はい),2(いいえ),3(わからない)というような値をとる変数が20個あったとすると、ある程度の工夫をしないとSPSSでも一気に表にすることができません。普通は1個ずつ表にして後で手作業で一つのファイルにしたりしてるようですが、それをエクセル上で一気にカウントして表にするプログラムです。
例:
idsexv1v2v3v4
111231
221111
312222
423333

というようなデータがあったとき、sex, v1〜v4のデータについて、おのおの1,2,3をとる値が何個あったかを一気にカウントします。文字があっても大丈夫なので、たとえば「.」(ドット)などもカウント出来ます。実行後は以下の表のようになります。0や「.」は入れても入れなくてもかまいません)灰色部分の値は任意に設定できます。


sexv1v2v3v4
000000
122212
222111
300121
00000

使用法:
これはサンプルプログラムなのですが、このワークシート“sample”にそのままデータを貼り、範囲を適当に拡張して使うのが楽でしょう。
書き換えを最小限にするための前提は、1列目(A列)は対象としない(1列目はカウントする数値をワークシート“計数集計”が使うため)ことと、1行目は見出しであることです。大体そうなっているのではないかと思います。
具体的な手順は以下の通りです。
1)元のワークシートをそのままsampleにコピーする。
2)B列以降の1行目(見出し)を“計数集計”シートの1行目(B列から)にコピーする。
3)計数集計”シートのA列に必要な範囲の数値を書き込む。順番は適当でかまいません(小→大でなくてもよい)。文字でもかまいません。
4)“計数集計”B2の式を必要な範囲までコピーする。

これ


戻る  進む  ホームページへ
mailto: toyomura@hokusei.ac.jp
home page: http://www.ipc.hokusei.ac.jp/~z00105/index.html