sumif中的两个条件可不可以是两列

来源:百度知道 编辑:UC知道 时间:2024/07/02 06:46:11
如下:
A B C
XX村 1 500
XX村 1 700
YY村 2 300
YY村 3 4000
XX村 1 600
CC村 2 50
我要统计XX村和1同时满足的C列和金额合计公式怎么写,急,谢谢!!!!

我这两天恰好在想办法解决这个问题
目前是通过自定义函数解决的
在工具—宏—visual basic编辑器中 选则插入—模块

粘入下面语句
Public Function Sumiftwo(r1 As Range, r2 As Range, c1 As String, c2 As String, sr As Range) As Double

Dim i As Integer

Dim srt As Double

srt = 0

For i = 2 To r1.Rows.Count

If r1.Cells(i, 1) = c1 And r2.Cells(i, 1) = c2 Then srt = srt + sr.Cells(i, 1)

Next i

Sumiftwo = srt

End Function

这里的函数名sumiftwo是我自己定义的,你也可以用其他你喜欢的名字。

但是用的时候会有下列问题(我又用了offset语句和countif语句解决,下面会详细讲到。。。MS被我搞得很麻烦,但是又想不到简单的方法。。。)

问题就是,sumiftwo(D1:D30,E1:E30,"XX村","YY村",J1:J30)是可以的,但是sumiftwo(D:D,E:E,"XX村","YY村",J:J)就不可以。。。 (当数据源不固定时显然用后一个公式更方便)

解决方法是:

sumiftwo(D1:OFFSET($D$1,COUNTIF(D:D,"*")-1,0,1,1),D1:OFFSET($D$1,COUNTIF(D:D,"*")-1,0,1,1),"XX村","YY村",J1:OFFSET($J$1,COUNT(J:J)-1,0,1,1))