- ベストアンサー
エクセル2003及び2010での関数の使い方
- エクセルで月ごとの予定表を作成する方法についての質問です。
- B列2行目に今年の数字を入力し、B列3行目以降に日付と予定を記入します。
- 関数を使用する場合、DATEVALUE関数を使って日付を作成し、その日の曜日や特定の条件に基づいて予定を出力することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! せっかく数式をお考えのようですので、余計なお世話かもしれませんが・・・ ↓の画像でB4セル(セルの書式設定 → 表示形式 → ユーザー定義から d とだけにします)に =IF(MONTH(DATE(B$2,E$2,ROW(A1)))=E$2,DATE(B$2,E$2,ROW(A1)),"") C4セルに =IF(B4="","",TEXT(B4,"aaaa")) という数式を入れ、B5・C5を範囲指定 → C5セルのフィルハンドルで31日までの34行目までオートフィルでコピー! 最後にD4セルに =IF(C4="水曜日","休館日",IF(C4="月曜日","10時から","")) という数式を入れ月末の34行目までオートフィルでコピーすると 画像のような感じになります。 ※ C列の曜日表示を 月・火・・・のようにしたい場合は =IF(B4="","",TEXT(B4,"aaa")) のようにaを3つにしてください。 この場合はD列の数式も 水曜日 → 水 ・月曜日 → 月 と変える必要があります。 尚、上記数式はどのバージョンのExcelでも大丈夫です。m(_ _)m
その他の回答 (2)
- tom04
- ベストアンサー率49% (2537/5117)
No.1です。 たびたびごめんなさい。 >B列 2行目に今年の数字2014、月はE列1行目 のE1セルが前回の数式ではE2セルになっていました。 B4セルの数式を =IF(MONTH(DATE(B$2,E$1,ROW(A1)))=E$1,DATE(B$2,E$1,ROW(A1)),"") に変更してください。 他の列はそのままで大丈夫です。 どうも失礼しました。m(_ _)m
- bunjii
- ベストアンサー率43% (3589/8249)
>C4に曜日が出力されるようにしましたが、これで良いのでしょうか。 数式を修正する必要があります。 日付のB列をシリアル値で設定して表示形式を d とした方がベターでしょう。 曜日のC列はB列からテキスト変換で書式を "aaa" とすればD列の既定の予定が簡単になります。 また、D列~F列を結合するとD列に入力された数式が追加の予定で上書きされますので好ましくありません。 対策としては既定の予定をD列に設定して追加の予定をE列にされると良いでしょう。 尚、列幅は自由に変更できますのでセルの結合は必要が無いと考えます。 強いて結合するならE列とF列にすべきです。 Excel 2007以降の場合 B4=IFERROR(DATEVALUE(B$2&"/"&E$1&"/"&ROWS(B$4:B4)),"") C4=TEXT(B4,"aaa") D4==IF(C4="水","休館日",IF(C4="月","10時から","")) Excel 2003の場合(B4のみ変更) B4=IF(ISERR(MONTH(DATEVALUE(B$2&"/"&E$1&"/"&ROWS(B$4:B4)))),"",DATEVALUE(B$2&"/"&E$1&"/"&ROWS(B$4:B4)))
お礼
早々のご回答頂きましてありがとうございました。 関数に ROW を使うのは初めてでした。 関数の参考書など読んでも詳しい例題がなく使い方が分かりませんでした。 関数も上手に使い分けすることが出来ればおもしろいのですね。 また、分からないことがありましたら掲載致しますので、よろしくお願いします。