私はVBAにかなり慣れていませんが、プログラミングのバックグラウンドがあります。2つのExcelブックを開き、ピボットテーブルをコピーして、特別な値をステージングブックに貼り付けるために、VBAを作成しています。そこから、ピボットデータを比較し、違いを出力する必要があります。しかし、そこからどこへ行けばいいのかわかりません。
サンプルデータ
ピボット1
果物の合計YearMon カテゴリグループ201205201206201207 201208 201209 ... 201401 アップルグリーン1.32.13.0..。 赤1.01.52.0..。 りんご合計........。 ベリーストロー111.1 2.02.1..。 黒111.0 0.90.9..。 ベラコ合計........。
ピボット2
果物の合計YearMon カテゴリグループ201206201207201208 201209 201210 ... 201402 アップルグリーン1.52.33.2..。 赤0.81.31.9..。 黄色10.90.91..。 りんご合計........。 ベリーストロー111.3 1.82.1..。 黒110.9 0.80.8..。 ベラコ合計........。
望ましい結果(ピボット2-ピボット1)
果物の合計YearMon カテゴリグループ201205201206201207 201208 201209 201210 ... 201402 アップルグリーン-0.6-0.7..。 赤-0.7-0.7..。 りんご合計........。 ベリーストロー0-0.1-0.7-0.3..。 黒000-0.1..。 ベリー合計........。
私の最初の衝動は、それぞれに基づいて配列を配置しYearMon
、それらをループして、両方のピボットに存在しない属性を削除することです(つまり、黄色いリンゴはピボット1に存在せず、のデータはありません)。次に、各グループをループして計算を行います。これはあまりにも厄介に聞こえます。Group
Category
201402
私は現在、との範囲を作成しYearMon
、次にそれぞれの値を比較するGroup
ために、範囲を垂直方向と水平方向にループすることを考えています。それぞれが止まるCategory
場所を正確に見つける方法、またはおそらく使用できるかどうかわかりませんか?または、2つのピボットを比較する簡単な方法はありますか?Category
VLOOKUP
アップデート1
コメントの大部分は、このタスクを実行するためにピボットの背後にあるソースデータを使用することを試みることを推奨しています。私はデータを取得し、上記のスキームに従うことができます。これは次のようになります。
データ1
カテゴリグループYearMon値 アップルグリーン2012071.3 アップルグリーン2012082.1 アップルグリーン2012093.0 アップルレッド2012071.0 アップルレッド2012081.5 アップルレッド2012092.0 ベリーストロー2012051.0 ベリーストロー2012061.0 ベリーストロー2012071.1 ベリーストロー2012082.0 ベリーストロー2012092.1 ベリーブラック2012051.0 ベリーブラック2012061.0 ベリーブラック2012071.0 ベリーブラック2012080.9 ベリーブラック2012090.9
データ2
カテゴリグループYearMon値 アップルグリーン2012081.5 アップルグリーン2012092.3 アップルグリーン2012103.2 アップルレッド2012080.8 アップルレッド2012091.3 アップルレッド2012101.9 アップルイエロー2012071.0 アップルイエロー2012080.9 アップルイエロー2012090.9 アップルイエロー2012101.0 ベリーストロー2012061.0 ベリーストロー2012071.0 ベリーストロー2012081.3 ベリーストロー2012091.8 ベリーストロー2012102.1 ベリーブラック2012061.0 ベリーブラック2012071.0 ベリーブラック2012080.9 ベリーブラック2012090.8 ベリーブラック2012100.8
以下に提案するように試みた後SUMIFS
、比較を行うために、各データセットの各基準(Category、Group、YearMon)を指定する必要があるようです。おそらく、機能する他の機能がいくつかありますか?
アップデート2
もう1つの提案は、データセットを組み合わせてピボット内からの差を計算することでした。これらの2つのデータセットを組み合わせた後、各データセット(1または2)を識別する別の列を含めずに、差の計算を行う方法を理解できないようです。そこから比較を行うことができます。私は何か間違ったことをしていますか?
アップデート3
以下の回答に従って、違いを取得するために2番目のデータセットの値を単純に否定しました。