メイン目次 サブ目次
複雑なデータの取り込み
- 一日ごとにまとめられているデータ
一日ごとに複数銘柄の複数限月がまとめて入っているデータを良く見かけます。
具体的にはdata3.txtのようなデータです。
データは、日付、銘柄、限月、始値、高値、安値、終値、の順です。
このデータから特定の一銘柄だけを取り出して終値の場帖形式のデータに変換します。
ピボットテーブルを使うなど、人によって色々と流儀がありますが、
ここでは私が良く使う方法を解説します。
Excelの各セルに読み込む所までは前節でやりましたので、読み込まれた状態から話を始めます。
始値と高値と安値は要りませんので削除しておきます。まず、銘柄ごとに分けるために、
上部のメインメニューから「データ」→「並び替え」を選択して、
B列(銘柄)、A列(日付)、C列(限月)の順に並び替えます。
並べ変わったら、必要な銘柄以外は削除します。
一銘柄だけになったら銘柄名も要りませんので削除します。

次にセルD1に「=C2」、セルE1に「=C3」、セルF1に「=C4」、セルG1に「=C5」、セルH1に「=C6」、
を入力します。これで各限月のデータが期近から順に横に並びます。

D1〜H6の長方形を選択してコピーし、

その下に貼り付けます。
この時に注意する事は、貼り付ける領域がコピー元の領域の整数倍にならなくてはならないという事です。
今回の例では一日あたり6限月ずつですので、
正確に貼り付ければ縦の長さはちゃんと6の倍数になります。

貼り付けが成功すると以下のようになります。
上手く貼り付けられたら、今度はD列からH列までを選択してコピーし、そのまま「形式を選択して貼り付け」で
「値」を選択して貼り付け、数式データを値のデータにしておきます。
そうしないと次のステップに進めません。

要らない行を削除するため、D列の値で並べ替えます。

D列が空になっている行が下に来るので削除します。

このままでは日付の順がバラバラなのでA行(日付)で並べ替えます。

日付の形式を「yyyy/mm/dd」に変更して出来上がり。B列は当限の限月を表しています。

以下のように、同じ月の間は縦の限月が変わらない形式の方が便利な場合もあります。
これくらいなら手作業で整形した方が早いです。
月と月の間に限月を表示する行が入っていますが、必要ない場合には、
日付で並べ替えれば取ることもできます。

- 限月の数が一定でない場合
先ほどの例では、限月の数が常に6つで一定だったため簡単に処理することが出来ました。
しかし海外市場のデータなどでは限月の数が一定ではない場合もあります。
このような場合について解説します。
具体的なデータはdata4.txtです。
データの順序は、日付、限月、始値、高値、安値、終値です。
このデータから、期近3本の終値のデータを取り出す事にします。
Excelに貼り付け、始値と高値と安値を削除します。次に、日付、限月の順で並び替えます。
期近3本のみ入手するため、セルD1に「0」、セルD2に「=IF(A1=A2,D1+1,0)」を入力し、
セルD2をコピーしてセルD3以降に貼り付けます。
これでD列には、当限だと0、2番限だと1、3番限だと2が表示されます。

D列を選択してコピーし、そのままD列に「形式を選択して貼り付け」で「値」として貼り付けます。
貼り付けたら、D列で並び替えて、D列の値が3以上のものを全部削除します。

削除したら、D列も要らないので削除します。
再び日付、限月の順で並び替えると、このようになります。
これで、一日あたり丁度3つの限月のみが存在するようになりましたので、
先に述べた例のように横に並び替えれば目的のデータになります。

書式等を整えて出来上がりです。

- 場節データの変換
板寄せの場節ごとのデータを扱う際、
原データにおいて場節ごとに値段が横に並んでいる場合があります。
これを時系列に変換する方法について説明します。
具体的なデータはdata5.txtです。
データの順序は、日付、限月、前1、前2、後1、後2、後3です。
このデータを、限月ごとの時系列データに変換する事にします。
Excelに貼り付けると以下のようになります(大発会の日は後場が無いことに注意)。

色々と流儀はありますが、手っ取り早い方法を説明します。
値段の入っているそれぞれの列の前に1列ずつ列を挿入し、1から5の数値を入れます
(見易いように列の幅を小さくしてあります)。

次に、A列からB列まで選択してコピーし、

E列を選択して、コピーした列を挿入します。

同じ事を繰り返して日付と限月の列を挿入します。

全ての場節に日付と限月が入ったら、E列からH列のデータの入っている範囲を切り取り、

A列の一番下の次のセルを選択して貼り付けます。

同じようにして、全てのデータを切り取ってA列からD列に貼り付けます。

B列、A列、C列の順に並び替えると、限月ごとの時系列データになります。

既に述べたような操作で、例えば以下のようなデータにできます。

メイン目次 サブ目次