在我的工作中,我们使用桌面日历来跟踪发生的大量随机细节:每个人的每日时间,发送的报告类型和数量等。为了帮助我们填写一些表格,我的老板决定他想创建一个月的电子表格,并尽可能保持最新状态。他在本月开始前去度假,所以我一直在接替他的职责。我注意到的一点是他硬连线计算总计(每个人的总小时数,发送的总报告数等),所以当我改变1月到2月的日期时,我们有一些剩余的导致3月。我删除了它们然后公式都抛出#REF!错误因为它。
如何设置数据很简单:
AB 2.50
CD 3.50
EF 8.00
...ETC...
AB,CD,EF在一列中,值在相邻列中。
我试着让它运转起来,没有运气,所以我想这可能是不可能的,但我想我会问一群比这更了解这个主题的人:我做的一个功能我接受一个字符串参数来搜索,如果找到它,它会移动到相邻的单元格并将该值添加到运行总计中。然后它会在结尾处返回该数字,因此对此函数的调用类似于
=getTotals("AB") ' this would display whatever the total for AB is
但是当我尝试这一切时,我得到的只是一个#VALUE!单元格中的错误。
有没有什么方法可以让我按照我想要的方式工作,而不使用完整的宏?
我让这个功能起作用,我想要
Function getTotal(rng As Range, search As String) As Double
Dim r As Range
getTotal = 0
For Each r In rng
If r.Value = search Then
getTotal = getTotal + r.Offset(0, 1).Value
End If
Next
End Function
如此调用:= getTotal(A1:D2,“AD”)
答案 0 :(得分:4)
SUMIF
可以满足您的需求:
=SUMIF(A1:A10,"AB",B1:B10)
假设你的' AB'值位于A列,第1-10行,数值位于B列,第1-10行。
SUMIF
中的第一个参数是要检查的范围,第二个参数是必须满足的条件(搜索条件),第3个[可选]参数是从中获取值的相应范围总结。