• 締切済み

エクセル【年月を入力→曜日に対応した日付を表示】

以前自分で作ったのですが、すっかり忘れてしまいましたので、恥ずかしながらご回答いただければと思います。 a1に任意の西暦、b1に任意の月を入力するものとします。 2行目は、a2から右へ日月火水木金土日月・・・・と入力してあり、これは変えません。 (a2=日、b2=月、c2=火、d2=水、e2=木、f2=金、g2=土、h2=日・・・という具合です) 3行目に年月と曜日に対応した日付を表示したいのです。 例えば、2011年1月の1日が土曜日だとすると、「a1に2011」「b1に1」と入力した場合に、 a3からf3までは空白でg3から1日が表示されるようにしたいのですが。

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

○ご質問に書かれたとおりA1に年,B1に月,A2から日,月,火…の場合 A3に =IF(OR(COUNT($A$1:$B$2)<2,COLUMN()<WEEKDAY(DATE($A$1,$B$1,1)),MONTH(DATE($A$1,$B$1,COLUMN()-WEEKDAY(DATE($A$1,$B$1,1),2)))>$B$1),"",COLUMN()-WEEKDAY(DATE($A$1,$B$1,1),2)) を右にコピー ○もっと簡単なケース わざわざA列にびったりくっつけたりしないで B1に年,C1に月,B2から日,月,火…の場合 B3に =IF(OR(COUNT($B$1:$C$1)<2,COLUMN(A3)<WEEKDAY(DATE($B$1,$C$1,1)),MONTH(DATE($B$1,$C$1,COUNT($A$3:A3)+1))>$C$1),"",COUNT($A$3:A3)+1) を右にコピー #ご質問に書いていない,当月末日以降(つまり翌月1日以降)は表示しないとか,年と月がちゃんと入っていないと全部表示しないといった手当てをしているので余計に式が増えています。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 C1セルにその月の1日のシリアル値を表示させておきます C1セルは =DATE(A1,B1,1) (これが目障りであればフォントを白にしておけば気にならないと思います) そしてA3セルに(セルの表示形式はユーザー定義から d としておきます) =IF(MONTH($C$1-WEEKDAY($C$1)+COLUMN(A1))=$B$1,$C$1-WEEKDAY($C$1)+COLUMN(A1),"") という数式を入れ、列方向にずぅ~~~!っとオートフィルでコピーではどうでしょうか? エラー処理はしていません。 他に良い方法があればごめんなさいね。m(__)m