- ベストアンサー
エクセル曜日11月31日、2月29~31日
出勤表のようなものを作成しています。 M16に日付を表す1が入力されていて 16行目右方向にに2~31と入力されています。 印刷範囲外となるA11に西暦をA13に月を入力する事により 以下の関数が入っているM17に書式設定で曜日が表示されます。(17行目右方向に数式がコピーされています) =DATE($A$11,$A$13,M16) このままだと、31日がない月でも曜日が表示されてしまいます。 (翌月1日の曜日) 又、2月となると29日に3月1日の曜日が表示されてしまいます。 DATE(2005,11,31)というのは12月1日という事になるのですか? DATE(2005,11,31)⇒有り得ない⇒エラー値にはならないのですか? 2月29日~31日(できればうるう年を自動認識に)と 小の月の31日の曜日のセルを 空白にする関数を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>DATE(2005,11,31)というのは12月1日という事になるのですか? そうなってしまいます されを逆手にとって設定月と計算結果月との判定を行ったらどうでしょう =IF($A$13=MONTH(DATE($A$11,$A$13,M16)),DATE($A$11,$A$13,M16),"") みたいな感じで 一致しない場合は空白を返します
その他の回答 (3)
- mshr1962
- ベストアンサー率39% (7417/18945)
私はこんな方法をとっています。 セルには「=DATE($A$11,$A$13,M16)」のまま入力 「書式」「条件付き書式」で 「数式が」「=MONTH(セル)<>$A$13」で文字色と背景色を同じにして表示しないようにする。 こうすれば2月(閏年を含む)や31日の無い月でも対応できます。
お礼
このような方法もあるのですね。 勉強になりました。 ありがとうございました(^-^)/
- shiotan99
- ベストアンサー率68% (140/203)
こんにちは~ 余計なお世話かもしれませんが‥ 曜日だけを空白にすればいいのでしょうか? 次のようにすれば、曜日だけでなく日付も空白になります。 11月なら 31が空白になり、2006年2月なら 29から31が空白になるということです。 *--< 前提 >----------- A11セルに 西暦年 A13セルに 月 が入力されているとして *--------------------- M16に( 月初の 1日 ) =IF(COUNT(A11,A13)<2,"",DATE(A11,A13,1)) N16に( 2日以降 ) =IF(M16="","",IF(MONTH(M16+1)=$A$13,M16+1,"")) と入れて、AQ16 までフィルコピー ◆ M16 から AQ16 のセルの書式設定~表示形式をユーザー定義にして、 右の 「種類」 ボックスに d とだけ入力。 これで日付が、1 から 31と表示されます。 M17に( 曜日 ) =TEXT(M16,"aaa") と入れて、AQ17 までフィルコピー 以上です。
お礼
実はこれを使用する書類は 取引先から指定された用紙なので ひにちを消す必要はないのですが 消えてる方がきれいだし間違いも防げますね。 他の書類の自作の表等に利用しようと思います。 ありがとうございました(^-^)/
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#1さんの回答で良いと思いますが 入力した日付がエラーになるようにするには =DATEVALUE(""&$A$11&"/"&$A13&"/"&M16) を使うとエラーになります。 この場合 =IF(ISERR(DATEVALUE(""&$A$11&"/"&$A13&"/"&M16)),"",DATEVALUE(""&$A$11&"/"&$A13&"/"&M16)) のようにできます
お礼
有り得ない日付を入力すると必然的にエラー値がでないのかな~ と思い、出るなら IF関数で空白にできるのに・・・という考えで この質問をさせていただきました。 しかし、こういう方法もあるのですね。 数限りない組み合わせでいろいろな考え方から 想像していた結果が得られるのは非常に楽しい事ですね。 ありがとうございました(^-^)/
お礼
ありがとうございます。 逆から考えるという発想が素晴らしいです! 数式もシンプルでわかりやすいので この方法で作成させていただきます(^_^)/