- 締切済み
株価データの抜け修正について教えてください。
株価データ1分足をエクセルにリアルタイムに取り込んで保存しております。 偶に約定の無い時間が抜けているデータがあり困っています。 その抜けたところに直前の終値を入れて書き込んでいく方法はございませんでしょうか。 下の例では時間の時間の110131と110132が抜けています。 この抜けているところに次の足が入る時直前の終値110130の11637を挿入したいのですがVBAで出来ますでしょうか。 エクセルの初心者ですがよろしくお願いします。 PCはXP エクセルは2000 日&時間 始値 高値 安値 終値 出来高 110128 11635 11635 11634 11635 3 110129 11634 11634 11634 11634 1 110130 11636 11639 11635 11637 5 110133 11633 11636 11633 11633 3 110134 11631 11631 11631 11631 1 110135 11630 11630 11630 11630 3 110136 11629 11629 11629 11629 3 訂正後 110128 11635 11635 11634 11635 3 110129 11634 11634 11634 11634 1 110130 11636 11639 11635 11637 5 110131 11637 11637 11637 11637 0 110132 11637 11637 11637 11637 0 110133 11633 11636 11633 11633 3 110134 11631 11631 11631 11631 1 110135 11630 11630 11630 11630 3 110136 11629 11629 11629 11629 3
- みんなの回答 (2)
- 専門家の回答
みんなの回答
[回答No.1]に示した変更後の式(冗長に過ぎました)を次のように訂正します。 =IF(COUNTIF(Sheet1!A:A,A2),VLOOKUP($A2,Sheet1!$A$2:$F$1000,COLUMN()),0)
お示しの上段の表の左上隅の「日&時間」が Sheet1 のセル A1 であると仮定します。 1.Sheet1 の範囲 A1:F1 を[コピー]して、Sheet2 のセル A1 に貼り付け 2.Sheet1 のセル A2 を[コピー]して、Sheet2 のセル A2 に貼り付け 以下は Sheet2 における手順です。 3.セル A2 に次式を入力して、此れをズズーッと右方に(セル F2 まで)ドラッグ&ペースト =VLOOKUP($A2,Sheet1!$A$2:$F$1000,COLUMN()) 4.セル F2 の式を次のように編集 =VLOOKUP($A2,Sheet1!$A$2:$F$1000,COLUMN()) ↓ =IF(COUNTIF(Sheet1!A:A,A2),VLOOKUP($A2,Sheet1!$A$2:$F$8,COLUMN(),FALSE)*COUNTIF(Sheet1!A:A,A2),0) 5.範囲 A2:F2 を下方にズズーッとドラッグ&ペースト その結果を添付図に示しています。
補足
早速ご指導くださりありがとうございます。 マクロエディタにどのように記述すればよいでしょうか。 説明不足でゴメンなさい。株価データは1分ごとにC:\Program Files\のフォルダに自動でCSVにて保存されています。そのファイルを開いて修正して別名で保存出来るようにマクロを組みたいと願っています。 私はあまり詳しくないので具体的なご指導お願いします。