計算式プラグインを使って、金額を月で案分計算してみます。
概要
日付1と日付2と金額を入力したら月ごとの日数で金額を案分
操作例
計算式プラグインの設定
- 月数分のテーブル行を作成
- 月毎の日数を計算
- 月毎の日数で金額を案分
- 金額は、切り捨て
- 最後の月は、余った分
// 月数
IF(AND(日付1,日付2,日付1<=日付2),
DATE_DIFF(
DATE_STARTOF(日付1,"month"),
DATE_STARTOF(日付2,"month"),
"months"
)+1,
0
)
// 日数
IF(AND(日付1, 日付2),
DATE_DIFF(日付1, 日付2, "days")+1
)
// 月日数の合計
SUM(月の日数)
// 月金額の合計
SUM(月金額)
// テーブル
IF(月数>0,月数,1)
// No
ROWNO(テーブル)+1
// 年月
IF(日数>0,
DATE_ADD(日付1,ROWNO(年月),"month","YYYY-MM-01")
)
// 月の日数
IFS(
DATE_FORMAT(日付1,"YYYY-MM")=DATE_FORMAT(日付2,"YYYY-MM"),
DATE_DIFF(日付1, 日付2, "days")+1,
DATE_FORMAT(年月,"YYYY-MM")=DATE_FORMAT(日付1,"YYYY-MM"),
DATE_ENDOF(年月, "month","DD")-DATE_FORMAT(日付1,"DD")+1,
DATE_FORMAT(年月,"YYYY-MM")=DATE_FORMAT(日付2,"YYYY-MM"),
DATE_DIFF(年月, 日付2, "days")+1,
DATE_ENDOF(年月, "month","DD")
)
// 月金額
LET(cno,ROWNO(テーブル),
IF(DATE_FORMAT(年月,"YYYY-MM")=DATE_FORMAT(日付2,"YYYY-MM"),
金額-SUMIF(ROWNO(テーブル)<cno,月金額),
ROUNDDOWN(金額*月の日数/日数)
)
)