• 締切済み

エクセルで曜日から日付を求めたい

手入力で作りたい表を添付させて頂きました。 月を変更すると自動で日付が入れ替わるようにしたいです。 何とか日付を入れるまではできましたが… (1)曜日によって、第1週目に前月の日付が入力されてしまう (2)調べての自己流なので今後エラーが出ないとはいいきれず。。 (1)は手動で+7して修正する回避できず困ってます エクセル自体、全くの初心者ですのでご指導お願いします

みんなの回答

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

 回答No.2です。  もし、各曜日の表ごとに異なる関数を設定しても良い場合には、次の様にして下さい。  まず、C3セルに次の関数を入力して下さい。 =IFERROR(($N$1&$O$1&"年"&$Q$1&"月"&1+COLUMNS($C3:C3)*7-WEEKDAY($N$1&$O$1&"年"&$Q$1&"月1日",12)&"日")+0,"")  次に、C3セルの書式設定の表示形式を[ユーザー定義]の d に設定して下さい。  次に、C3セルをコピーして、D3~G3のセル範囲に貼り付けて下さい。  次に、K3セルに次の関数を入力して下さい。 =IFERROR(($N$1&$O$1&"年"&$Q$1&"月"&1+COLUMNS($K3:K3)*7-WEEKDAY($N$1&$O$1&"年"&$Q$1&"月1日",13)&"日")+0,"")  次に、K3セルの書式設定の表示形式を[ユーザー定義]の d に設定して下さい。  次に、K3セルをコピーして、L3~O3のセル範囲に貼り付けて下さい。  次に、S3セルに次の関数を入力して下さい。 =IFERROR(($N$1&$O$1&"年"&$Q$1&"月"&1+COLUMNS($S3:S3)*7-WEEKDAY($N$1&$O$1&"年"&$Q$1&"月1日",14)&"日")+0,"")  次に、S3セルの書式設定の表示形式を[ユーザー定義]の d に設定して下さい。  次に、S3セルをコピーして、T3~W3のセル範囲に貼り付けて下さい。  次に、C17セルに次の関数を入力して下さい。 =IFERROR(($N$1&$O$1&"年"&$Q$1&"月"&1+COLUMNS($C17:C17)*7-WEEKDAY($N$1&$O$1&"年"&$Q$1&"月1日",15)&"日")+0,"")  次に、C17セルの書式設定の表示形式を[ユーザー定義]の d に設定して下さい。  次に、C17セルをコピーして、D17~G17のセル範囲に貼り付けて下さい。  次に、K17セルに次の関数を入力して下さい。 =IFERROR(($N$1&$O$1&"年"&$Q$1&"月"&1+COLUMNS($K17:K17)*7-WEEKDAY($N$1&$O$1&"年"&$Q$1&"月1日",16)&"日")+0,"")  次に、K17セルの書式設定の表示形式を[ユーザー定義]の d に設定して下さい。  次に、K17セルをコピーして、L17~O17のセル範囲に貼り付けて下さい。  次に、S17セルに次の関数を入力して下さい。 =IFERROR(($N$1&$O$1&"年"&$Q$1&"月"&1+COLUMNS($S17:S17)*7-WEEKDAY($N$1&$O$1&"年"&$Q$1&"月1日",17)&"日")+0,"")  次に、S17セルの書式設定の表示形式を[ユーザー定義]の d に設定して下さい。  次に、S17セルをコピーして、T17~W17のセル範囲に貼り付けて下さい。  次に、C4セルに次の関数を入力して下さい。 =IF(SUM(C3)<1,"",C3)  次に、C4セルの書式設定の表示形式を[ユーザー定義]の aaa に設定して下さい。  次に、C4セルをコピーして、D4~G4、L4~O4、T4~W4、D19~G19、L19~O19、T19~W19の各セル範囲に貼り付けて下さい。  以上です。

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

 今仮に、N1セルに「平成」等の元号が入力されていて、O1セルに年を表す整数が、Q1セルに月を表す整数がそれぞれ入力されているものとします。  そして、「月曜の表の第1週目の日付を表示させる列」、「火曜の表の第1週目の日付を表示させる列」、「水曜の表の第1週目の日付を表示させる列」という「各曜日の表の第1週目の日付を表示させる列」の列の間隔は全て等しくなっているものとします。  まず、C4、K4、S4、C18、K18、S18の「各曜日の表の第1週目の曜日を表示させるセル」に月~土の各々の曜日を入力して下さい。  次に、C3セルに次の関数を入力して下さい。 =IFERROR(($N$1&$O$1&"年"&$Q$1&"月"&8+MOD(COLUMN()-COLUMN($C3),COLUMNS($C3:$K3)-1)*7-WEEKDAY($N$1&$O$1&"年"&$Q$1&"月1日",10+FIND(INDEX(4:4,COLUMN()-MOD(COLUMN()-COLUMN($C3),COLUMNS($C3:$K3)-1)),"日月火水木金土"))&"日")+0,"")  次に、C3セルの書式設定の表示形式を[ユーザー定義]の d に設定して下さい。  次に、C3セルをコピーして、D3~G3、K3~O3、S3~W3、C18~G18、K18~O18、S18~W18の各セル範囲に貼り付けて下さい。  次に、D4セルに次の関数を入力して下さい。 =IF(SUM(D3)<1,"",D3)  次に、D4セルの書式設定の表示形式を[ユーザー定義]の aaa に設定して下さい。  次に、D4セルをコピーして、E4~G4、L4~O4、T4~W4、D19~G19、L19~O19、T19~W19の各セル範囲に貼り付けて下さい。  以上です。

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.1

タイトル「エクセルで曜日から日付を求めたい」だけを読むと、何と無茶苦茶なことを!と叫びます。 例えば、今年の9月と12月の1~30日のカレンダーを凝視すれば分かります。

mocha073
質問者

お礼

ご意見ありがとうございました。 何とか試行錯誤して自己解決できましたので終了します。