本帖最后由 xuying0936 于 2011-3-30 21:15 编辑
下面一个公式是Excel2007里的,请教如何改成试用2003版本的公式?可以改吗?谢谢各位老师了。 {=平衡表!E8+SUM(SUMIFS(会计分录!$H:$H,会计分录!$A:$A,ROW(INDIRECT("1:"&MONTH($F$2))),会计分录!$F:$F,平衡表!C8))} 其中会计分录H列是金额;分计分录A列是月份,F2单元格是一个日期;会计分录F列对应平衡表C8都是科目。 下面这个是我自己试着改的,不过好像不太成功,请老师指教。 {=平衡表!E8+SUM(SUMPRODUCT((会计分录!$H6:$H100)*(会计分录!$A6:$A100=ROW(INDIRECT("1:"&MONTH($F$2))))*(会计分录!$F6:$F100=平衡表!C8)))}
哦,主要问题是,ROW()参数在两个公式里所代表的值虽然一样,但运算方式不一样,所以不能让A6:A100跟Row()直接相比较,个数不同时,就会有#N/A,
所以,要加一个Transpose()在Row参数的外面,如: - =平衡表!E8+SUM(SUMPRODUCT((会计分录!$H6:$H100)*(会计分录!$A6:$A100=TRANSPOSE(ROW(INDIRECT("1:"&MONTH($F$2)))))*(会计分录!$F6:$F100=平衡表!C8)))
复制代码但是,如果你要把表格内的SUMIFS全部都这样转化的话,那工程会相当大,转换后运算也会很慢的……
|