私の状況: オンライン ショップ用の製品の製造元から巨大な Excel シートを受け取りました。形式は次のとおりです。
product ID | price | name | ...
毎週、メーカーから新製品の最新リストが送られてきます。そのため、そのリストにどの製品が新しく含まれているかを知る必要があります。そこで必要なのは、次の操作を実行するコード スニペットです。
- 古い製品リストを sheet1 に挿入します (手動で)
- 新しい製品リストをシート2に挿入します(手動で)
- Sheet1とSheet2の製品IDを比較する
- 古いリスト (Sheet1) には存在しない製品 (行) を新しいリスト (Sheet2) から Sheet3 に挿入します。
したがって、Sheet3 の結果はすべて新製品になります。正しい方向に導いていただけることを願っています。
よろしく
答え1
次のようなものが必要かもしれません:
=VLOOKUP(Sheet1!A1:A100,Sheet2!A1:F100,6,FALSE)
もちろん、ボタンやあらゆる種類の高度な機能を備えた VBA を使用して、これを解決することもできます。
答え2
実際、Microsoft の PowerQuery アドインを使用してまったく別の方法で実行しますが、Excel 2010 でどの程度機能するかはわかりません (Excel 2007 では機能しません)。これを使用すると、製品 ID をグループ化して追加クエリを実行し、一意のリストを取得できます。
もう 1 つの方法は、シートを別のファイルに保存し、Excel クエリ ツールを使用して 2 つのテーブルを結合して新しいテーブルを作成することです。
いずれにしても、新しいテーブルができたら、次のマージに備えてそれを保存します。
答え3
(更新されたアイテム)にSheet2
、製品が新品かどうかを確認する列 D を追加します。
=MATCH(A2,Sheet1!$A:$A,0)>0
TRUE
列Dの値に一意の識別子を与える列Eを追加します。
=D5&COUNTIF(D$2:D2)
次に、Sheet3
(新しい項目) に移動して、たとえば列 E に、値 、 などのインデックス列を、必要と思われる数だけ入力しますTRUE1
(TRUE2
たとえばTRUE3
、ある日に 20 個の新しい項目があり、 までしか移動しなかった場合TRUE15
、5 個の項目が失われることになります)。
その後、次の方法で新しいアイテムを導入できます。
=INDEX(Sheet2!A:A,MATCH($E2,Sheet2!$E:$E,0))