VBA函数能够通过单元格进行search?

背后的故事

在我的工作中,我们使用台历来logging随机发生的大量细节:每天的小时数,发送的types和发送的数量等等。为了帮助我们填写一些表格,我的老板决定要他创build一个月份的电子表格,并尽可能保持最新的一天。 他在这个月开始之前去休假了,所以我一直在接pipe他的职责。 我注意到的是,他硬连线计算总计(每个人的总小时数,发送的总报告等),所以当我改变从1月到2月的date时,我们留下了一些导致到3月份的剩余时间。 我删除他们,然后公式都扔#REF! 错误,因为它。

数据如何设置很简单:

AB 2.50 CD 3.50 EF 8.00 ...ETC... 

AB,CD,EF在一列中,值在相邻列中。

问题

我试图让这个工作,没有运气,所以我认为这可能是不可能的,但我想我会问一个比我更了解这个问题的人:在我做的一个函数我有它接受一个string参数进行search,如果find它,它将移动到相邻的单元格,并将该值添加到正在运行的总数中。 然后它在最后返回这个数字,所以对这个函数的调用将会类似

 =getTotals("AB") ' this would display whatever the total for AB is 

但是,当我尝试这一切,我得到了一个#VALUE! 单元格中的错误。

有没有什么办法可以让我按照自己想要的方式工作,而不需要使用完整的macros?

function

我得到了这个function,我想怎么做

 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”)

SUMIF应该给你你需要的东西:

 =SUMIF(A1:A10,"AB",B1:B10) 

假设您的“AB”值在列A中,第1-10行和数字值在列B中,第1-10行。

SUMIF的第一个参数是要检查的范围,第二个参数是必须符合的条件(search条件),第三个[可选]参数是从中获取要相加的值的相应范围。