HOME はこちら
ステップ1とステップ2でやることは、「だいたい同じで、ちょっとだけ違う」という感じです。
その「ちょっとだけ違う」という部分で、米国の休場日への対応ができるのですが、この2つのステップ、どちらも同じ関数を使います。
「MATCH」関数と呼ばれる機能で、2つのデータを照合するときに用いられます。
このMATCH関数には3つのタイプがあります。
ひとつ目のタイプは、「あるデータと別のデータを見比べて、同じ数値があれば、その行番号を表示させ、同じ数値がない場合には、その数値よりも小さい数値の中で最も近い数値の行番号を表示させる」というもの。ステップ1でやりたいことそのものではありませんか。
これを「照合タイプ1」としましょう。
2つ目は、「あるデータと別のデータを見比べて、同じ数値があれば、その行番号を表示させ、同じ数値がない場合には、『#N/A』(データなし)を表示させる」というタイプ。こちらは、まさにステップ2でやりたいことです。
このタイプは「照合タイプ0」とします。
もうひとつは、「あるデータと別のデータを見比べて、同じ数値があれば、その行番号を、同じ数値がない場合には、その数値より大きい数値の中で最も近い数値の行番号を表示させる」というタイプです。タイプ1と似ていますが、同じ数値がなかった場合に出てくるのが「その数値よりも大きい数値の中で」というところが異なります。
今回はこのタイプは使いませんが、これを「照合タイプ−1」としておきます。
ステップ1とステップ2は、このMATCH関数で難なくクリアできます。
では、ステップ1からやってみましょう。
まず、プロミスのデータが載っているシートを出して、「終値」の隣のD列1行目を「ステップ1」と名付けておきます。
D列2行目を1クリックして枠の色を濃くした状態で、ツールバーのところにある「fx」をクリックします。
<図 3−1>
すると、「関数の挿入」という箱が出てきます。
<図 3−2>
この箱の「関数の分類」では「検索/行列」という項目を選ぶと、その関連の関数が「関数名」のところにアルファベット順に表示されます。
その中に「MATCH関数」があるので、これを選んで「OK」をクリック。
<図 3−3>
今度は「関数の引数」なる箱が出てきました。
「検査値」「検査範囲」「照合の型」という3つの空欄があります。ここに該当項目を入力するのですが、わざわざキーボードであれこれ入力することはありません。
「検査値」のところは、プロミスの日付の「2010/4/1」のセル(A列2行目)をクリックします。すると、自動的に「A2」と入力されます。
その下の「検査範囲」ですが、この空欄を1クリックした状態で、S&P500のシートを出します。
すると、「関数の引数」の箱はそのままで、バックグラウンドだけがS&P500のデータが載っているシートに変わるばかりか、空欄だった「検査範囲」のところに「S&P500」というシート名が自動入力されているではありませんか。
その状態のまま、日付欄となっているA列の「A」をクリックすると、A列全体が点線で囲まれます。
<図 3−4>
そして、残りの「照合の型」の空欄をクリック。すると、バックグラウンドは再びプロミスのシートに戻ります。
先ほど紹介したとおり、ステップ1は「照合タイプ1」ですから、ここにはテンキーで「1」を、ここだけ手入力します。
3つの空欄が埋まったところで「OK」です。
<図 3−6>
プロミスのシートのD列2行目に「2」と表示されました。つまり、S&P500のシートのA列の「2」行目に「2010年4月1日」と同じ値か、または、それ以前で最も近い値があるよ、というわけです。
4月2日以降も同じ操作をして、「照合タイプ1」の結果を表示させます。
これは「フィルダウン」という機能を使えば、全データ分即出てきます。
(フィルダウンのやり方は、「その銘柄は順張り有効型? それとも逆張り有効型?」のページの図3−4〜図3―7で紹介しています。
フィルダウンすると、図3−7のようになります。
<図 3−7>
あら、4月1日の行(D列2行目)と、4月2日の行(D列3行目)がどちらも「2」になっています。
実は、4月2日は「グッド・フライデー」という休日で、米国は休場なのでした。つまり、「4月2日」と同じ値がS&P500にはない、よって、それ以前で一番近い値である「4月1日」が載っている行番号「2」が表示されたわけです。