0

2 列のデータを含む 2 つのワークシートがあります。ワークシートの A 列にはアイテムの名前があり、B 列にはアイテムの価格があります。ワークシート 1 は昨年の価格で、ワークシート 2 は今年の価格です。ワークシート 1 の項目の名前は、ワークシート 2 にある場合とない場合があります。

各ワークシートの名前を照合し、一致する場合はそのアイテムの価格差を決定するプロセスが必要です。価格差は、ワークシート 2 の列 C に入力されます。

vlookup 関数で if-then 関数を使用することを検討しましたが、すべてのレコードについて、ワークシート 1 とワークシート 2 のすべての列 A で一致を確認する必要があります。VB ループ プロセスの方が効率的であると思います。

4

1 に答える 1

0

私には、これを 1 回 (または 1 年に 1 回) だけ要求する可能性が高いと思われるので、効率はそれほど重要ではないように思われるため、数式が役立つ場合があります。

行1 のラベル (それぞれ、シート 1、シート 2、およびItem_Name シート2) を想定すると、次の数式 (適切にコピーされたもの) は、一致しない場所を示す必要があります (または、一致する場合は、昨年と比較した価格変化:Price_OItem_NamePrice_NDiff#N/A

Sheet1 C2: =IF(MATCH(A2,Sheet2!A:A,0)>0,"")
Sheet2 C2:=B2-VLOOKUP(A2,Sheet1!A:B,2,FALSE)


あるいは、ピボット テーブルは、以下と組み合わせて、より良い概要を提供する場合があります。

Sheet2 H5: =IF(OR(ISBLANK(F5),ISBLANK(G5)),"No Match",G5-F5)(スーツに合わせてコピー)。

  1. Sheet2 E1 で、ピボットテーブル ウィザードを呼び出し (Alt+D、必要に応じて P)、[複数の連結範囲] と [ピボットテーブル]、[次へ] を選択します。
  2. [ページ フィールドを作成します]、[次へ] の順に選択します。
  3. [範囲] で、Sheet1!$A:$B、Add、Sheet2!$A$B、Add、Next を選択または挿入し、Existing worksheet を選択して=$E$3、Finish と入力します。
  4. テーブルを右クリックし、必要に応じて Σ 値を [値のカウント] から [値の合計] に変更します ([値のカウント] を左クリックし、[値フィールドの設定] を左クリックして [集計基準] で [合計] を選択します)。
  5. テーブルを右クリックし、[ピボットテーブル オプション] を左クリックし、[合計とフィルター] を左クリックし、必要に応じて [行の総計を表示する] のチェックを外して [OK] をクリックします。
  6. 必要に応じて、テーブル内で右クリックPriceN、Sort、Sort ZA を実行します。

SO12563000 の例

于 2013-05-23T01:25:03.337 に答える