「情報A&数理科学T」 <テキスト5>
Excelは,表計算ソフトと呼ばれている分野のソフトです.ここでは数学
での活用(「数学B」3章 統計とコンピュータ)を中心に学習していきますが,
このソフトの活用範囲は大変広く,いろいろな分野で活用されています.
1.Excel入門
・ データの作成
<練習1> 教科書の【資料1】〜【資料6】の作成
シート名を
[資料]に変更
して,教科書
「数学B」の
6つの資料
p.106〜p.121
を右のように
入力する.
保存場所
「作業ホルダーへ」
↓
「WORK」
↓
「Excel」
<新規作成>
↓
統計処理
<ファイル名>
(1) 度数分布
<練習2> 【資料1】の度数分布表
シート名を[度数分布]に変更して
次のような度数分布表を作成せよ.
※ 度数の計算は,関数(countif)
を使うと楽にできます.
使い方については,メニューバー
にある〔ヘルプ(H)〕で調べてください.
<問1>
【資料3】<硬貨10枚を投げたときの表の数>の度数分布表
(相対度数を付ける)をシート[度数分布]に作成せよ.
<練習3> 【資料2】の度数分布表
シート[度数分布]に
次のような度数分布表
を作成せよ.
※ 階級値は、階級
の区切りに対し
て,関数(int)
を使うようにし
てください.
また,度数については,関数(frequency)を使ってください.
使い方については,教科書p.113にも載っています.
<問2>
【資料4】<大阪の最高気温(平成13年4月)>の度数分布表
(相対度数を付ける)シート[度数分布]に作成せよ.
「情報A&数理科学T」 <テキスト6>
(2) ヒストグラム
<練習4> 【資料1】のヒストグラムと折れ線グラフ
新しいシート(シート名は[ヒストグラム])に次のようなヒストグラムを
作成せよ.また,グラフの種類を「折れ線」に変更せよ.
<問1>
【資料3】<硬貨10枚を投げたときの表の数>のヒストグラム
をシート[ヒストグラム]に作成せよ.
<練習5> 【資料2】のヒストグラムと円グラフ
シート[ヒストグラム]に次のようなヒストグラムと円グラフを作成せよ.
<問2>
【資料4】<大阪の最高気温(平成13年4月)>のヒストグラ
ムと円グラフをシート[ヒストグラム]に作成せよ.
(3) 散布図(相関図)
2つのデータ系列の関係を比べるのに散布図(相関図)があります.データ
が左下から右上にかけて散らばっているとき正の相関があるといい,左上から
右下にかけて散らばっているときは負の相関があるといいます.データが万遍
なく散らばっているときは相関がないといいます.
<練習6> 【資料2】と【資料4】の相関図
新しいシート(シート名は[相関図])に次のような【資料2】と【資料4】
の相関図を作成せよ.
<問3>
【資料4】<大阪の最高気温(平成13年4月)>と【資料5】
<那覇の最高気温(平成13年4月)の相関図をシート名[相関図]に作成せ
よ.また,それらの相関関係についてあるかないかを調べよ.
「情報A&数理科学T」 <テキスト7>
(4) 代表値
データ全体の特徴を表す数値を代表値といいます.
・平均値 : n個のデータ の平均値aは,
・メジアン(中央値): データを小さい(大きい)順に並べたとき,順番が真中の値.
ただし,個数が偶数のときは,真中2つの平均をとる.
・モード(最頻値): 度数分布において度数が最も多い階級値.
<問1>
メジアンとモードについて,インターネットを活用して更に詳し
く調べよ.
<練習7> 【資料6】( 10円硬貨の重量 )の平均値
【資料6】の平均値を上の式とExcelの関数(Average)を使う2通りの方
法で求めよ.このとき,資料6のデータに
名前(資料6)を付けて関数を利用せよ.
ただし,新しいシートを(シート名は
[代表値])作成して,それに次のように
記述せよ.
(使用する関数:Sum,Count,Average)
※ セル範囲に名前を付ける方法
〔挿入(I)〕→〔名前(N)〕→「定義(D)」
<問2> 【資料2】の平均値を上の式とExcelの関数(Average)を使う
2通りの方法で求めよ.
<練習8> 度数分布より平均値を求める
【資料1】(グリンピースのさやの中の豆粒の数)の平均値を度数分布より求
めよ.また,この値と実際の平均値とを比較せよ.
このとき,<練習2>の度数分布に列(計)を1つ
追加せよ.
<問3> 【資料2】【資料3】【資料4】の平均値を度数分布より求めよ.
<練習9> 【資料6】のメジアンを求める
【資料6】(10円硬貨の重量)のデータを並べ替えて
メジアンを求めよ.また,Excelの関数(Median)を用いて
求めた値で答え合わせをせよ.
ただし,並べ替えをするときにはシート(資料)の複写を
して(シート名:「資料 (2)」),そのシートで行うこと.
※ 並べ替え方(ソート)
・並べ替えるデータ範囲を指定する.
・〔データ(D)〕→〔並べ替え(S)]
→〔現在選択している範囲だけを並べ替える〕
→〔昇順か降順を選択する〕
<問4> 【資料1】〜【資料5】についてもメジアンを求めよ.
<問5> <練習2>と<練習3>で作成した度数分布表のモードを求めよ.
「情報A&数理科学T」 <テキスト8>
(5) 分散と標準偏差
分散や標準偏差は,データの散らばりの度合いを測る指標として使われる.
n個のデータ について,平均値をa
とすると,
・ 分散:
・・・ @
・ 標準偏差:
<練習10> 変量の分散と標準偏差
次の表はA,B2人で10点満点のゲームαを6回行った結果である.次のような
ヒストグラムを作成せよ.また,平均と分散及び標準偏差を求めよ.
分散を手計算(テストなど)で行うとき,平均が整数であれば@の式を用いて
計算し,整数でなければ で計算する方が簡単である.
<問1>
となることを示せ.
<練習11> 変量を変換したときの分散と標準偏差
<練習10>のゲームαにおいて,得点xに対してポイントもらえると
き,Aのもらえるポイントの平均値と分散及び標準偏差を求めよ.
一般に,変量xに対して,新しい変量yが(c,dは定数)である
ただし,,
は変量x,yの平均,
,
は変量x,yの分散である.
<問2>
上の2つの関係式,
が成り立つことを示せ.
Excelには,分散(Varp)と標準偏差(Stdevp)を求める関数があります.
<問3> <練習10><練習11>の分散と標準偏差を関数Varpと
Stdevpを用いて求めよ.
「情報A&数理科学T」 <テキスト9>
(6) 相関係数
相関係数は,2つの変量x,yの関係の度合いを測る指標として使われる.
変量xのn個のデータ の平均値を
,
変量yのn個のデータ の平均値を
とすると,
・共分散:
・相関係数:
不等式
≦
をシュワルツの不等式という.
<証明> すべての実数tに対して,≧0 が成立する.
シュワルツの不等式より,相関係数rのとる範囲は,-1 ≦ r ≦ 1 となる.
また,rが 1に近いほど正の相関が強いといい,-1に近いほど負の相関が強い
という.
<練習12> <練習10>のAの得点を変量x,Bの得点を変量yとして,xと
yの共分散と相関係数求めよ.また,xとyの相関表を作成せよ.
(新しいシート:「相関係数」を作成する)
<問14> 相関係数を求めるExcelの関数(Correl)を用いて<練習11>の
ポイントの相関係数を求めると<練習10>の相関係数と同じとなる.
この理由を答えよ.
<問15> 4人の生徒a,b,c,d の
身長 x(cm)と体重 y(kg)が右のよう
であった.
xとyの共分散と相関係数を求めよ.
また,xとyの相関表を作成せよ.
「情報A&数理科学T」 <テキスト10>
Excelでは,Visual Basic for Application(VBA)というプログラミング言語が
使えます.これを使ってプログラミングの基礎を学習するとともに,その活用法
についても学習していきます.
(1)
コマンドボタンとプログラム
コマンドボタンをクリックするとそれに割り当てられているプログラムが実
行します.
・コマンドボタンをワークシート上に設定する.
[表示(V)]→[ツールバー(T)]→[フォーム]
にチェックを入れる.
コマンドボタン をクリックして,ボタン
を設置する場所を指定すると,マクロの登録の
ウインドが表示されるので ボタン
を押す.
・モジュール(プログラムの単位)を記述する画
面が表示される.ここにプログラムを記述する.
※ 繰り返し文(For 〜Next)
一定回数を繰り返すときに使用する.kをループ変数という.
<問16> コマンドボタン上の名前を[ボタン1]から[計算]に変更せよ.
また,モジュール名も[ボタン1_Click]から[計算]とせよ.
セル(2,1)に[=-PI()],セル(22,1)に[=PI()]と入力すると各セルの値を自動的に入力
する.
コマンドボタン上の名前と
モジュール名をともに[関数の
値]とする.
グラフはグラフウィザード
より折れ線を選択し,データ
範囲は[B2:B22],項目軸ラベ
ルは[A2:A22]とする.
<モジュール>
Sub 関数の値()
s =
Cells(2, 1)
e =
Cells(22, 1)
d =
(e - s) / 20
For
k = 2 To 22 ※ 関数(Function)
x = s + d * (k - 2) ModuleとFunctionの違いは,戻り値を取るか
Cells(k, 1) = x 取らないかの違いのみです.
Cells(k, 2) = f(x) 戻り値は,関数名=[戻り値]で設定します.
Next k また,モジュールや関数に引き継ぐ変数を括
End Sub 弧()の中に記述し,これを引数といいます.
Function f(x) す.
f =
Sin(x)
End Function <問17> と
(0≦x≦2π)
の2つのグラフを同時に表示せよ.
「情報A&数理科学T」 <テキスト11>
(1)
条件文
プログラムは,繰り返し文と条件文の組み合わせで作られています.ここでは
条件文を中心に学習します.
・ワークシートに組立除法の仕組みの表を
作成する.
・セル( B2:E2 )には,3次の整式の係数を
入力する.
・セル( B4 ) を「 = IF(A2="","",B2)」とすると,セル( A2 ) が空白のときは
空白となり,そうでないときはセル( B2 )の値となる.
・セル( C3:E4 ) の各セルには式を記述する.
(@) を
で割った商と余りを求めよ.
(A) が
で割り切れるようにaの値を定めよ.
・コマンドボタン[2次方程式の実数解] を作成し,
モジュールを作成する.
・セル( B6:D6 )に2次方程式の
係数a,b,cを入力する.
・グローバル変数を設定する.
Dim a, b, c As Double
Dim r As Integer
・2次方程式の実数解を求めるモジュール(Solve2)を作成する.
Sub Solve2()
a = Cells(r, 2): '2次の係数
b = Cells(r, 3): '1次の係数
c = Cells(r, 4): '定数項
d = b ^ 2 - 4 * a * c
If d >= 0 Then
Cells(8, 3) = (-b - Sqr(d)) /
(2 * a)
Cells(8, 4) = (-b + Sqr(d)) /
(2 * a)
Else
Cells(8, 3) = ""
Cells(8, 4) = ""
End If
End Sub
・グローバル変数にdを追加する.
・関数(f3)を作成する.
・コマンドボタン[3次方程式の実数解]を作成し,モジュールを作成する.
Sub Solve1()
a = Cells(2, 2):b =
Cells(2, 3):c = Cells(2, 4):d = Cells(2, 5)
For k = 1 To Abs(d)
If f3(k) = 0 Then
Cells(2, 1) = k: k = Abs(d)
ElseIf f3(-k) = 0 Then
Cells(2,
1) = -k: k = Abs(d)
End If
Next k
r = 4: Solve2
End Sub
「情報A&数理科学T」 <テキスト12>
(2)
グローバル変数
モジュール全体で使用できる変数をグローバル変数といいます.
この変数を設定するときは,Public文で(Declarations)に記述します.
<練習18> 3次関数とその導関数のグラフ
・表示する区間をセル(B1:C1)に設定する.
・分割するときの増分をセル(B2)に設定する.
・3次関数の係数を次数の高いほうからセル(B4:E4)に入力する.
・導関数の係数をセル(B5:D5)に数式で入力する.
・関数の値をワークシート(シート名:「Work」)に入力するプログラムを作成し,
それにコマンドボタン[関数のグラフ]を割り当てる.
・グラフウィザードで折れ線グラフを選択し,データ範囲等を設定する.
Sub 関数の値()
s = Cells(1, 2): e = Cells(1,
3): z = Cells(2, 2)
For k = 0 To 3: a(k) =
Cells(4, k + 2): Next k
n = 1
For x = s
To e Step z
Sheets("Work").Cells(n,
1) = x
Sheets("Work").Cells(n,
2) = f3(x)
Sheets("Work").Cells(n,
3) = df(x)
n = n + 1
Next x
End Sub
(3)
キーマクロ
Excelにはキー操作を登録する機能があります.これをキーマクロといいます.
これを編集してプログラムの中に組み入れることができます.
<練習19> 増減表とキーマクロ
・増減表を作成する.
・セル(B10:F12)を消すキーマクロを作成する.
[ツール(T)]→[マクロ(M)]→[新しいマクロの記録(R)...]
・操作が終わったら [記録終了(R)]とする.
<問18> <練習18>の導関数
f’ (x) = 0
となる実数値xをセル(B8:C8)に
表示するプログラムを作成せよ.(プログラム名:「導関数の解」)
3次関数の係数を与えると増減表とグラフ(導関数を含む)を表示する.
Sub 増減表()
関数の値
導関数の解
x1 =
Cells(8, 2): x2 = Cells(8, 3)
Cells(10,
2) = "・・・"
Cells(10,
3) = x1: Cells(10, 4) = "・・・"
Cells(10, 5) = x2: Cells(10, 6) = "・・・"
Cells(11,
3) = 0: Cells(11, 5) = 0
If a0 >
0 Then
Cells(11, 2) = "+": Cells(11, 4) = "−":
Cells(11, 6) = "+"
Else
Cells(11, 2) = "−": Cells(11, 4) = "+":
Cells(11, 6) = "−"
End If
End Sub
【課題1】 次の問題をExcelのツール「課題(東大2004).xls」を利用して解け.
「情報A&数理科学T」 <テキスト13>
(1)
With〜End With
同じ対象に対していくつもの設定をするときに,その対象をそのつど指定す
るのを省略するときに使用します.
<例> With Selection.Font
.Name
= "MS 明朝"
.Size
= 11
.Strikethrough
= False
.Superscript
= False
.Subscript
= False
.OutlineFont
= False
.Shadow
= False
.Underline
= xlUnderlineStyleNone
.ColorIndex
= xlAutomatic
End
With
<問19> <練習20>のワークシート(増減表)のセル(B10:F12)の内容を
消して,フォントを「MS
明朝」とするキーマクロを作成せよ.
<練習21> キーマクロを組み込む
Range("B10:F12").Select Selection.Font.Name = "MS 明朝" Selection.ClearContents
・<問19>で作成したキーマクロを修正し
て<練習20>のプログラムに組み込む.
・セル(D1)「%」を複写するキーマクロを
作成する.
・<練習20>のプログラムに増減表の3行目を表示するプログラムを追加する.
※ Range("D1").Select ⇔
Cells(1, 4).Select … セルを指定する
〔 <練習20>に追加するプログラム 〕
For k = 2 To 6
If
Cells(11, k) = "+" Then
Range("D1").Select: Selection.Copy
Cells(12, k).Select: ActiveSheet.Paste
ElseIf Cells(11, k) = "−" Then
Range("E1").Select: Selection.Copy
Cells(12, k).Select: ActiveSheet.Paste
Else
Cells(12, k) = f3(Cells(10, k))
End
If
Next k
<問20> 導関数が0と
なる値が重解をとるときに
も増減表が正しくを表示す
るようにプログラム修正せ
よ.
<問21> 次の3次関数
の増減表を表示させよ.
(1)
(2)
「情報A&数理科学T」 <テキスト14>
(2)
文字列操作
変数には数値変数と文字列変数の2種類の変数があります.文字列を操作する
関数としては,Left,Right,Midなどがあります.これらは,文字列の一部分
を切り取る関数ですが,ここでは2つの文字列を連結させます.
放物線とx軸と直線
とで
囲まれる部分を次のように長方形に細分割して
面積を求める方法を区分求積法といいます.
分割数をnとすると,
面積 となります.
ただし,,
・関数の値を表示するセルとして,ワークシート(「Work」)を作成する.
・ワークシート(「区分求積法」)に
区間,分割数,面積をセルに設定する.
・マクロボタン(「面積の計算」)を作成
して,それに面積を求めるプログラム
を割り当てる.
・グラフウィザードでヒストグラムを表
示させる.
このとき,このグラフの番号を確認す
る.
〔面積を求めるプログラム〕
Sub 面積の計算() s = Cells(1, 2): e =
Cells(1, 3): n = Cells(2, 2) d = (e - s) / n Menseki = 0 For k = 1 To n
x = s + d * (k - 1)
Sheets("Work").Cells(k, 1) = x
Sheets("Work").Cells(k, 2) = f(x)
Menseki = Menseki + d * f(x) Next k Cells(3, 2) = Menseki: '面積 b$ =
"=Work!R1C1:R" & Cells(2, 2) & "C1"
ActiveSheet.ChartObjects("グラフ 1").Activate
ActiveChart.SetSourceData Source:=Sheets("Work").Range(a$) End Sub Function
f(x) f = x ^ 2 End Function
<問22> 関数
( n = 1,2,3,… ) のグラフとx軸と直線
とで囲まれる部分の面積を求め,これらの値をnで表すとどうな
るかを推定せよ.
< 課 題 >
<問22>において,区間を [0,x ]としたときの面積をSn(x)とするとき,
Sn(x)をnとxを用いてどのように表せるかを推定し,この推定が正しいこと
を証明せよ.