1

私は長い間 VBA に取り組んできましたが、これを行う方法を忘れていました...数式を使用しています。

記述子を含むセルがあります。この場合は K1122121 です。その隣のセルが説明になります。別のシートにはパーツのリストがあり、シート 2 でそのパーツ番号を検索し、検索しているパーツの横に説明を配置する必要があります。

私はそれが可能であることを知っていますが、方法を忘れています。

要約すると。

シート 1 には 2 つのセルがあり、最初のセルは部品番号で、その隣の 2 番目のセルは式が進む場所で、このセルにはその部品番号の説明が生成されます。

シート 2 には、部品と説明が並んでいます。部品番号を参照して説明を見つける必要があります。

説明が見つかったら、その説明をシート 1 の説明フィールドに配置します。

助けてくれてありがとう。

ここに私が取り組んでいることのリンクがあります。https://dl.dropbox.com/u/3327208/Excel/PAERTO.xlsm

4

4 に答える 4

2

この式を使用すると、結果を得ることができます。

=VLOOKUP(E20&" Rev"&F20,'Jobs List'!D:E,2,0)

F20ただし、セルをに変更する必要があります4

部品番号と "Rev" がシート間で一致している限り、この式は機能します。

セルD20D24戻り値のみであることに注意してください。他の部品番号は他のシートには存在しないため、どの式を使用しても戻り値は表示されません。

于 2012-07-05T18:01:41.563 に答える
2

それは呼び出され、次のVLOOKUPように呼び出します。

=VLOOKUP(A1,Sheet2!A:B,2,FALSE)

どこ:

  • A1は、シート 1 の部品番号のセルです。
  • Sheet2データが配置されているシート (記述子/説明)
  • A:Bデータが配置されているシート2の範囲です
  • 2あなたが探しているのは2番目の列にあるからです
  • FALSE完全一致の値のみを取得する - 完全一致が見つからない場合、エラーが表示されます

編集

あなたのワークブックを見て、最初の単語のみを保持する数式を使用して、ジョブ リスト (D と E の間など) に新しい列を個人的に挿入します - E3 の数式:

=IF(ISERROR(FIND(" ",D3)),D3,LEFT(D3,FIND(" ",D3)-1))

次に、PAERTO シートの数式は次のようになります - D20 の数式:

=VLOOKUP($E20,'Jobs List'!$E:$F,2,FALSE)

あなたが提供した例では、20行目、22行目、24行目で結果が得られ、他の行でエラーが発生しました。

于 2012-07-05T14:49:34.230 に答える
1

答えは私が望んでいたよりも少し複雑でしたが、これを答えとして使用することになりました。最も単純でもエレガントでもないかもしれませんが、機能します。

=IF(E20=0,VLOOKUP("*"&E20&"*",'Jobs List'!D:E,2,FALSE),VLOOKUP("*"&E20&"*",'JL Archive'!D:E,2,FALSE))

を使用して、"*"ワイルドカードを使用するようにしました。ワイルドカードの使用法を前後に置いたので、セルの一部の前または後ろに必要なテキスト以上のものがある場合に備えて.

これが人々に役立つことを願っています。これの元々の用途は、数式を別のワークブックから使用できるようにすることでしたが、ご存知のように、これはどこでも使用できます。楽しみ :)

于 2012-07-06T16:38:24.367 に答える
1

A1 に部品番号を入力すると、B1 に数式=VLOOKUP(A1,Sheet2!A:B,2,FALSE)で説明が表示されます。

Excel 2003 以前を使用している場合は、次Sheet2!A:Bのような完全な参照に変更する必要があります。Sheet2!A2:B2000

于 2012-07-05T14:49:57.307 に答える