我得到了一组包含优惠券级别的航空公司税数据的数据,我不得不从 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 中的任何单元格的总和符合条件:“A_CELL.OFFSET(0,-1) = [tax code] AND THAT_SAME_CELL.OFFSET(0,1) = [currency]”
有人可以帮我完成这件事吗?
先感谢您。干杯!
更新:用于获得所需结果的 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 结束函数