我正在寻找一种方法让Excel找到一个实例的所有值,例如某个范围内的“ABC”,然后返回并求和相应的值。Excel - 查找选区内的所有值
我一直在寻找这样做的VBA功能,但有没有更简单的方法?
谢谢!
我正在寻找一种方法让Excel找到一个实例的所有值,例如某个范围内的“ABC”,然后返回并求和相应的值。Excel - 查找选区内的所有值
我一直在寻找这样做的VBA功能,但有没有更简单的方法?
谢谢!
RobertMS是正确的,SUMIF函数将工作:
ABC | 1
DEF | 1
ABC | 3
Sum of ABC | =SUMIF(A1:A3,"ABC",B1:B3)
如果你需要一个VBA函数找到一个范围内的所有值,那么像这样将有助于:
Public Function FindAllInRange(Source As Range, Value As String) As Collection
Dim Result As New Collection
Dim CurCell As Range
Dim ColIndex As Long
Dim RowIndex As Long
Dim Address As String
' Iterate through columns then rows
For ColIndex = 1 To Source.Columns.Count
For RowIndex = 1 To Source.Rows.Count
Set CurCell = Source(RowIndex, ColIndex)
' Match the value (adjust this to your needs)
If CurCell.Value = Value Then
Address = CurCell.Worksheet.Name & "!" & CurCell.Address
Debug.Print "Found match '" & Value & "' at: " & Address
Result.Add CurCell, Address
End If
Next RowIndex
Next ColIndex
Set FindAllInRange = Result
End Function
Public Sub TestFindAllInRange()
Dim Result As Collection
Set Result = FindAllInRange(Selection, "ABC")
Debug.Print "Found " & Result.Count & " cells"
End Sub
如果SUMIF适合您的需求,SUMIF就容易得多。如果您使用VBA函数,那么总结这些值仍有工作要做。获得结果集合的计数很容易,但您需要处理结果以进行求和。
感谢张贴的VBA功能!这很好。 :d – eunhealee 2012-03-07 19:14:04
你看过SUMIF函数吗?听起来这样会为你做伎俩。
他们最灵活的和可重复使用的解决办法是从您的数据:)创建数据透视表
你是什么意思“的相应值”?你的意思是你在A列中有一些值(例如ABC,DEF,GHI),并且想要求和列B中的值,但仅限于列A中的值为ABC的行? – assylias 2012-03-07 18:06:20
是: ABC 1 DEF 3 ABC 3 我希望值4 – eunhealee 2012-03-07 18:17:31