前半なら1日・後半なら月末の日付に自動変換
某公的評価ソフトなどが採用している『前半なら1日・後半なら月末の日付に自動変換』をエクセルで行って見たいと思います。
この前提として、どこで前半・後半を分けるかですが、ここはある程度割り切って、15日までが前半・16日以降が後半とします。
そうすると、
・DAY関数で『日』の値を取得したうえで、15日基準でIF分岐にかけ、
・16日以降なら前回の『当月末の日付』を
・15日以前なら前々回の『当月1日の日付』を
入力すれば良いことになります。
ちょっと力技っぽい処理ではありますが、以下の通りです。
この処理で、2月が気になるなら、もう一段2月のみ取り出すIF分岐をかければ良いのですが...まあ、いいんじゃないでしょうか(笑)。
この前提として、どこで前半・後半を分けるかですが、ここはある程度割り切って、15日までが前半・16日以降が後半とします。
そうすると、
・DAY関数で『日』の値を取得したうえで、15日基準でIF分岐にかけ、
・16日以降なら前回の『当月末の日付』を
・15日以前なら前々回の『当月1日の日付』を
入力すれば良いことになります。
ちょっと力技っぽい処理ではありますが、以下の通りです。
この処理で、2月が気になるなら、もう一段2月のみ取り出すIF分岐をかければ良いのですが...まあ、いいんじゃないでしょうか(笑)。
その月の末日の値に自動変換
前回書かせていただいた、『その月の1日の値に自動変換』と同様の発想で、ある日付けをその月の末日に自動変換したい、という場合の方法です。
これには、前回の式(DATE関数等)を応用する方法と、EOMONTH関数を利用する方法があります。
【DATE関数を利用する方法】
『その月の1日の値に自動変換』で解説させていただいた通り、
=DATE(YEAR(引用セル),MONTH(引用セル),1)
で、同月1日の値が返されます。
これをちょっと応用して、
=DATE(YEAR(引用セル),MONTH(引用セル)+1,1)-1
とすると、次月1日の1日前=当月末日になります。
「12月のとき大丈夫かな?」と心配になるかもしれませんが、以下の通りうまく補正してくれます。
【EOMONTH関数を利用する方法】
EOMONTH関数の基本式は、EOMONTH関数(起算日,○か月後)です。
ですから、当月末なら=EOMONTH関数(起算日,0)になります。
なお、この関数は、、エクセル2007であれば初期設定状態でも使えますが、エクセル2003の場合『ツール』-『アドイン』の中の『分析ツール』をオンにしておく必要があります。
その意味では、前者の方が汎用性があって良いかもしれませんね。
これには、前回の式(DATE関数等)を応用する方法と、EOMONTH関数を利用する方法があります。
【DATE関数を利用する方法】
『その月の1日の値に自動変換』で解説させていただいた通り、
=DATE(YEAR(引用セル),MONTH(引用セル),1)
で、同月1日の値が返されます。
これをちょっと応用して、
=DATE(YEAR(引用セル),MONTH(引用セル)+1,1)-1
とすると、次月1日の1日前=当月末日になります。
「12月のとき大丈夫かな?」と心配になるかもしれませんが、以下の通りうまく補正してくれます。
【EOMONTH関数を利用する方法】
EOMONTH関数の基本式は、EOMONTH関数(起算日,○か月後)です。
ですから、当月末なら=EOMONTH関数(起算日,0)になります。
なお、この関数は、、エクセル2007であれば初期設定状態でも使えますが、エクセル2003の場合『ツール』-『アドイン』の中の『分析ツール』をオンにしておく必要があります。
その意味では、前者の方が汎用性があって良いかもしれませんね。
その月の1日の値に自動変換
エクセルで比準表などを作る際に、ある日付をその月の1日に自動変換したい、という場合があるかと思います。
これについては、以前とりあげたDATE関数と、YEAR関数・MONTH関数を組み合わせることで実現可能です。
【YEAR関数・MONTH関数の働き】
YEAR関数・MONTH関数は、各々ある日付の『年』部分・『月』部分の数値を返してくれる関数です。
【その月の1日に自動変換】
YEAR関数・MONTH関数で、『年』・『月』の数値が出ました。
あとは『日』の数値があれば、DATE関数でくっつければ良いわけですが、これはもちろん1。
ですから、=DATE(YEAR(引用セル),MONTH(引用セル),1)で目的達成です。
これについては、以前とりあげたDATE関数と、YEAR関数・MONTH関数を組み合わせることで実現可能です。
【YEAR関数・MONTH関数の働き】
YEAR関数・MONTH関数は、各々ある日付の『年』部分・『月』部分の数値を返してくれる関数です。
【その月の1日に自動変換】
YEAR関数・MONTH関数で、『年』・『月』の数値が出ました。
あとは『日』の数値があれば、DATE関数でくっつければ良いわけですが、これはもちろん1。
ですから、=DATE(YEAR(引用セル),MONTH(引用セル),1)で目的達成です。



