プロが教える店舗&オフィスのセキュリティ対策術

エクセルのワークシートAの1列目(A列)の日付と、ワークシートBの1列目(A列)の日付を一致させて1つのワークシートに纏める方法を探しています。

2つの時系列データがあるのですが、データA(為替データ)とデータB(株式データ)のデータ管理方法が下記のように異なっています。

データA(為替データ)・・・1週間のうち6日間(月曜から土曜まで)
データB(株式データ)・・・1週間のうち5日間(月曜から金曜まで)

おのおのワークシートのA列に日付が入っています。

データAは月曜から土曜までなので、1週間に6行要します。データBは月曜から金曜なので1週間に要するのは5行です。従って、単純にこの2つのデータを張り合わせるだけでは(データBをデータAのシートに張り合わせた時)、1週間に要する行数が違うので1行ずつずれてしまいます。

1週間に要する行数の違いだけでなく、マーケットが休みの日はデータそのものがないため日付が存在しません。(マーケットの休みもおのおの別の日でバラバラです。)

これらの理由により、ただ単に張り合わせるだけだとずれが広がるばかりです。

そこでデータAの日付とデータBの日付を認識して一致させる関数を教えて欲しいと思います。

データAの構成はA1=日付、B1=始値、C1=高値、D1=安値、E1=終値で、データBの構成も同じです。
データAのF1にデータAのA1と同じ日付のデータBの行を貼り付るように設定したいと思っています。

説明が分かり辛い場合は補足しますので、その際はご指摘下さい。

宜しくお願いします。

A 回答 (3件)

誤記がありましたね。

ごめんなさい。

シートCのA2に
2010/1/1
を置いて下向けにえいやっとオートフィルドラッグ,365日の日付を並べておいて
B2:為替
=IF(COUNTIF(為替!$A:$A,$A2),VLOOKUP($A2,為替!$A:$E,COLUMN(B2)),"")
を右に下にコピー。
F2:株式
=IF(COUNTIF(株式!$A:$A,$A2),VLOOKUP($A2,株式!$A:$E,COLUMN(B2)),"")
を右に下にコピー。

これでマーケットの開いてなかった日付がエラーになることもありませんので,追加のご質問も解消でしょうか。
    • good
    • 0
この回答へのお礼

keithinさん。

ご回答有難う御座居ます。

括弧が1つ足りなかったんですね。教えて頂いた式で上手くいきました。

丁寧なご回答を頂き感謝ですm(_ _)m。

有難う御座居ました。

お礼日時:2010/05/26 04:20

統合したいシートには土日も含めた単純にカレンダーのような日付列(A列)を作成


後はB列以降にVLOOKUP関数でデータA、データBそれぞれのデーターを取得すればいいのでは?

必要のないデータを削除したいのであれば統合が完了した時点で日曜日の行のみ削除すればいい
    • good
    • 0
この回答へのお礼

ありがとうございます。

#1の方の回答とは別に、自分でVLOOKUP関数を使ったデータ処理をする事が出来ました。

> 必要のないデータを削除したいのであれば統合が完了した時点で日曜日の行のみ削除すればいい

これは関数では出来ないですよね。マクロを組まないと駄目ですよね。

もしマクロ以外の対応方法をご存知でしたら教えて下さい。

お礼日時:2010/05/26 00:27

>データAのF1にデータAのA1と同じ日付のデータBの行を貼り付るように設定したい



何がしたいのかな?


ケース1:為替相場が休みの(Aに無い)日は,株式相場をやっていてもBのデータを取ってこなくて良い
AのF2に
=IF(COUNTIF(株式!$A:$A,$A2),VLOOKUP($A2,株式!$A:$E,COLUMN(B2)),"")
を右に下にコピー。


ケース2:為替が休みの日は日付を埋めて,株式だけデータを並べておきたい。株式が休みで為替はやってる日は為替のデータだけ並べたい

シートCのA2に
2010/1/1
を置いて下向けにえいやっとオートフィルドラッグ,365日の日付を並べておいて
B2:為替
=IF(COUNTIF(為替!$A:$A,$A2),VLOOKUP($A2,為替!$A:$E,COLUMN(B2),"")
を右に下にコピー。
F2:株式
=IF(COUNTIF(株式!$A:$A,$A2),VLOOKUP($A2,株式!$A:$E,COLUMN(B2),"")
を右に下にコピー。
    • good
    • 0
この回答へのお礼

説明が悪くてすみません。

やりたかったのはケース2の方です。

で、教えてもらった通りにやったのですが、=IF(COUNTIF(為替!$A:$A,$A2),VLOOKUP($A2,為替!$A:$E,COLUMN(B2),"")で入力すると#VALUE!になってしまいました。

最後の検索の型を""でなく、FALSEに変更すると上手くいったのでとりあえずそれで対応しましたが、
""だと上手くいかないのは何故でしょうか。""にはFALSEかTRUEかどちらか適切なものを自分で選んで入れなさいという意味だったのでしょうか。

宜しければもう一度教えて下さい。

お礼日時:2010/05/26 00:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!