EXCEL公式,请高手指点

来源:百度知道 编辑:UC知道 时间:2024/05/26 08:23:06
A列 B列 C列 D列 E列
2005年1月 1月份 294601 63952 358553
2005年2月 2月份 0
2005年3月 3月份 0
2005年4月 4月份 0
2005年5月 5月份 0
2005年6月 6月份 0
2005年7月 7月份 0
2005年8月 8月份 0
2005年9月 9月份 0
2005年10月 10月份 0
2005年11月 11月份 0
2005年12月 12月份 0
2006年1月 1月份 308958 76168 385126
2006年2月 2月份 249335 61805 311140
2006年3月 3月份 327547 100441 427988
2006年4月 4月份 392417 92729 485146
2006年5月 5月份 439778 93014 532792
2006年6月 6月份 377168 75324 452492
2006年7月 7月份 462066 77454 539520
2006年8月 8月份 296458 53963 350421
2006年9月 9月份 330927 61433 392360
2006年10月 10月份 236482 44584 281066
2006年11月 11月份 166285 38327 204612
2006年12月 12月份 257699 50110 307809
2007年1月 1月份 362743 89813 452556
2007年2月 2月份 375467 101682 477149
2007年3月 3月份 479322 130004 609326
2007年4月 4月份 565805 126328 692133
2007年5月 5月份 570452 122008 692460
2007年6月 6月份 561477 107869 669346
2007年

1.如果你的月份不会重复且按年月顺序排列 F1的单元格格式要求与A列相同
2.F1输入公式:
=SUM(INDIRECT(ADDRESS(MATCH(F1,A:A)-30,5)):INDIRECT(ADDRESS(MATCH(F1,A:A)-1,5)))
(上面公式不含输入的那个月份数据求和)
3.如果你上推的意思是含输入年月那行将30换为31,后面减1去掉
即:=SUM(INDIRECT(ADDRESS(MATCH(F1,A:A)-31,5)):INDIRECT(ADDRESS(MATCH(F1,A:A),5)))
4.如果输入年月前面年月已经不够30个月会报错,而又要对该年月前数据求和
输入公式:
=IF((MATCH(F1,A:A)-31)<=1,SUM(E1:INDIRECT(ADDRESS(MATCH(F1,A:A),5))),SUM(INDIRECT(ADDRESS(MATCH(F1,A:A)-31,5)):INDIRECT(ADDRESS(MATCH(F1,A:A),5))))
(此公式不为含输入年月那行的)

没有直接的公式,但你可以分开来做,先求个行的和,在求这一行列的和!就直接用求和公式就行了!

假设2009年12月份处在第100行,则计算公式为
=SUM(E100:E71)

是不是计算两个日期相差的月份啊?
G2输入=F2向下拖公式。
e2=(YEAR(G2)-YEAR(A2))*12+MONTH(G2)-MONTH(A2)

=SUMPRODUCT(((YEAR(F1)*12+MONTH(F1))-(YEAR(A1:A60)*12+MONTH(A1:A60))<=30)*(E1:E60))