私はExcelで勤務表を作って、一ヶ月一回だけですが、月が変わると日数の修正する手作業が飽きました。
日数の計算
っと、関数 EOMONTH(開始日,月) を使って見よう。
Excelの例を見ると、簡単で説明しよう
日数の計算
っと、関数 EOMONTH(開始日,月) を使って見よう。
Excelの例を見ると、簡単で説明しよう
EOMONTH(A1,1)はA1の日付から1ケ月後の最終日を調べる
EOMONTH(A1,0)はA1の今月の最終日を調べる
EOMONTH(A1,-1)はA1の日付から1ケ月前の最終日を調べる
まず、A1に計算したいの月の1日の日付を入力する。
例:2015/2/1
A2に「=A1+1」を入力して、Enterキーを押すと、A2は「2015/2/2」となります。
A3に「=A2+1」を入力して、Enterキーを押すと、A3は「2015/2/3」となります。
A4に「=A3+1」を入力して、Enterキーを押すと、A4は「2015/2/3」となります。
...
A4に「=A3+1」を入力して、Enterキーを押すと、A4は「2015/2/3」となります。
...
このようで、早速28日までしよう。
どころで2015年の2月は28日で大丈夫ですが、29日の年はどうだ?
直接、A29に「=A28+1」を入力するのはダメだね。でもやっぱり2月29日がある年も自動判断にしたいです。
ここからはEOMONTH(開始日,月)の出番だ。
A29に「=IF(A28=EOMONTH(A1,0),"",A28+1」を入力する。
※EOMONTH(A1,0)の値は2月の最終日となり、A28はもし2月の最終日なら、TUREとなって、「""」空白を表示します。最終日じゃないなら、1日をプラスします。
試しのため、A1に2月29日ある年の2月1日を入力して見なさい。
2月以外のは30日や31日やですから、「=A29+1」と「=A30+1」はどうやって無理です。
A30に「=IF(A29=EOMONTH(A1,0),"",A29+1)」を入力してみると、A29は値がないのため、A30はエラーを表示します。ですから、「=IF(AND(A29<>"",A29<>EOMONTH(A1,0)),A29+1,"")」に修正する。
A30に「=IF(A29=EOMONTH(A1,0),"",A29+1)」を入力してみると、A29は値がないのため、A30はエラーを表示します。ですから、「=IF(AND(A29<>"",A29<>EOMONTH(A1,0)),A29+1,"")」に修正する。
※関数ORを使って、A29は空白または最終日の場合、A30も空白です。
A31で「=IF(AND(A30<>"",A30=EOMONTH(A1,0)),"",A30+1)」を入力します。
そして、A1の日付を変わってみると、月が変わると、日数も自動で変わります。
曜日の表示
月曜日、火曜日…日曜日で一々入力するなんでやっぱり嫌です。
次は曜日を自動表示するようにします。
A31で「=IF(AND(A30<>"",A30=EOMONTH(A1,0)),"",A30+1)」を入力します。
そして、A1の日付を変わってみると、月が変わると、日数も自動で変わります。
曜日の表示
月曜日、火曜日…日曜日で一々入力するなんでやっぱり嫌です。
次は曜日を自動表示するようにします。
意外と簡単の関数で実現できます。それはTEXT(指定した値,表示形式)です。
例え、「=TEXT(A1, "$0.00")」の場合、$42036.00と表示します。
でも欲しいのは曜日ですね。
B1に「=TEXT(A1, "aaa")」を入力して見よう。Bingo!出ました。
このようで、私は最初日だけ入力します、日付は全部Excelにお任せ。
No comments:
Post a Comment