システムトレードで、株・商品先物・日経平均先物(TOPIX・日経225)・FX(外国為替証拠金取引)の相場を生き残る!
システムトレードで楽ちん投資
トップページ | トレード実践録 | インフォ〜 | プロフィール | 更新履歴 | リンク | メルマガ | お問い合わせ

投資に役立つエクセル関数講座 その3  よく使う関数

エクセル関数講座です。
 
今回は、よく使う関数をあつかいます。
といっても、それほど多くありません。10もマスターすれば、そこそこのシステムが作れます。
 
 
よく使う関数
 
AVERAGE関数……平均を求める
 
MIN関数    ……最小を求める
 
MAX関数    ……最大を求める
 
ABS関数    ……絶対値を求める
 
COUNT関数  ……数を数える
 
COUNTIF関数……特定の条件を満たすセルの数を数える
 
SUM関数    ……総和を求める
 
SUMIF関数  ……特定の条件を満たす値の総和を求める
 
 
これらは、名前を読んだだけで、どんな関数なのか分かると思います
 
セルF101〜F103の平均を求めたいなと思えば、 =AVERAGE(F101:F103)  とすればいいわけです。
絶対値がほしいなら、 =ABS(値) とします。
 
エクセル関数は無理に覚えようとしなくても、使っているうちに自然と覚えていきます。
どんなシステムをこしらえるか、頭をひねっているうちに身につきます。
 
その関数のなかでも、とりわけ重要なのが、OFFSET関数です。
 
平均線を導きだすときに、お世話になる関数です。
 
OFFSET関数とは
 
このOFFSET関数は、結果としてセルの位置を返さなければなりません。
OFFSET(?)="あ"
というような、OFFSET関数の結果、だされたものが、「あ」という文字になるといったことは、ありません。
 
ABS(OFFSET(?))
のように、「OFFSET関数によって算出されたセルに入っている値を絶対値化せよ」という処理なら使えます。
(この場合、OFFSET関数によって参照されるセルには、数値が入っていなければなりません。文字を絶対
値であらわすことはできないからです)
 
次の例は、AVERAGE関数を使って、3日移動平均を求めたものです。
 
AVERAGE関数
 
F列に平均値を出すようにしました。
F4のセルに入っている関数は、E2〜E4の範囲を平均化しています。つまり、3日移動平均です。
 
 
では、OFFSET関数を使って、同じ結果をだすようにしてみましょう。
 
=AVERAGE(OFFSET(E4,-2,0):E4)
 
この関数をF4へ入れてください。
関数が分かりにくいようなら、簡単な関数に分解して考えます。
 
上記の関数は、=AVERAGE(■:E4) のかたちになっています。平均を算出するべき範囲をしていしなければ
なりません。
範囲は、■〜E4です。
 
OFFSET関数を使って、この■を求めるには、現在のセルの位置から、いくつさかのぼればいいでしょうか?
3日平均を出したければ、2日前にさかのぼることになります。したがって、上の行へふたつ分。
数値で表すと−2です。列は移動させなくてよいですから、0が入ります。
かくして、■には OFFSET(E4,-2,0) が入ると分かりました。
 
=AVERAGE(■:E4)
        ↑
    OFFSET(E4,-2,0)
 
つまり、
=AVERAGE(OFFSET(E4,-2,0):E4)
 
が求めるべき関数式となります。
 
AVERAGE関数とOFFSET関数
 
ここで何故、OFFSET関数を使うか解説します。
確かに、AVERAGE関数を使えば、平均値は求められます。ところが、3日平均、4日平均……と異なる期間
の平均値を求めようとすると、すべての関数を書き換えなければなりません。
データの数が多いと面倒になります。
 
もっと手軽に、1箇所だけ「3」と入力するだけで、3日平均がでるようにしたいものです。
 
ふたつの関数式を比べてみましょう。
=AVERAGE(E2:E4)
=AVERAGE(OFFSET(E4,-2,0):E4)
OFFSET関数の−2の部分を変更できれば、3日平均だろうが4日平均だろうが、どんな平均線にも対応
できそうです。なんとか、ワンタッチで変更できる方法は、ないものでしょうか?
その一方で、OFFSET関数の使われていない方を、手軽にどんな平均線にも対応できるようにするのは、
無理なようです(思いつきません)。
 
 
この作業をワンタッチでやってしまう方法がエクセルにはあります。
絶対参照を使えばいいのです。
 
関数式をひとつのセルに入力し、以降のセルにも適用したとき(セルの右下へマウスカーソルを合わせて、
マウスカーソルの形が+になっているときに、マウスを左クリックしたままドラッグします)、自動的に合った
関数に変わっていますよね?
 
この自動的に変わってくれる参照の方式を相対参照といいます。
3日移動平均でいうなら、平均値は現在のセル(終値)から、2日前にさかのぼったところを範囲の起点と
考えています。この範囲の起点となるセルは、関数式の数だけあります。
そして、起点となるセルは、それぞれの関数式で異なります。
 
ワンタッチの作業でやってしまうには、特定のひとつのセルに値を入力すれば、すべてのセルに反映され、
平均値を求められるようにすればいいことになります。
この、ただひとつの決まったセルを参照する方式を絶対参照といいます。
 
では、F1を絶対参照のセルにしてみましょう。
絶対参照は、F$1というように、を加えた書き方をします。
 
 
3日平均を求めるので、入力する値は「3」になります。ところが、3日平均線を実現した関数式は、
=AVERAGE(OFFSET(E4,-2,0):E4) なのです。
 
「3」を入力したら、−2になるようにせねばなりません。なんらかの便宜的な処理が必要です。
=AVERAGE(OFFSET(E4,,0):E4)
               ↑
             1-F$1 という式は、どうでしょうか? 
                               
3をF1に入れると、−2になります。 4をF1に入れると、−3になります。
4を入れて−3になるというのは、「4日平均を求めるための起点は、3日さかのぼったところから」という
条件も満たすということです。
 
=AVERAGE(OFFSET(E4,1-F$1,0):E4)
 
F$1の値     計算結果      意味
  3           −2       2日前にさかのぼる
  4           −3       3日前にさかのぼる
  5           −4       4日前にさかのぼる
 
どうやら、この式で対処できそうです。
それでは関数式を修正してみましょう。F1に3を入れ、F4へは =AVERAGE(OFFSET(E4,1-F$1,0):E4) を
書き込みます。
 
絶対参照を使用する
 
以降のセルにも関数式を適用させます。3日平均が出ていますね。
4日平均も試してみましょう。F1に4を入れます。
 
絶対参照使用モデルへの変更
 
エクセル関数式を触ることなく、平均値が算出されました。
このように1箇所入力するだけで、すべの平均値が求められるようにするために、OFFSET関数を使い
ました。
 
※F4の値だけが、3日平均のままなのは、起点となるE1に値が入っていないからです。
  こういった本筋と関係ない「はした」の部分は、便宜的な処理を追加して、対処します。
  たとえば、この場合、「範囲の起点となる部分が数値でないなら、空白を表示する」といった条件を
  追加するのです。
 
 「はした」にあたる部分は、システムを作っていると頻繁に出てきますので、個別に対応しましょう。
 たとえば、勝ちトレード0のときに、勝率を求めると #DIV/0! というエラーが表示されます。
 0での除算はエラーになってしまうのです。電卓を叩いて0で割ると、隅のほうにEと表示されますが、
 同じことです(EはErrorのEです)。
 
 
関数式を学び終えたあとは、条件分岐式です。 
「もし〜なら、〜する。さもなくば、〜する」という判定式です。
 
条件分岐式は、エクセル関数講座 その4 で解説します。
 
 
 
 
 
 
 
TOPへ戻る  
Copyright (C) toushikenbunroku.com, All Rights Reserved.