excel指定条件统计函数,碰到难题,没多少分,只求智慧,谢谢!
发布网友
发布时间:2022-05-21 08:09
我来回答
共3个回答
热心网友
时间:2023-10-20 05:04
其实很简单!
按你的图举个例子:
方法1:
=SUMPRODUCT((B2:B9999=G5)*(C2:C9999))
方法2:
用辅助列E,
E2中输入=IF(ISERROR(VLOOKUP(G5,B2:C2,2,FALSE)),0,VLOOKUP(G5,B2:C2,2,FALSE))
E3中输入=IF(ISERROR(VLOOKUP(G5,B3:C3,2,FALSE)),0,VLOOKUP(G5,B3:C3,2,FALSE))
E4中输入=IF(ISERROR(VLOOKUP(G5,B4:C4,2,FALSE)),0,VLOOKUP(G5,B4:C4,2,FALSE))
......
H5 输入 =SUM(E:E)
H5中显示的结果就会根据G5中输入的月份来统计。
这里要注意两点:
1、vlookup中的false一定要写,不然就会取近似值,那样会出问题。
2、ISERROR的作用就是用来检查vlookup是否出错。
3、如果vlookup出错(即所输入的月份在范围内找不到),就靠if函数来置0.
再用其他辅助列同样方式处理 姓名、组别等
这个问题我回答你两次了
热心网友
时间:2023-10-20 05:05
最好是用编程
代码:
Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print InStr("$G$5$G$6$G$7", Target.Address)
Dim iRow, iRowCount, iTargetRow As Integer
Dim lSum As Long
Dim sSearchCol As String
iRow = 2
iRowCount = 13
lSum = 0
If InStr("$G$5$G$6$G$7", Target.Address) < 1 Then Exit Sub
Select Case Right(Target.Address, 1)
Case "5"
sSearchCol = "B"
iTargetRow = 5
Case "6"
sSearchCol = "A"
iTargetRow = 6
Case "7"
sSearchCol = "D"
iTargetRow = 7
End Select
Do While iRow <= iRowCount And Not IsNull(Target.Value) And Target.Value <> ""
If Range(sSearchCol & iRow).Value = Target.Value Then
lSum = lSum + Range("C" & iRow).Value
End If
iRow = iRow + 1
Loop
Range("H" & iTargetRow).Value = lSum
End Sub
热心网友
时间:2023-10-20 05:05
=SUMPRODUCT((B:B=G5)*C:C)
=SUMPRODUCT((A:A=G6)*C:C)
=SUMPRODUCT((D:D=G7)*C:C)追问你好,算不出来呀,结果显示为“#VALUE!”
追答把B:B改成B2:B100
同理改A C D