• ベストアンサー

excel2000 週から日付を出したい

excel2000を利用しています。 自分でなんとかしたかったのですが、うまくいかず、投稿させていただきました。 まずはじめに、下記添付写真を参照願います。 やりたいこと条件 (1)年月と週を指定することで、自動的に、月~日までの日付を表記させたい (2)1日のある週が第一週目という条件 (3)VBAあっても、なくても、どちらでも可 です。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#204879
noname#204879
回答No.2

添付図参照 1.A列の日付は 2012/10/1 のように1日の日付を入力して、年月のみを表示するように書式設定。 2.D~J列は 月日のみを表示するように書式設定。 3.セル D3 に式 =B3+8-WEEKDAY(B3,2)+7*(C3-2) を入力。 4.セル E3 に式 =D3+1 を入力して、此れを右方にズズーッとドラッグ&ペースト

puyopa
質問者

お礼

回答ありがとうございました。 複雑すぎない関数式で、一番求めていたものに近い回答でした。

その他の回答 (5)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 各行ごとの4列目(月曜日の日付を表示させるセル)のセルに次の関数を入力してから、4列目のセルをコピーして5~10列のセルに張り付けると良いと思います。 =IF(ISNUMBER(MATCH(RC3,{1,2,3,4,5},0)/DAY(RC2)),DATE(YEAR(RC2),MONTH(RC2),1)-WEEKDAY(DATE(YEAR(RC2),MONTH(RC2),1),2)+(RC3-1)*7+COLUMNS(C4:C),"")

puyopa
質問者

お礼

回答ありがとうございました。 私の理解を超えている内容でした。 勉強して、いずれ理解させていただきます。

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

No.1です! 投稿後に気づきました。 7列カレンダーは必要ないですね! No.1は無視してください。 No.3さんと一緒になりますが・・・ ↓の画像でD3セルに =$B3-WEEKDAY($B3,2)+COLUMN(A1)+7*($C3-1) という数式を入れ列方向にオートフィルでコピー! これでOKだと思います。 ※ B2セルの表示形式はユーザー定義から yyyy/m としておき、2012/10 のように入力します。 何度も失礼しました。m(_ _)m

puyopa
質問者

お礼

何度も、ご丁寧に回答頂きありがとうございました。 勉強になりました。

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.4

あまりスマートとは言えませんが。   =FLOOR(B3,7)+C3*7 で該当週の土曜日をはじき出します。 他の曜日は足し算引き算ですので、問題なく応用できるでしょう。 B3セルには日付(年月日)が入力されているが、表示形式でYYYY年M月にしている と言うのが条件ではありますが。 > (3)VBAあっても、なくても、どちらでも可 と言うことですから、関数に関しては解説しなくてもご理解いただけるでしょうし、 上記条件以外の時にも応用できると思いますので、そこには言及しないでおきます。

puyopa
質問者

お礼

回答ありがとうございました。 とても、分かりやすくて、簡単で、いいですね。斬新で面白いって思いました。 No2の方の回答と、どっちを使うか、非常に迷いました。どっちがいいのでしょうね・・? 今回はNo2の方の記述を利用させていただきましたが、何かの機会に活用させていただきたいと思います。

  • TammyG3
  • ベストアンサー率30% (34/111)
回答No.3

VBA可と言うくらいですから、「WEEKDAY()関数を使う」でわかるでしょう。 第1週の月曜日の月日は、1日の曜日をWEEKDAY()関数で知る。 幸い数値が返るので引き算で可能。第2引数を3にすると、シンプル。 先頭の月曜日は、A1が1日、B1が第?週として、 = ( A1- WEEKDAY( A1, 3 ) )+ (B1- 1 )* 7                              鎌倉 曽野蜩  

puyopa
質問者

お礼

回答ありがとうございました。 今回は関数の記述で対応させていただきました。 しかし、VBAの記述も教わることが出来て、良かったです。 機会があれば活用させていただきます。 ありがとうございました。

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

こんばんは! 一案です。 ↓の画像のように7列のカレンダーを利用する方法です。 (画像では同Sheetにしていますが、目障りであれば別Sheetに作成します) B3セルの表示形式はユーザー定義から yyyy年m月 としておきます。 仮に 2012/10 とだけ入力すれば 2012/10/1 のシリアル値になります。 D6セル(表示形式は好みで!)に =$B$3-WEEKDAY($B$3,2)+COLUMN(A1)+7*(ROW(A1)-1) という数式を入れ列方向・行方向にオートフィルでコピーすると 7列カレンダーが作成されます。 C6セルから下に向かって第何週か?の数値を入力 (必ず1日がカレンダーの1週目になります) 最後にD3セル(こちらの表示形式は好みで!)に =INDEX(D6:D11,$C3) という数式を入れ列方向にオートフィルでコピーすると 画像のような感じになります。 これでB3・C3セルを変更すればご希望通りにならないでしょうか?m(_ _)m

puyopa
質問者

お礼

回答ありがとうございました。 今回利用は見送らせていただきましたが、カレンダー作成の際に使える内容でした。 何かの際に是非活用させていただきます。 ありがとうございました。