ラベル day関数 の投稿を表示しています。 すべての投稿を表示
ラベル day関数 の投稿を表示しています。 すべての投稿を表示

5/23/2025

Excel。日割り計算を手早く求めたい【Daily rate】

Excel。日割り計算を手早く求めたい

<DAY+EOMONTH関数>

月の途中で解約した時に、解約日までの日割りした料金を支払うことがあります。


この日割りを手早くしたいのですが、どのようにしたらいいのでしょうか。


日割り計算は、簡単そうに見えて、ちょっと複雑です。


解約日までの日数を月の日数で割る必要があります。


つまり、4月だったら30日。

5月だったら31日という月の日数を求める必要があります。


では、次の表で日割り計算をしてみました。

日割り計算を手早く求めたい
 

C2に設定した数式は、

=A2*DAY(B2)/DAY(EOMONTH(B2,0))

これで、日割りを求めることができました。


なお、求めた値に小数点の端数がでますので、ROUND関数をつかってもいいです。


今回は、三桁区切りのカンマを設定して、小数点以下を四捨五入しております。


この数式を説明します。


DAY(B2)は、日を求めます。4/1ならば、1です。

この値を、DAY(EOMONTH(B2,0))で割ります。

DAY(EOMONTH(B2,0))は、何をしているのかというと、当月の月末日を求めています。


月末日を求めるのがEOMONTH関数です。

2つ目の引数を「0(ゼロ)」にすることで、当月の月末日を求めることができます。


EOMONTH(B2,0) で30と求めることができます。

=10000*1/30

で、333と日割りを求めることができたというわけです。

10/20/2023

Excel。10日締め翌10日払いの日が、土日祝日なら前営業日にするにはどうするの【before the weekend】

Excel。10日締め翌10日払いの日が、土日祝日なら前営業日にするにはどうするの

<WORKDAY+EOMONTH+IF+DAY関数>

支払予定日が、土日祝日だと、だいたい、前営業日に支払いをすることになるわけです。


その前営業日を算出するには、どのように関数を組み合わせたたらいいのでしょうか。


次のケースをつかって説明します。

土日祝日なら前営業日

結論というか、対応した数式をまず、紹介すると、

=WORKDAY(EOMONTH(A6,IF(DAY(A6)<=10,0,1))+11,-1,$E$2:$E$3)

という数式をつくることで、土日祝日ならば、前営業日を算出することができます。


A2の2023/10/3は、10日締めなので、翌月の10日が支払日です。

B2のように2023/11/10が支払日となります。


B2に設定した数式は、

=EOMONTH(A2,IF(DAY(A2)<=10,0,1))+10


この式がベースとなっていきます。


EOMONTH関数は、月末日を算出する関数です。

1番目の引数は、「開始日」なので、A2を設定します。

これで、2023/10/31が月末日です。


2番目の引数は、「月」です。

10日締めなので、当月なのか、翌月の月末なのかという月を算出させる必要があります。

IF(DAY(A6)<=10,0,1))


IF関数とDAY関数をつかって、10日以前なのどうかを判断させています。

10日以前ならば「0」。

そうでなければ「1」とすることで、当月末なのか、翌月末なのかを算出できます。


その日付に「+10」すれば、10日払いの日付を算出することができるというわけです。

もし、25日払いならば、「+25」とすればいいわけです。


だから、EDATE関数ではなくて、EOMONTH関数をつかったというわけです。


さて、算出した日付が、平日ならばいいのですが、土日祝日だった場合、金融機関がお休みなので、前営業日にしたいわけです。


そこで、土日祝日を除くことができるWORKDAY関数をつかって、先程のEOMONTH関数をネストします。

=WORKDAY(EOMONTH(A6,IF(DAY(A6)<=10,0,1))+11,-1,$E$2:$E$3)


WORKDAY関数の最初の引数は、「開始日」です。

これは、先程のEOMONTH関数で算出した数式を設定します。


ただし、先程、10日払いだから「+10」としましたが、前営業日にしたいので、ワザと1日多い「+11」にします。


2つ目の引数は、「日数」なので、これを「-1」と設定することで、前営業日を算出することができます。


この「+1」と「-1」の考え方ですが、前営業日にしたいので「-1」したいわけです。


土曜日の場合は、「-1」すれば金曜日なので、問題はないのですが、金曜日など平日の場合は、その日でいいのにもかかわらず、「-1」されてしまい、前日が支払日として算出されます。

そのため、わざと「+11」と一日多くして、「-1」させるという方法をつかっております。


最後3つ目の引数は、祝日のカレンダーを用意しておき、その日付にも対応するようにしています。


土日祝日が絡んだ場合、前営業日を算出する方法をご紹介しました。

3/16/2023

Excel。DAY関数は日付から日を算出することができます。【DAY】

Excel。DAY関数は日付から日を算出することができます。

<関数辞典:DAY関数>

DAY関数

読み方: デイ  

分類: 日付時刻 

DAY関数

DAY(シリアル値)

日付から日を算出する

1/02/2023

Excel。IF関数もつかわずに、手早く締め日から支払日を算出したい。【Closing date】

Excel。IF関数もつかわずに、手早く締め日から支払日を算出したい。

<DATE・YEAR・MONTH・DAY関数>

締め日と支払日。なかなかアレコレ考えて算出する必要があるので面倒だったりします。


締め日と支払日の日にちだけを入力するだけで、支払日を算出できるようにしていきます。


今回は、10日締めの翌20日払いのケースで、紹介していきますが、土日祝日だったら、それをよけるようにするというのは、除いています。


A列には、購入た日が入力されています。

E2には、10日締めなので、「10」と入力しています。

E3には、翌月20日払いなので、「20」と入力しています。


B列の支払日に数式を設定します。

=DATE(YEAR(A2),MONTH(A2)+1+(DAY(A2)>$E$2),$E$3)


締め日が10日より前だから、あとだからといったことを判断させるためのIF関数は使用していません。


20日締めの翌25日払いとかでもE2とE3を変更すれば対応できる数式です。


この数式を説明していきます。


DATE関数は、日付を算出する関数ですね。引数は、年・月・日を設定する必要があります。


引数の年は、YEAR関数を使用して算出します。


引数の月は、MONTH関数を使用することで「月」の数値を算出します。

A2の場合は「7」と算出されます。


そしてこの数式のポイントになるが、「+1+(DAY(A2)>$E$2」。


翌月の払いなので「+1」するのはイメージしやすいと思いますが、7月29日は8月10日に締めて、翌月である「9月」に支払が発生しますので、さらに「+1」する必要があります。


そこで「+(DAY(A2)>$E$2」で判断させています。


「(DAY(A2)>$E$2」のDAY関数は日付を抽出する関数なのでA2の日にちですから「29」と算出されます。


その値がE2である「20」より大きいという条件が成立しているのか、成立していないのかを判断させています。


「29>20」なので、成立しているので「TRUE」という結果になります。


Excelでは、「TRUE」が「1」で「FALSE」が「0」と設定されていますので、さらに「+1」されて、「9」という数値が算出されます。


これにより、月を「9月」とすることができました。


最後の引数の日ですが、20日なので、「E3」を設定します。


TRUEが「1」でFALSEが「0」というのを今まで使用していた数式に組み合わせてみると意外な発見があるかもしれませんね。

9/30/2022

Excel。日付から「日」だけを求めるなら、DAY関数をつかいます。【DAY】

Excel。日付から「日」だけを求めるなら、DAY関数をつかいます。

<DAY関数>

日付関係の関数は、とても簡単な関数が多い印象を受けます。

例えば、日付から、「日」だけを算出するならば、DAY関数ですね。


A1に日付を入力しました。


B2に、

=DAY(A1)

というDAY関数の数式を設定するだけで、日にちの15を算出してくれます。


なお、DAY関数の引数は「シリアル値」となっていますので、数字をダイレクトに設定することも出来ます。

5/15/2022

Excel。手早く20日締め翌月末払いの日程表をつくりたい【payment】

Excel。手早く20日締め翌月末払いの日程表をつくりたい

<DATE・EDATE・DAY・YEAE・MONTH関数>

Excelの日付計算は、頭の中で考えるように、スムーズにいかないところがあります。


たとえば、次のような、20日締め翌月末払いの日程表をつくるとします。


A列に仕入日を入力すると、締め日と支払日が表示されるように数式を設定するわけですが、手早く作りたいわけです。


B列の締め日は、20日締めなので、20日より前ならば、同月20日ですが、21日以降ならば、翌月20日で表示したいわけです。


なお、今回は、土日祝日は考慮しておりません。


さて、20日より前とか後となれば、IF関数をつかって算出させればいいように思います。


B4にIF関数をつかった数式を設定するとすれば、

=IF(DAY(A4)<=20,DATE(YEAR(A4),MONTH(A4),20),DATE(YEAR(A4),MONTH(A4)+1,20))

確かに間違いではないのですが、当然長くなります。

わかりやすい反面、可読性が悪化します。


そこで、B4に次のような数式でも算出することができます。

=DATE(YEAR(A4),MONTH(EDATE(A4-20,1)),20)


数式がコンパクトになったことで、可読性が向上していますね。


それに、IF関数をつかわないで、算出しています。


締め日の着目点は、「20日前なのか後なのか」ということです。


そこで、MONTH関数の引数を確認します。


MONTH(EDATE(A4-20,1))

MONTH関数は、月を算出する関数です。


EDATEは、月ちがいの同日を算出する関数です。

仕入日から20減算した日付をつかい、EDATE関数で算出された月に「+1」した数値を月として、算出しています。


ケースとして、2022/4/21ならば、20日減算すると2022/4/1なので、月は、4+1で5と算出されます。


2022/5/20が締め日となり、2022/4/20ならば、20日減算すると、2022/3/31なので、月は、3+1で4と算出されます。


よって、2022/4/20が締め日と算出することができるというわけです。


このようなことから、IF関数をつかわないで、算出することができるというわけです。


支払日の数式は、IF関数で算出しても、締め日と同じ方法で算出しても、可動性に変わりは、あまりありません。


C4の数式は、

IF関数ならば、

=IF(DAY(A4)<=20,EOMONTH(A4,1),EOMONTH(A4,2))


EDATE関数ならば、

=DATE(YEAR(A4),MONTH(EDATE(A4-20,3)),1)-1


関数の説明をします。

=IF(DAY(A4)<=20,EOMONTH(A4,1),EOMONTH(A4,2))


この数式で使用している、EOMONTH関数は、月末日を算出する関数です。


20日以前ならば、一か月後の月末を算出し、それ以外は、二か月後の月末を算出することができます。


=DATE(YEAR(A4),MONTH(EDATE(A4-20,3)),1)-1

MONTH関数は、先程と同じで、20日減算した日の、同日の3か月後の月を算出しています。


2022/4/21のケースだと、20日減算するので、2022/4/1で、この同日の3か月後ですから、MONTH関数で算出された月は、「7」。

DATE関数で算出されるのが、2022/7/1。

この日から「-1」することで、前月末日。

すなわち、翌月末日を算出することができるので、2022/6/30と算出することができるわけです。


このように、Excelには、様々な日付の関数が用意されいるので、色々組み合わせてみると数式を改善することができるかもしれませんね。

10/12/2019

Excel関数辞典 VOL.19。DAVERAGE関数~DCOUNTA関数

Excel関数辞典 VOL.19。DAVERAGE関数~DCOUNTA関数

<Excel関数>

今回は、DAVERAGE関数~DCOUNTA関数までをご紹介しております。

データベース系の関数を多く紹介しています。

DAVERAGE関数
ディーアベレージ
条件を満たすレコードの平均を算出
DAVERAGE(データベース,フィールド,条件)


DAY関数
デイ
日付から日を算出する
DAY(シリアル値)


DAYS関数
デイズ
2つの日付の間の日数を算出
DAYS(終了日,開始日)


DAYS360関数
デイズ360
1年を360日として2つの日付の間の日数を算出
DAYS360(開始日,終了日[,方式])


DB関数
ディービー
減価償却を旧定率法で算出
depreciation, fixed-Declining Balance methodの略
DB(取得価額,残存価額,耐用年数,期[,月])


DCOUNT関数
ディーカウント
条件を満たすレコードの数値の個数を算出
DCOUNT(データベース,フィールド,条件)


DCOUNTA関数
ディーカウントエー
条件を満たすレコードの空白以外のセルの個数を算出
DCOUNTA(データベース,フィールド,条件)