我正在尋找一種方法讓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