12月と1月の曜日表示がうまくいかない



 ◇-?12月と1月の曜日表示がうまくいかない-you(初)-12/16-12:16(3162)-No.512914
   ┣?!Re:12月と1月の曜日表示がうまく...-c-koban-12/16-16:21(3158)-No.512915
   ┃ ┗?!!Re:12月と1月の曜日表示がうま...-you-12/16-16:47(3157)-No.512916
   ┃   ┗?!!!Re:12月と1月の曜日表示がうま...-ZONE-12/16-19:34(3154)-No.512918
   ┃     ┗?!!!!Re:12月と1月の曜日表示がう...-you-12/16-22:08(3152)-No.512919
   ┃       ┗?!!!!!Re:12月と1月の曜日表示がう...-ZONE-12/17-06:38(3143)-No.512920
   ┃         ┗?!!!!!!Re:12月と1月の曜日表示が...-you-12/17-13:47(3136)-No.512922
   ┃           ┗?!!!!!!!Re:12月と1月の曜日表示が...-ZONE-12/17-15:45(3134)-No.512923
   ┗?!削除...-o6asan-12/16-18:52(3155)-No.512917

▲このページのトップに戻る
51291412月と1月の曜日表示がうまくいかないyou(初) 2013/12/16-12:16

メーカー名:自作PC 作ってもらった e111
OS名:Windows7
パソコン名:E113
--
excelで、セルM4に平成〜年、セルN4に月、N列の各セルに日にち、そのとなりに曜日が表示され、
曜日のところには

=IFERROR(CHOOSE(WEEKDAY(DATEVALUE($M$4&IF($N$4-1=0,12,$N$4-1)&"月"&$N12&"日")),"日","月","火","水","木","金","土"),"-")

↑の関数が入っているのですが、これだと12月と1月の曜日が正しく表示されません。

どこを直したらよいのか教えてください。

▲このページのトップに戻る
512915Re:12月と1月の曜日表示がうまくいかないc-koban 2013/12/16-16:21

記事番号512914へのコメント
you(初)さんは No.512914「12月と1月の曜日表示がうまくいかない」で書きました。

=IFERROR(CHOOSE((WEEKDAY(DATEVALUE((IF($M$4-1=0,12,$M$4-1)&"年"&IF($N$4-1=0,12,$N$4-1)&"月"&$O4&"日")))),"月","火","水","木","金","土","日"),"-")

これでどうでしょう?

▲このページのトップに戻る
512916Re:12月と1月の曜日表示がうまくいかないyou 2013/12/16-16:47

記事番号512915へのコメント
c-kobanさんは No.512915「Re:12月と1月の曜日表示がうまくいかない」で書きました。
回答ありがとうございます。
やってみたのですが、
うまくいきませんでした。
説明不足で申し訳ありませんが、N列の日にちは
11日から始まって、10まで入っているのです。
なので、12月というのは11月11日〜12月10日までのことなのです。
初めに載せた数式だと、12月1日の曜日表示が━で出てしまいます。
いろいろ申し訳ありませんが、
どうぞよろしくお願いいたします。

▲このページのトップに戻る
512918Re:12月と1月の曜日表示がうまくいかないZONE 2013/12/16-19:34

記事番号512916へのコメント
youさんは No.512916「Re:12月と1月の曜日表示がうまくいかない」で書きました。

>説明不足で申し訳ありませんが、N列の日にちは
>11日から始まって、10まで入っているのです。
>なので、12月というのは11月11日〜12月10日までのことなのです。

1.年補正(1月の11日〜月末日までは前年)
 1月で11日以上の場合は年から1を減算する,
 それ以外は補正無し。
2.月補正(11日〜月末日までは前月,1日〜10日までは当月)
 11日以上で1月の場合は月を12月に置換する,
 11日以上で1月以外時は月から1を減算する,
 それ以外は補正無し。
3.日補正
 補正無し。
のように、正確な当日年月を求めるよう数式化すれば期待通りの結果が得られます。

例)O5セルの数式
=TEXT(IF($N5>=11,EDATE(DATE(1988+$M$4,$N$4,$N5),-1),DATE(1988+$M$4,$N$4,$N5)),"aaa")

▲このページのトップに戻る
512919Re:12月と1月の曜日表示がうまくいかないyou 2013/12/16-22:08

記事番号512918へのコメント
ご回答ありがとうございます。
関数に不慣れで大変申し訳ないのですが、

>例)O5セルの数式
>=TEXT(IF($N5>=11,EDATE(DATE(1988+$M$4,$N$4,$N5),-1),DATE(1988+$M$4,$N$4,$N5)),"aaa")

矢印で表示可能になったのですが、一か月が28日や30日の場合存在しない31日などの日を空欄にするには、更に何を加えればよいのでしょうか?
かさねがさね申し訳ありませんが、教えてください。

▲このページのトップに戻る
512920Re:12月と1月の曜日表示がうまくいかないZONE 2013/12/17-06:38

記事番号512919へのコメント
youさんは No.512919「Re:12月と1月の曜日表示がうまくいかない」で書きました。

>矢印で表示可能になったのですが、一か月が28日や30日の場合存在しない31日などの日を空欄にするには、更に何を加えればよいのでしょうか?

では、発想を変えて日と曜日を大小の月,閏年を加味して表示するのはいかがでしょう。

M4:和暦(平成)年号入力
N4:月入力
N5〜N25:前月11〜31日の日を表示(毎月29〜31日の存在しない日は空白にする)
N26〜N35:当月1〜10日の日を表示
O5〜O35:N列同行に対応する曜日を表示(毎月29〜31日の存在しない日は空白にする)

それぞれのセルの数式
N5:=EDATE(DATE(1988+$M$4,$N$4,11),-1)  O5:=$N5
N6:=$N5+1  O6:=$N6

N22:=$N21+1 O22:=$N22
N23:=IF($N22="","",IF(DAY($N22+1)=1,"",$N22+1))  O22:=$N23
N24:=IF($N23="","",IF(DAY($N23+1)=1,"",$N23+1))  O23:=$N24
N25:=IF($N24="","",IF(DAY($N24+1)=1,"",$N24+1))  O24:=$N25
N26:=DATE(1988+$M$4,$N$4,1)  O26:=$N26
N27:=$N26+1  O27:=$N27

N35:=$N34+1  O35:=$N35

N5〜N35の書式:ユーザー定義で種類に「d」を入力
O5〜O35の書式:ユーザー定義で種類に「aaa」を入力

▲このページのトップに戻る
512922Re:12月と1月の曜日表示がうまくいかないyou 2013/12/17-13:47

記事番号512920へのコメント
ご回答ありがとうございます。
助かりました。
何度も申し訳ないのですが、

一番初めの時、曜日のセルには書きの数式が入っていました。
=IFERROR(CHOOSE(WEEKDAY(DATEVALUE($M$4&IF($N$4-1=0,12,$N$4-1)&"月"&$N12&"日")),"日","月","火","水","木","金","土"),"-")

そして、
教えていただいたように下記の数式を入れました。
N5:=EDATE(DATE(1988+$M$4,$N$4,11),-1)  O5:=$N5
N6:=$N5+1  O6:=$N6

N22:=$N21+1 O22:=$N22
N23:=IF($N22="","",IF(DAY($N22+1)=1,"",$N22+1))  O22:=$N23
N24:=IF($N23="","",IF(DAY($N23+1)=1,"",$N23+1))  O23:=$N24
N25:=IF($N24="","",IF(DAY($N24+1)=1,"",$N24+1))  O24:=$N25
N26:=DATE(1988+$M$4,$N$4,1)  O26:=$N26
N27:=$N26+1  O27:=$N27

N35:=$N34+1  O35:=$N35

N5〜N35の書式:ユーザー定義で種類に「d」を入力
O5〜O35の書式:ユーザー定義で種類に「aaa」を入力

すると、べつのセルで下記の数式(土日を抜いた実稼働日数をカウントする、Pは稼働時間を入れるセル)
=NETWORKDAYS($D$2,$D$4)-COUNTIF($M$9:$M$39,"○")-R$45+COUNTIFS(R$9:R$39,">0",$O$9:$O$39,"土")+COUNTIFS(R$9:R$39,">0",$O$9:$O$39,"日")+COUNTIFS(R$9:R$39,">0",$M$9:$M$39,"○")
があり、#value!となります。
実稼働日数をカウントする式をどのように変更したらよいのでしょうか?
何度もすみませんが、教えてください。

▲このページのトップに戻る
512923Re:12月と1月の曜日表示がうまくいかないZONE 2013/12/17-15:45

記事番号512922へのコメント
youさんは No.512922「Re:12月と1月の曜日表示がうまくいかない」で書きました。

曜日(O5〜O35(実際はO9〜O39))は日付(シリアル値)を書式設定で曜日表示させているため
他で曜日の文字列として扱おうとすると違った結果になります。
日(N5〜N35(実際はN9〜N39))を他で参照しないのであれば、曜日(O5〜O35(実際はO9〜O39))の
数式を以下にしてください。
O5:=TEXT($N5,"aaa")

O35:=TEXT($N35,"aaa")
O5〜O35の書式:標準または文字列にする

日(N5〜N35(実際はN9〜N39))は固定値(11〜31,1〜10)として曜日だけを数式で表示
したい場合は曜日(O5〜O35(実際はO9〜O39))の数式を以下にしてください。
#No.512918の補正説明をそのまま数式化しただけ
O5:=IFERROR(CHOOSE(WEEKDAY(TEXT(IF($N$4=1,IF($N5>=11,1988+$M$4-1,1988+$M$4),1988+$M$4),"0000")&"/"&TEXT(IF($N5>=11,IF($N$4=1,12,$N$4-1),$N$4),"00")&"/"&TEXT($N5,"00")),"日","月","火","水","木","金","土"),"-")
または、
O5:=IFERROR(TEXT(DATEVALUE(TEXT(IF($N$4=1,IF($N5>=11,1988+$M$4-1,1988+$M$4),1988+$M$4),"0000")&"/"&TEXT(IF($N5>=11,IF($N$4=1,12,$N$4-1),$N$4),"00")&"/"&TEXT($N5,"00")),"aaa"),"-")
O5の書式:標準または文字列にする

追記
日(N5〜N35(実際はN9〜N39))は固定値とした場合、以下のようにしても可。
O5:=TEXT(EDATE(DATE(1988+$M$4,$N$4,$N5),-1),"aaa")

O22:=TEXT(EDATE(DATE(1988+$M$4,$N$4,$N22),-1),"aaa")
O23:=IFERROR(TEXT(DATEVALUE(TEXT(IF($N$4=1,1988+$M$4-1,1988+$M$4),"0000")&"/"&TEXT(IF($N$4=1,12,$N$4-1),"00")&"/"&TEXT($N23,"00")),"aaa"),"-")
O24:=IFERROR(TEXT(DATEVALUE(TEXT(IF($N$4=1,1988+$M$4-1,1988+$M$4),"0000")&"/"&TEXT(IF($N$4=1,12,$N$4-1),"00")&"/"&TEXT($N24,"00")),"aaa"),"-")
O25:=IFERROR(TEXT(DATEVALUE(TEXT(IF($N$4=1,1988+$M$4-1,1988+$M$4),"0000")&"/"&TEXT(IF($N$4=1,12,$N$4-1),"00")&"/"&TEXT($N25,"00")),"aaa"),"-")
O26:=TEXT(DATE(1988+$M$4,$N$4,$N26),"aaa")

O35:=TEXT(DATE(1988+$M$4,$N$4,$N35),"aaa")
O5〜O35の書式:標準または文字列にする

▲このページのトップに戻る
512917削除o6asan 2013/12/16-18:52

記事番号512914へのコメント
投稿者によって消されました。

A1.本ページは参考になりましたか? 又はアドバイスがありますか?
解決 参考になった 参考にならなかった アドバイスする

A2.何度目の訪問ですか?
初めて来た   数度目(2〜4) 5回以上来ている   管理人:

A3.何か一言どうぞ(アドレスは書くことができません)

A4.アドレスがあればどうぞ(1つまで)


↑↑↑↑よろしければ押してください↑↑↑↑

何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり

参考回数投稿日時何か一言