情報基礎A 第13週プログラミング 売上データ処理

先週の復習
2重ループを用いた、
表の記入と読み込み
1
For文
 行番号を書くプログラム(A1~A10
に行番号)
Sub gyou()
Dim i As Integer
For i = 1 to 10
cells(i, 1)=i
Next i
End sub
2
For文
 列番号を書くプログラム(A1~J1に列番号)
Sub retsu()
Dim j As Integer
For j = 1 to 10
cells(1, j)=j
Next j
End sub
3
2重ループ :For文を入れ子構造で使用
 行番号を書くプログラム
• 10行, A~J列まで
Sub gyouretsu()
Dim i As Integer
Dim j As Integer
For i = 1 to 10
For j = 1 to 10
cells(i, j)=i
Next j
Next i
End sub
4
2重ループ
 セルに自分の「行番号*列番号」を出力する
プログラム
Sub dual()
Dim i As Integer
Dim j As integer
For i = 1 to 10
For j = 1 to 10
cells(i, j) = i * j
Next j
Next i
End sub
5
合計点と平均点を求めるプログラム
Sub heikin()
Dim i As Integer
Dim j As Integer
Dim x As Integer
For i = 1 to 5
x=0
x : 合計を計算するための変数
学生ことに合計を求めて合計点
と平均点を計算する
その後,次の学生の合計を計算
するために変数xの値を初期化
(0)に設定をする
For j = 1 to 2
x = x + cells( i, j )
Next j
cells( i, j )=x
cells( i, j+1 ) = x/2
Next i
End Sub
j
i
85
56
69
78
85
95
78
54
98
6
92
演習:個人の合計,平均
Sub kojin()
Dim i As Integer
Dim j As Integer
Dim x As Integer
For i= 2 To 11
x= 0
For j = 2 To 4
x = x + Cells(i, j)
Next j
Cells(i, j) = x
Cells(i, j + 1) = x / 3
Next i
End Sub
先週の演習問題
Sheet2 の成績データ
(10人分の国語,英語,数学)
注意:Sheet2を開いた状態
でプログラムを実行
7
情報基礎A
第13週プログラミング
実際のデータ処理での応用
徳山 豪・全 眞嬉
東北大学情報科学研究科
システム情報科学専攻
情報システム評価学分野
8
売上データ処理
 情報基礎Aのホームページから売上データをダ
ウンロードして下さい
• data18.xls
• http://www.dais.is.tohoku.ac.jp/~jinhee/jyoho.html
 注意:ファイルダウンロード時にファイルを必ず「保存する」
にして下さい.「開く」を選択するとInternet Explorer上で
開くと編集を保存することは出来ません
 データの概要
• 47都道府県別の月間売上データ
• 平成18年1月~12月
• 商品の種類:10品目
9
これからのやること
 平成18年の47都道府県別月間売上デー
タ( 10商品)の処理
• 18年の都道府県別・商品ことの年間売上数,
年間売上高,年間売上総利益などの処理
 今日は年間売上数を計算
• 方法
 指定するワークシートセルの参照
 多重ループ
• 2次元データ
• 複数の異なるワークシートからなるデータ一括処理
10
ワークシートの参照
 指定するワークシートセルの参照
Worksheets(“ワークシートの名前”).Cells(行, 列)
Worksheets(“価格”).Cells(4, 2)
Worksheets(“1 月”).Cells(4, 2)
Worksheets( tsuki & “月” ).Cells(4, 2)
ワークシート名が
数値と文字列の組
合せの場合
数値のところを変
数として使用
11
複数の異なるワークシートからなる
データの読込みと計算
 1月~12月の商品Aの北海道の売上数
「1月」のシート から 「12月」のシートのCells(4, 2)の合
計
 商品1の北海道の年間売上数
Worksheets(“1月”).cells(4, 2) + Worksheets (“2
月”).cells(4, 2) +
・・・
+ Worksheets (“12月”).cells(4, 2)
12
 ワークシート名の数値を変数として扱い
繰返し
制御(For文)によりデータを読込む
• 商品1の北海道の年間売上数を求めてメッセジー
ボックスに出力するプログラム
Sub hokkaido()
Dim tsuki As Integer
Dim goukei As Integer
For tsuki = 1 to 12
goukei= goukei + Worksheets(tsuki & “月”) .cells(4, 2)
Next tsuki
msgbox goukei
End sub
13
年間売上数:都道府県別,商品別,12ヶ月
沖縄
47回
北海道
商品10
商品1
1月商品10の売上数
2月商品10の売上数
3月商品10の売上数
商品10
1月商品1の売上数
1月商品10の売上数
2月商品1の売上数
2月商品10の売上数
3月商品1の売上数
商品1
12月商品10の売上数
3月商品10の売上数
1月商品1の売上数
2月商品1の売上数
3月商品1の売上数
12月商品1の売上数
12月商品10の売上数
10回
12回
12月商品1の売上数
14
演習:シート「年間売上数」に18年の商品別,
都道府県別売上数を求めよ
Sub uriagesu()
Dim i As Integer
Dim j As Integer
Dim tsuki As Integer
Dim goukei As Integer
For i = 4 To 50 '47都道府県
For j = 2 To 11 '10種類の商品
goukei = 0
For tsuki = 1 To 12 '12ヶ月
goukei = goukei + Worksheets(tsuki & "月").Cells(i, j)
Next tsuki
Worksheets("年間売上数").Cells(i, j) = goukei
Next j
Next i
End Sub
15