利用規約の変更について

 ある作業が、4月14日から4週間(28日後)の5月12日に再び実施されて、以降は定期的に4週間(28日)毎に実施されます。


=IF(OR($C$6="5月12日",$C$6="6月9日"),"○","")

 該当する月日を入れてみましたが、C6セルに同じ月日が有っても「○」と判定されません。
 またこの方法では、該当す月日を予め入力していかなければならないので、もっと効率の良い方法が有りましたら、ご教授よろしくお願いいたします。

A 回答 (5件)

IF関数の前に、Excel上での日付の扱いを理解しましょう。



「2012年4月14日」とは、数値の「41013」なのです。

これは何かというと、「1900年1月1日」=1 として、そこから何番目の日付か、ということを表しています。

日付を全て数値として扱うことにより、10日前とか100日後とか言うことが、算術演算で扱えるようになっているのです。

試しに、セルに「41013」という数値を入力してみてください。
そして、セルを右クリックした書式設定から、「日付」を選んでみてください。
サンプルとして「2012/4/14」が表示され、さらに平成日付を選んで[OK]すれば、「平成24年4月14日」という表示に変わります。

--

さて、それが理解できたなら、28日後というのは単純な話です。

「=if($C$6 = DATEVALUE("2012/4/14")+28, "○", "")」

このように書くと、4/14から28日後の5/12となったとき、○が表示されます。

また、毎28日ごとというならば、「4月14日」からの『経過日数』を『28で割った余りが0』の時、と計算できますから、

「=if(mod($C$6-DATEVALUE("2012/4/14"), 28)=0, "○", "")」

これひとつで、何回目の28日後であっても判定できます。

--

なお、文字列から日付値に変換するDATEVALUE 関数の引数は、Excelが解釈できればどのように書いても構いません。

DATEVALUE("2012/4/14")
DATEVALUE("4月14日") ※2012年中のみ、41013
DATEVALUE("平成24年04月14日")
DATEVALUE("H24.4.14")

どの書き方でも、41013 という数値を表します。
    • good
    • 0
この回答へのお礼

 日付(シリアル値)の概念とDATEVALUEの利用法について、大変勉強なりました。

お礼日時:2012/04/28 17:45

=IF(MOD(C6,28)=21,"○","")


だけでいいです。




#もし勉強したいなら:
4月14日などの日付を例えばA1セルに記入し、
=MOD(A1,28)
とだけ計算式を記入、数式を記入したセルにツールバーのカンマボタンを押してから、改めてA1セルにいろんな日付を記入して、何が計算されるか確認してみると参考になります。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました!
早速試してみます!

お礼日時:2012/04/28 17:28

こんにちは!


お示しの数式で、5月12日・6月9日はダブルクォーテーションで囲ってありますので、
文字列扱いとなります。
そして、数式に 5月12日と入れたとしてもExcel的にはエラーになるはずです。
5月12日をシリアル値として数式に入れればご希望通りになるはずです。
今年の場合として・・・

=IF(OR($C$6="2012/5/12"*1,$C$6="2012/6/9"*1),"○","")

といった感じでしょうかね!

>4月14日から4週間(28日後)の5月12日に再び実施されて、以降は定期的に4週間(28日)毎・・・

とありますので
5月12日・6月9日に限定せず

=IF(MOD($C$6-DATE(2012,4,14),28)=0,"○","")

という数式でもOKだと思います。

参考になりますかね?m(__)m
    • good
    • 0
この回答へのお礼

 大変参考になりました。
 日付の表記方法が適切ではなかったのですね。

お礼日時:2012/04/28 17:33

例えば、元になる日付


4/12の日付がをA6に入っているとします。
これをC7に入っている日にちが4/12から28日ごとにあたる日を求めたいのであれば
以下のような式にしてください。

=IF(MOD($C6-$A$6,28)=0,"○","")
この式を入れておけば
式を縦にコピーしても大丈夫です。
    • good
    • 0

表示上「5月12日」となっていても実際に入っているのは日付のシリアル値です。


ご提示の式はシリアル値と「5月12日」「6月9日」と言う文字列を比較しているので一致したとは判断されません。

2012/5/12から28日周期という事でしたら↓こんな感じでどうでしょう。
=IF(MOD(C6-DATEVALUE("2012/5/12"), 28)=0,"○","")
    • good
    • 0

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


人気Q&Aランキング