我收到一組包含優惠券級別的航空公司稅務數據的數據,並且必須從YQ中分離可插入稅款並將轉換爲歐元和美元。在大約1100行VBA根據需要完成報告後,我必須完成總計並完成。給定範圍內任意單元格的總和匹配複雜條件
基本上,稅務數據可以將您在截圖@http://i.imgur.com/qnOWg.jpg中看到的內容重新排列,但規模要大得多。 我需要從數據中獲取每種可能的稅碼並且進行彙總,這就是我卡住的地方。如果數據是按列排序的,稅碼通過稅碼代碼就不會有太大問題,但是因爲它是根本不需要的東西,並且當優惠券沒有時會創建更多列某些稅:
YQ BE IT HB EX MJ VT
YQ BE DE RA
將成爲:
YQ BE IT HB EX MJ VT
YQ BE DE RA
第一更緊湊的觀點是優選的。
無論如何,我如何根據貨幣計算每種稅款的總和? 據我的理解,它是一個基於兩個條件的總和: 對於在範圍內的任何細胞:
使範圍A2的和任何細胞的:L12 machting條件: 「A_CELL.OFFSET (0,-1)= [稅碼]和THAT_SAME_CELL.OFFSET(0,1)= [貨幣]「
有人可以幫助我完成這件事?
預先感謝您。 乾杯!
更新:用於獲取VBA函數的結果需要:
Function SumOf(taxStr As String, curStr As String, wrkRange As Range) As Double
Dim taxSum As Double
Dim rngCell As Range
On Error GoTo SumOfError
taxSum = 0
'Set wrkRange = rangStr
For Each rngCell In wrkRange
If rngCell.Column > 1 And rngCell.Offset.Column < wrkRange.Columns.Count - 1 Then
If (rngCell.Offset(0, -1).Value = taxStr) And (rngCell.Offset(0, 1).Value = curStr) Then
taxSum = taxSum + Val(rngCell.Value)
End If
End If
Next rngCell
SumOf = taxSum
Exit Function
SumOfError: SumOf = 0 端功能
不明白整個情況,但通常這是'SUMIFS'的一項任務 – Jook
爲了讓事情順利運行,我編寫了一個VBA函數,它可以滿足我的需求(請參見上文) –