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

 ABCDEFG
1   2
2日月火水木金土
31234567


【最終質問内容】
D3において、
もし、D1が4か7の時、1を入れる。それ以外の時、
さらにもし、左のセル(C3)が空白の時、空白にする。それ以外の時、C3+1の結果を入れる。

【内容】
・2009年のカレンダーを作っています。
・バージョンは、Excel2000です。
・D1は月の数字で、1~12を手打ちで入れると、月から1日目の曜日を設定して2日目からは+1をしていく。
という仕様を目指しています。

【質問】
・「月を入れたら1日が来るセルの数式」について、行き詰ったのでご質問させていただきます。
例えば上図は2月の例ですが、2月は日曜で始まるので、
A3には、if(D1=2,1,"")となります。
ですが、日曜で始まる月は3月と11月もあるので、
if(or(D1=2,D1=3,D1=11),1,"")になります。
同様に、一週目(3の列)を設定すると、
B3 if(D1=6,1,"")
C3 if(OR(D1=9,D1=12),1,"")
D3 if(OR(D1=4,D1=7),1,"")
E3 if(OR(D1=1,D1=10),1,"")
F3 if(D1=5,1,"")
G3 if(D1=8,1,"")
となります。
これをさらに、
B3からG3の""の部分に、「2日目からは+1」という設定を入れなければなりません。

D3セルを例として、条件をまとめますと、
「もし、D1が4か7の時、D3に1を入れる。それ以外の時、
さらにもし、左のセル(C3)が空白の時、空白にする。それ以外の時、C3+1の結果を入れる。」
としたいのです。
何か良い方法はないでしょうか?
よろしくお願いします。

A 回答 (2件)

WEEKDAY関数を使われると、より簡単にできるかと思います。



それとアドバイスですが、A列~G列を使わず、B列~H列を使った方が式を立てるのが楽です。というのも、A列はさらに左を参照できませんが、B列ならさらに左を参照できるので、同じ式が活用できるからです。

というわけで、以下A列を挿入したものとして回答します。
WEEKDAY(2009,E1,1) で各月1日の曜日を表す数字が返ってくるので、
B3 =IF(COLUMN()-1=WEEKDAY(DATE(2009,$E$1,1)),1,IF(COLUMN()-1>WEEKDAY(DATE(2009,$E$1,1)),A3,""))
として、これをH3までコピーしてはいかがでしょう?
    • good
    • 0

#1です。


式を少し間違えました。
IF文の一番後ろにある A3 を A3+1 にしてお使いください。
でないと、全部 1日になってしまう…(笑)
    • good
    • 0
この回答へのお礼

遅くなりました。
ずいぶん前に解決していたのですが、パスワード忘れてしまって四苦八苦してました。
返事が遅れてすいませんでした。
現在は、エクセルでのカレンダーをいろいろな方法で試みています。
伝授してくださった事柄も試しました。
すごく使い勝手が良いです。

お礼日時:2009/01/29 17:38

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