Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


37281 / 76738 ←次へ | 前へ→

【44630】Re:RCI系指数をVBAで
発言  ichinose  - 06/11/25(土) 8:16 -

引用なし
パスワード
   ▼minarai さん:
おはようございます。
RCIの説明は非常にわかりやすかったですよ!!

こんなデータでRCIの算出を考えます。

     A      B    C
 1   日付     終値   RCI
 2  2006/1/17  11,545    
 3  2006/1/18  11,520    
 4  2006/1/19  11,539    
 5  2006/1/20  11,528    
 6  2006/1/23  11,439    
 7  2006/1/24  11,466    

上記のデータでN=5でRCIをC列に算出します。
尚、書式は A列は日付 B列は、通貨に設定されているとします。
C列は、標準に設定しておいて下さい

標準モジュールに
'=====================================================
Sub main()
  Dim rng As Range
  Dim rw As Long
  Dim N As Long
  Dim add1 As String, add2 As String
  N = 5 '←Nの変更はここ
  Set rng = Range("a" & Rows.Count).End(xlUp)
  Do Until rng.Row - N + 1 <= 1
    With rng
     add1 = .Offset(1 - N).Resize(N).Address
     add2 = .Offset(1 - N, 1).Resize(N).Address
     
     .Offset(, 2).Value = Evaluate("=1-6*SUMSQ(RANK(" & _
         add1 & "," & add1 & ")-RANK(" & _
         add2 & "," & add2 & "))/(" & N & _
         "*(" & N & "*" & N & "-1))")
     .Offset(, 2).NumberFormatLocal = "0%"
     End With
    Set rng = rng.Offset(-1)
    Loop
End Sub


として、mainを実行してみて下さい。

     A      B    C
 1   日付     終値   RCI
 2  2006/1/17  11,545    
 3  2006/1/18  11,520    
 4  2006/1/19  11,539    
 5  2006/1/20  11,528    
 6  2006/1/23  11,439   -70%       
 7  2006/1/24  11,466   -60%

こんな結果を得ることができます。

試してみて下さい。

0 hits

【44629】RCI系指数をVBAで minarai 06/11/25(土) 1:02 質問
【44630】Re:RCI系指数をVBAで ichinose 06/11/25(土) 8:16 発言
【44632】Re:RCI系指数をVBAで minarai 06/11/26(日) 9:27 お礼
【44635】Re:RCI系指数をVBAで minarai 06/11/26(日) 18:23 お礼

37281 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free