我获得了一组包含优惠券级别的航空税数据的数据,并且必须从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)= [税码] AND 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 结束功能
答案 0 :(得分:0)
好的,你的VBA可以解决问题。
但是,使用VBA始终是对问题的一种支持。所以这是我使用公式的解决方案:
=SUMIFS(B$2:B$12,A$2:A$12,$A15,C$2:C$12,B$14)
这是针对示例屏幕截图的单元格B15。你可以将其粘贴下来。
如果要将其粘贴到右侧,则需要稍微调整一下。