質問: 良い一日 私は大きな問題がある 私はオンラインストアを持っており、製品と価格を更新する必要があります。現在のすべての製品をオンラインで受け取り、新しい価格表を受け取ったExcelシートを持っています。今、問題は、5000以上の製品を取り扱っていて、 私が今必要とするのは、あるシートから価格をコピーし、それを他のシートの対応するSKU /製品コードに移動するコードです また、現在のExcelシートから削除する必要があるEOL製品のリストがあるので、EOLシートで製品コード/ SKUを見つけて、もう一方のシートの対応するSKUで行全体を削除するコードが必要です ありがとうございました
回答: あなたの製品が3つのテーブルすべてで利用可能な一意のIDを持っていると仮定すると、これはプログラミングを必要としない簡単な作業でなければなりません。 **1.価格を更新する** 必要なのは`VLOOKUP`式だけです。私はすべての製品と価格であなたのリストは、列Aの製品IDとBの列の(古い)価格を持っていると仮定します。あなたの新しいpricelistは同じフォーマットです。次に、セルB2に次の数式を置きます(現在は古い価格です)。 ``` =VLOOKUP(A2,[NewPriceFile]Sheet1!$A:$B,2,0) ``` これはあなたに新しい価格を返します。 **2.古い製品を削除する**ここでは、単にEOL製品IDのリストがあると仮定します。 C列に次の数式を入力します。 ``` =ISERROR(MATCH(A2,[EOLFile]Sheet1!$A:$A,0)) ``` これは、製品がEOLリストに見つかるたびに`FALSE`を返し、それ以外の場合は`TRUE`を返し`FALSE` 。 これで、オートフィルタをフルリスト( *データ*タブ - > *ソート&フィルタ* - > *フィルタ* )に適用し、 `FALSE`列Cをフィルタリングするだけで済み`FALSE` 。すべての行を選択して削除します( `Ctrl` - `-` )。 同様に、すべての製品が見つかった場合は、列Bをチェックすることもできます。製品が見つからなかった場合、 `#N/A!`フィルタリングすることができます。また、数式を`IFERROR`と組み合わせて、新しい価格が見つからない場合は古い価格を使用することもできます。 ``` =IFERROR(VLOOKUP(A2,[NewPriceFile]Sheet1!$A:$B,2,0),D2) ``` (これは、古い価格がD2に格納されていることを前提としています)