日本の貧困層の子の数学力は、
英米の富裕層の子のそれより確かだ、という話を聞きました。
どこのどんな調査かは分かりませんが、
そうなのかもな、と感じています。
学校でプログラミング教育を扱うようですが、良い事ですね。
知人はScratchを用いた予習を小1からさせています。
数学は現象に記号を与え、記述と計算を可能にします。
言葉もまた現象に記号を与え、記述と取り扱いを可能にします。
この点において数学も言葉の一種だと感じています。
数学はコンピュータとの相性が良いと思います。
プログラミングまではできずとも、
Excelのマクロくらいは扱えた方がまだ当面は有利でしょう。
もしかしたら塾でもマクロ程度は教える日がくるのかな。
一新ゼミでは現在、試験的に中2にPythonを使ってもらっています。
さて。
あるプログラムを試作しており、
それが吐き出す数値を日々分析しています。
毎回の手打ち数式をマクロ化したので記録。
3時間もかかってしまいました。
Option Explicit
Sub MyStandardize()
Dim ws As Worksheet
Set ws = Worksheets(1)
Dim maxRow As Long
Dim maxCol As Long
‘UsedRangeのRowsプロパティに、UsedRange.Rows.Countで取得した総行数を指定し、最終行を取得
maxRow = ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Row
maxCol = ws.UsedRange.Columns(ws.UsedRange.Columns.Count).Column
‘■■Result列のz値を算出■■
‘Result列を取得
Dim ResultCol As Long
‘ Find関数内はWhat:=Cells(3, 15).Valueなどでも良い
ResultCol = Range(Cells(1, 1), Cells(1, maxCol)).Find(“Result”).Column
‘標準化の際の目標値は後で手動入力するので、暫定的に平均値を求めて代入しておく
Cells(1, maxCol + 1).FormulaR1C1 = _
WorksheetFunction.Average(ws.Range(Cells(2, ResultCol), Cells(maxRow, ResultCol)))
‘Resize(行数,列数) 行数と列数は省略可能
Cells(2, maxCol + 1).Resize(maxRow – 1).FormulaR1C1 = _
“=IF(RC” & ResultCol & “=””””,””””,” & _
“STANDARDIZE(RC” & ResultCol & “,R1C,” & _
“STDEVP(R2C” & ResultCol & “:R” & maxRow & “C” & ResultCol & “)))”
‘■■Trades列のz値を算出■■
‘Trades列を取得
Dim TradesCol As Long
‘ Find関数内はWhat:=Cells(3, 15).Valueなどでも良い
TradesCol = Range(Cells(1, 1), Cells(1, maxCol)).Find(“Trades”).Column
‘標準化の際の目標値は後で手動入力するので、暫定的に平均値を求めて代入しておく
Cells(1, maxCol + 2).FormulaR1C1 = _
WorksheetFunction.Average(ws.Range(Cells(2, TradesCol), Cells(maxRow, TradesCol)))
‘Resize(行数,列数) 行数と列数は省略可能
Cells(2, maxCol + 2).Resize(maxRow – 1).FormulaR1C1 = _
“=IF(RC” & TradesCol & “=””””,””””,” & _
“STANDARDIZE(RC” & TradesCol & “,R1C,” & _
“STDEVP(R2C” & TradesCol & “:R” & maxRow & “C” & TradesCol & “)))”
‘MsgBox “Result=” & ResultCol & vbCrLf & _
‘ “Trades=” & TradesCol
‘■■先に算出したz値が双方正の場合のみ、その積を算出■■
Cells(2, maxCol + 3).Resize(maxRow – 1).FormulaR1C1 = _
“=IF(RC[-1]=””””,””””,” & _
“IF(AND(RC” & maxCol + 1 & “>0,RC” & maxCol + 2 & “>0),RC” & maxCol + 1 & “*RC” & maxCol + 2 & “,-1))”
End Sub