- ベストアンサー
エクセルの計算式について
エクセルの計算式で教えて下さい。以下の条件です。 ある変数が、O,H,L,Cとあります。データ数は250日間です。 質問は、あるA時点から直前の4日間でO<Cの場合にO-Lを計算し、O>Cの場合にはH-Oを計算してこれを繰り返し250日間分行います。 常に直近の4日間を計算して行きます。条件文が入ると思います。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! >常に直近の4日間を計算して行きます というコトですので、↓の画像で数式が入っている各列の4日前からその行の日付までの合計で判断しています。 Excel2007以降の場合ですが、 画像ではF2セルに =IF(COUNTIF(A:A,A2-3),IF(SUMIFS(B:B,A:A,">="&A2-3,A:A,"<="&A2)<SUMIFS(E:E,A:A,">="&A2-3,A:A,"<="&A2),SUMIFS(B:B,A:A,">="&A2-3,A:A,"<="&A2)-SUMIFS(D:D,A:A,">="&A2-3,A:A,"<="&A2),SUMIFS(C:C,A:A,">="&A2-3,A:A,"<="&A2)-SUMIFS(B:B,A:A,">="&A2-3,A:A,"<="&A2)),"") という数式を入れオートフィルで下へコピーしています。 ※ >あるA時点から直前の4日間 の「あるA時点」とは数式が入っている行のA列日付(その日を含む)4日前までとします。 こんな感じで良いのでしょうか?m(_ _)m
その他の回答 (4)
- bunjii
- ベストアンサー率43% (3589/8249)
>質問は、あるA時点から直前の4日間でO<Cの場合にO-Lを計算し、O>Cの場合にはH-Oを計算してこれを繰り返し250日間分行います。 A列に日付が連続して入力されていることを条件とし、直前の4日間は其々がO<CのときO-L、O>CのときH-Oとした結果を合計するのであれば次の数式で良いと思います。 B6=SUMPRODUCT((O2:O5<C2:C5)*(O2:O5-L2:L5)+(O2:O5>C2:C5)*(H2:H5-O2:O5)) または B6=SUM(IF(C2:C5>O2:O5,O2:O5-L2:L5,H2:H5-O2:O5)) この数式ではIF関数の返り値を配列にするため、数式バーへ入力後Ctrl+Shift+Enterで確定してください。 B6セルを下へ必要数コピーすれば目的の日付を参照して結果をチェックできます。 A列の日付が飛んでいる場合は直前の4日間のデータが欠けるのでどのように補うかの指定が必要かと思います。
お礼
ありがとうございます。分かりやすいです。検証しています。参考になります。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
- shorun
- ベストアンサー率42% (133/310)
- bin-chan
- ベストアンサー率33% (1403/4213)
> ある変数が、O,H,L,Cとあります。データ数は250日間です。 以下で計算するからには数値が入るのでしょうが、どうやって識別するんですか? 列を4つ使用し、ソレを変数と呼称しているのですか? > 質問は、あるA時点から直前の4日間でO<Cの場合にO-Lを計算し、O>Cの場合にはH-Oを計算して O=Cは考慮しなくて良いのですか? > これを繰り返し250日間分行います。 データの始め4行は、過去日が4日間揃わないので計算する必要は無いとするんですか? どれが「あるA時点」ですか?250日の中から任意の1日を指定するのですか? どこかのセルに日付を指定して、その日から遡るのですか?
お礼
bin-chan様 ご指摘ありがとうございます。言葉足らずで分かり難くてすみませんでした。 > ある変数が、O,H,L,Cとあります。データ数は250日間です。 以下で計算するからには数値が入るのでしょうが、どうやって識別するんですか? 列を4つ使用し、ソレを変数と呼称しているのですか? →はい。それぞれ数値が入ります。日々その数値は変わりますが、必ず数値が出ます。それを変数と称していました。 > 質問は、あるA時点から直前の4日間でO<Cの場合にO-Lを計算し、O>Cの場合にはH-Oを計算して O=Cは考慮しなくて良いのですか? →はい、O=Cは考慮しなくても問題ありません。 > これを繰り返し250日間分行います。 データの始め4行は、過去日が4日間揃わないので計算する必要は無いとするんですか? どれが「あるA時点」ですか?250日の中から任意の1日を指定するのですか? どこかのセルに日付を指定して、その日から遡るのですか? →はい、前日の4日分が揃わないと5日目には計算できないので、揃わないと計算の必要はなくなります。250日の中から任意のA時点を指定します。任意のA時点を指定したら、その後は常に計算し続けるだけです。 すみません。よろしくお願いします。
お礼
難しい式を丁寧に書いて頂きありがとうございました。勉強になりました。