Excel 将加权销售收入分配到报告日期
我正试图找到一种方法,将收入分配到特定日期,并对数字进行加权。因此,如果一天在我的两个报告日之间,我希望它根据报告日之间的差异进行分配。例如,如果我有报告日期Excel 将加权销售收入分配到报告日期,excel,vba,Excel,Vba,我正试图找到一种方法,将收入分配到特定日期,并对数字进行加权。因此,如果一天在我的两个报告日之间,我希望它根据报告日之间的差异进行分配。例如,如果我有报告日期 20/11/2017 30/11/2017 10/12/2017 2017年12月20日 销售日期和收入 Sales dates Volumes 22/11/2017 600,000,000 12/12/2017 -100,000,000 13/12/2017 -141,400,000 20/12/2017 -100,962,0
20/11/2017
30/11/2017
10/12/2017
2017年12月20日
销售日期和收入
Sales dates Volumes
22/11/2017 600,000,000
12/12/2017 -100,000,000
13/12/2017 -141,400,000
20/12/2017 -100,962,000
我希望2017年11月22日<代码>的销售额将于2017年11月20日<代码>和2017年11月30日<代码>分别于2010年8月和2010年2月分配给<代码>等等,这样4笔销售额将分配给
Reporting dates
20/11/2017 480,000,000
30/11/2017 120,000,000
10/12/2017 -178,980,000
20/12/2017 -163,382,000
我还没有成功地找到任何解决方案,有人知道我是否错过了什么,或者有什么好的想法如何构建这样一个集合 好的,这个解决方案使用了很多helper列,因为我还没有时间将其全部浓缩。我相信这些公式可以改进,甚至可以变成一个单一的公式 第一步是找出你的收入应该分配的两个日期。
将原始数据放在单元格A1:B4中,此公式放在单元格C1:C4中,将返回较高的日期:
=DATE(YEAR($A1),MONTH($A1),CEILING(DAY($A1),10))
=DATE(YEAR($A1),MONTH($A1),FLOOR(DAY($A1),10))
而这个,放置在D1:D4中,将返回较低的日期:
=DATE(YEAR($A1),MONTH($A1),CEILING(DAY($A1),10))
=DATE(YEAR($A1),MONTH($A1),FLOOR(DAY($A1),10))
编辑:在花多一点时间清醒后,您可以分别用=天花板($A1,10)-1
和=地板($A1,10)-1
替换上述两个公式
接下来,我们将找到销售日期相对于上下日期的位置。在E1:E4中使用:
=(C1-A1)/10
=E1*$B1
而在F1:F4中:
=(A1-D1)/10
=SUM(K1:L1)
现在返回基于该分布的收入:在G1:G4中使用:
=(C1-A1)/10
=E1*$B1
H1:H4中的公式略有不同,因为100%的数字只能返回一次。2017年12月20日的收入将仅出现在H栏中
=IF(F1=0,B1,F1*$B1)
我已将报告日期放在范围J1:J4内;因此,2017年11月20日在J1,2017年11月30日在J2,等等。K1:K4中的公式为:
=SUMIF(C$1:C$4,$J1,$H$1:$H$4)
=SUMIF(D$1:D$4,$J1,$G$1:$G$4)
L1:L4中的公式为:
=SUMIF(C$1:C$4,$J1,$H$1:$H$4)
=SUMIF(D$1:D$4,$J1,$G$1:$G$4)
最后,返回分布的公式将前两个公式加在单元格中M1:M4:
=(A1-D1)/10
=SUM(K1:L1)
你可能想在你的问题中包含你正在使用的代码。我不明白你是如何得到2018年12月10日和2018年12月20日的数字的……你能更具体一点吗?也许你可以在这里添加更多的示例,以便我们更好地理解。到目前为止,我没有使用任何代码,只是显示了它是通过手动计算完成的。由于报告日期12月10日至12月20日之间还有10天,12月20日的日期将包括-100962,00的10月10日+100000,00的2/10+141400000的3/10 ian0411-这是一个打字错误,应该是2017年。谢谢Darren!非常感谢!