找回密码
 立即注册
搜索

自认为最精确的日期段核算公式,请大侠斧正

5
回复
889
查看
[复制链接]

1

主题

9

帖子

-2

幻币

初入江湖

Rank: 1

积分
5
2021-12-9 11:17:00 显示全部楼层 |阅读模式
在收取商管费、房租时,经常涉及起始日期、结束日期之间的时间段,费用收取问题。
比如:商管费每平方每月2元,租金每平方每月40元等。
收取时,难免各算法,难以服众。
没办法,采用扳手指的算法,将时间段划分为:
起始月的头日数+完整月数+结束月的尾巴日数,折算成对应月数。
比如:1月31日至3月1日,连续天数为30天,实际为一个月零2天
    1月31日至4月1日,实际为2个月零2天,这两天的权重还不一样。
废话不多说,直接上样板,注意,结果在W列。
请各位大侠,百忙之中,检查一下是否正确。谢谢

公式核算日期段.rar (7.83 KB, 下载次数: 149)
PPT学习论坛
回复

使用道具 举报

0

主题

3

帖子

-3

幻币

东方不败

积分
-3
2021-12-28 13:33:43 显示全部楼层
公式比较臭长。
=IF(AND(YEAR(B2)=YEAR(C2),MONTH(B2)=MONTH(C2)),(C2- B2+1)/DAY(EOMONTH(B2,0)),(EOMONTH(B2,0)- B2+1)/DAY(EOMONTH(B2,0)))+IF(AND(YEAR(B2)=YEAR(C2),MONTH(B2)=MONTH(C2)),0,DAY(C2)/DAY(EOMONTH(C2,0)))+IF(ISERROR(DATEDIF(EOMONTH(B2,0)+1, DATE(YEAR(C2),MONTH(C2),1),"m")),0,DATEDIF(EOMONTH(B2,0)+1, DATE(YEAR(C2),MONTH(C2),1),"m"))
PPT学习论坛
回复 支持 反对

使用道具 举报

3

主题

6

帖子

5

幻币

初入江湖

Rank: 1

积分
16
2022-1-31 02:48:48 显示全部楼层
1月31日至3月1日,连续天数为30天,实际为一个月零2天
    1月31日至4月1日,实际为2个月零2天,这两天的权重还不一样。
算出来的结果为:1.064516 月 和 2.065591 月
PPT学习论坛
回复 支持 反对

使用道具 举报

1

主题

6

帖子

2

幻币

初入江湖

Rank: 1

积分
10
2022-2-24 12:39:35 显示全部楼层
自定义函数,凑出来了!!!!!!!!!!!!!
Function rqd(ks, js) '开始日期,结束日期
'######################计算开比
If (Year(ks) = Year(js) And Month(ks) = Month(js)) Then         '开始日期和结束日期是同年同月
kb1 = (js - ks + 1)
kb2 = Day(DateSerial(Year(ks), Month(ks) + 1, 0))            '这一句的意思是找到当月最大的一天的数字
kb = kb1 / kb2                       '开比:开始段日数和开始当月日期数的比例
Else
kb1 = Day(ks)
kb2 = Day(DateSerial(Year(ks), Month(ks) + 1, 0))
kb1 = kb2 - kb1 + 1
kb = kb1 / kb2                     '开比:开始段日数和开始当月日期数的比例
End If
'######################计算结比
If (Year(ks) = Year(js) And Month(ks) = Month(js)) Then         '开始日期和结束日期是同年同月
  jb = 0
Else
  jb = Day(js) / Day(DateSerial(Year(js), Month(js) + 1, 0))       '结比:结束段日数和结束当月日期数的比例
End If
'####################计算中间的整月数目
If (Year(ks) = Year(js) And Month(ks) = Month(js)) Then
YS = 0
Else
AA = DateSerial(Year(ks), Month(ks) + 1, 0)    '开始月的尾巴===========》开始月下月的第一天的日子 DateSerial(Year(ks), Month(ks) + 1, 1)
BB = js - Day(js)         '结束月的头==============》结束月上月的最后一天的日子
YS = DateDiff("m", AA, BB)      '中段整月数,datedif(ks的尾巴日,结束的第一日)====  DATEDIF(EOMONTH(B2,0)+1, DATE(YEAR(C2),MONTH(C2),1),"m")
End If
rqd = YS + jb + kb
End Function
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

6

帖子

-2

幻币

初入江湖

Rank: 1

积分
2
2022-2-26 21:57:59 显示全部楼层
彻底终结了,按月收费和按天收费的争论,我可以自豪的说,我这是按日历牌收费的!
PPT学习论坛
回复 支持 反对

使用道具 举报

0

主题

4

帖子

-1

幻币

初入江湖

Rank: 1

积分
2
2022-3-9 19:13:32 显示全部楼层
准不准主要看规定吧,有了规定就好办,没有不准的公式,关键是规则没有漏洞
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册