物の価値の推移。プロセス全見せ。
物の値段について
片付けトントンさんの記事を見て、物の価値の推移ってどんな感じなのか調べてみたくなりました。
どうやって分析したか?も解説しましたが、興味のない方は、目次から結果に飛んでください!!
データーの分析
データ処理を、専門家ではないレベルで、やってみましょう。
お題は、「物の価値の変化を年ごとのグラフにせよ」です。
このエクセサイズで、エクセルの使い方や、グラフ化のコツ、データーの見せ方などを学んで体験することができます。
物が高い、安いという判断は収入に対して相対的に決まり、相対価格が低ければ、安価で、高ければ高価となり、相対的な価格がその物の価値を反映していると考えました。つまり物の価値は
物の価値= 物の値段 ÷ 収入
と定義します。
物の値段は取り扱う量の大小によって変わる(卵一個と米10kgは値段はずいぶん異なります)ので、同じグラフで評価しずらい。そこで、ある基準に対しての相対的な比較をします。つまり、直近の年の物の価値を1としたとき、過去の物の価値はどうであったかを調べます。
ということで、データーは収入のデーター、物の値段のデーターが程よくそろっている必要があります。
データは以下のサイトから持ってきました。
注釈ではデーターの処理の仕方について書いてありますが、あまり細かいことを気にせずに、ハイレベルな知見を得ることを目的とします。
データのクリーニング
これをそのままエクセルに貼るとこんな感じになってしまうので、グラフにできません。
ということでキレイにします。
これくらいの量なので、最低限の処理をしてあげて、あとは手で直します。
まずどの所得を抜き出すかを決めます。給与所得者がやはり多いだろうということで、給与所得者のデータを選びます。
表にはお金の単位「円」や「万円」が入っています。これは邪魔なので、数字だけにします。
C列に年収が記載されているとすると、
=IFERROR(VALUE(LEFT(C14,LEN(C14)-1)),"")
これで、単位を外します。
4つの関数が使われています。
Left(文字列, 左から抜き出す文字数)
数字部分の文字数が様々ですが、数字の後は円か、万円で1文字か二文字です。しかもこの二つは戦後を境に分かれているので、この場合分けは後で手動で直すことにします。スマートではないですが、簡単に。
全体の文字数から1字もしくは2文字を引いた数をLeft関数の左から抜き出す文字数のところに入れたいです。この時に使う関数が
len(文字列)
です。 LeftとLenを組み合わせれば、大体完成です。最後の―1はうえで説明したように円の文字数を引いてあげるためです。最後が万円の時はここを―2にします。
=Left(文字列, len(文字列)-1)
Value(数字と認識できる文字)
この関数で何をしているかというと、人間の目では数字に見えてもエクセル的には数字と認識していない場合があります。数字と文字や記号を含む場合は、数字を抜き出しても数値とはエクセルは認識していません。そこで、数値として認識するようにする関数がValueです。めんどくさいですね。
最後のiferror関数は、対象の文字列が空白や記号のみで、数値にならない場合、エラーが出ます。いちいちエラーを消すのは大変なので、エラーの時に、何をするかを命令する関数iferrorを追加しました。
=iferror(命令, 命令がエラーの時の処理)
今回の場合は、エラーの時「””」と書いて、空白を出力しなさいという命令にしました。
戦後については、まず、単位が円から万円に変わったので、後ろ2つの文字列を全体の文字数から引いてあげるという修正をします。さらに、10000をかけてあげて、万円から円に換えてあげます。
=IFERROR(VALUE(LEFT(C21,LEN(C21)-2))*10000,"")
10000は、Value (***) の外にかけてあげます。Left関数に掛けると、今時点ではまだ文字のままなので、エラーになります。
結果がこんな感じです。ついでに大卒初任給も同様に数値データにしてみました。
それをグラフにするとこんな感じです。年収と月収、全世代と大卒者ということで、数値そのものが違うので、比べ安くするために左右のY軸を使って比較しやすいようにしています。
物の値段のクリーニング
同様に物の値段もクリーニングしていきます。やり方は収入でやったのと同じです。
銭って何円だっけ?
100銭で1円。
などなど、いくつかの点を注意しながら、きれいにしていきます。
戦後の混乱期(闇市とか)は複雑すぎるので、無視します。
結果はこんな感じになりました。
因子を組み合わせる
年ごとの収入と年ごとの物価が出たので、物の価値を求めます。
物の価値=物価÷収入
年と年の間に隙間が入っていたり、必要な年の数値があったりなかったりなので、関数としては少々文字数が多いのですが、検索系の関数を使ってただしい収入と物価のペアを求め計算することにします。
まず、こんな関数になりました。
=IFERROR(INDEX($M$40:$S$80,MATCH($U42,$L$40:$L$80,0),MATCH(V$40,$M$40:$S$40,0))/INDEX($K$4:$M$35,MATCH($U42,$K$4:$K$35,0),2),"")
長い。。
ただし新しい関数は2つです。そして、この2つの関数はとてもよくペアで使われる関数です。
Index(検索範囲, 指定の行(縦)、指定の列(横))
Index関数だけは、ある範囲の中から、ある行と列で指定されたセルの中身を表示する関数です。
例えば、Index(緑の範囲, 2,3 ) と指定すれば、範囲の中で上から2番目の行で、左から3番目の列のセルの値、Fが結果として示されます。
Match(検索値, 範囲, 検索の厳密度)
は、範囲の中で、検索値が何番目に来るかを返します。検索の厳密度は通常0(完全一致)を選びます。範囲は、横一列か、縦一行で指定します。
INDEX($M$40:$S$80,MATCH($U42,$L$40:$L$80,0),MATCH(V$40,$M$40:$S$40,0))
これをわかるように書き換えると
INDEX(クリーニングした物価の表の範囲, MATCH(年,クリーニングした物価の表の年が記載されている列の範囲,0), MATCH(品目,クリーニングした物価の表のタイトル行の範囲,0))
となります。
あぁややこしい。
同様に指定した年の収入もIndex関数とMatch関数の組み合わせで求めて、物価を割り戻してあげます。
規格化する
そろそろ長い旅の終わりです。
これまでに求めた物の価値をそのままグラフにすると
になります。白米(10kg)が突出しています。
そりゃそうだ。
そのため、白米10kg以外の変動がいまいちわかりません。また縦軸も、すごく小さい数字が並んでおり、ぴんと来ません。
そこで、これらを比較しやすくするため Normalization (規格化)を行います。いくつか鉄板があるのですが、今回は最新のものの価値を1として、過去と比較します。式としてはその年の物の価値÷最新の物の価値となります。
グラフ化
見やすいように似たような傾向の品目集めて、複数のグラフを作りました。
お疲れ様でした。
結果
所得:めっちゃ戦後上がっている。でも残念ながら、2000年代に入って内なわれた10年の結果低下に転じてしまっている。
規格化したそれぞれの物の価値の推移をいよいよ見てみよう。
まず米。一升と10kgで値に少し違いがあるが、傾向は同じなのでまずは余資する。1920年あたりと1950年ごろが以上に高い。現在の8倍!!10kg大体4000円くらい(結構いい米だな。。)なので、3万2千円!!。1950年ごろは戦後の混乱期として、1次大戦のあとの戦後恐慌の中起こった1923年は関東大震災などの経済不況の真っただ中。
砂糖、卵、ビールの動きも米と同じようだけれども、砂糖50倍はすごいな。
そば、意外とコーヒーは優等性?。
確かにインフレで、物価そのものはあがってきているが、その分収入も大幅に増えたので、今の我々は、近代の中でかつてないほど安く食料を入手出来ているようだ。
ありがたい。。
最後に
結構、いろんな知識を使ってOutPutできるでしょ?
エクセルも、確かに長い会社員生活で、一定の知識はあったけど、IndexとMatch関数は最近覚えた関数で、すべてネットから探した。
グラフを見て、気付いたことは歴史の勉強もネットでできる。
やり方とかの部分で確かに少しはインプットが必要だけど、今回使った関数はたったの6つ。アウトプットの時間をどれだけ増やすかが、学力をつけたり、答えのない課題を解決するスキルを身に着けるための重要な方法論なので、こういったやり方ならたくさんの時間をアウトプットに使えるのではないかなと思う。
よろしければサポートをお願いします。