0

クーポン レベルの航空税データを含む一連のデータが与えられ、YQ からインターライン可能な税を分割し、EUR と USD に換算する必要がありました。必要に応じてレポートを作成するために約 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

最初のよりコンパクトなビューが優先されました。

とにかく、通貨に応じて各種類の税金を合計するにはどうすればよいですか? 私が理解している限り、これは 2 つの条件に基づく合計です: 範囲内の任意のセルの場合:

「A_CELL.OFFSET(0,-1) = [税コード] AND THAT_SAME_CELL.OFFSET(0,1) = [通貨]」という条件に一致する範囲 A2:L12 内の任意のセルの合計を作成します。

誰かがこれを成し遂げる途中で私を助けてくれますか?

前もって感謝します。乾杯!

更新:必要な結果を取得するために使用される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 終了関数

4

1 に答える 1

0

わかりました、あなたの VBA はそのトリックを行います。

ただし、VBA を使用すると、常に大きな問題が発生します。したがって、式を使用した私のソリューションは次のとおりです。

=SUMIFS(B$2:B$12,A$2:A$12,$A15,C$2:C$12,B$14)

これは、例のスクリーンショットのセル B15 用です。貼り付けることができます。

右に貼り付けたい場合は、少し調整する必要があります。

于 2012-11-08T14:19:11.947 に答える