検索した値の特定のオフセットで値を呼び出す

検索した値の特定のオフセットで値を呼び出す

私の目標は、シフトスケジュールにスタッフの名前を入力したときにランクが表示されるようにすることです。たとえば、Andrewセル に入力するとF2A(Andrew のランク) がセル に表示されますE2ここに画像の説明を入力してください この機能を利用しようとしましたVLOOKUPが、適切な機能をいじっているつもりですが、うまく動作しません。
どんな助けでも非常に助かります。ありがとうございます!!

答え1

INDEX関数を使用しますMATCH。E2 に次の数式を入力します。

=INDEX($A$2:$A$6,MATCH(F2,$B$2:$B$6,0))

答え2

または、XLOOKUP()次のように使用します:

=XLOOKUP(F2,  $B$2:$B$6,  $A$2:$A$6)

これには私が使用したことのないオプションがいくつかありますが、たとえば、ソースに「Andrew」が存在しない場合、カスタム エラー メッセージを表示できます。たとえば、「スタッフ メンバーが見つかりませんでした。名前のスペルが間違っている可能性があります。」などです。これは、ユーザーにとっては Excel エラーよりもはるかに便利です。

VLOOKUP()本当に望むなら、実際にこれを行うことができます。すべての「実際にできる」ことと同様に、トリックを使用します。実際には、これを行う方法はいくつかありますが、これは私の意見では最も巧妙です。XLOOKUP()トリックを必要とせず、便利なエラー メッセージ機能を提供するため、お勧めします。それでも、役立つ場合は、次の方法があります。

=VLOOKUP(F2, INDEX($A$2:$B$6,, {2,1} ), 2, FALSE)

INDEX()これら 2 つの列を並べ替えて、スタッフ メンバーの名前の列が 2 番目ではなく最初になるようにします。そのため、VLOOKUP()参照列 (名前) が左端の列になったため、テーブルは許容されます。

たとえば、列 A と列 G にある場合は、範囲 $A$2:$G$6 を使用しINDEX()、必要な 2 つの列 1 と 7 を {7,1} の順序で指定するだけでVLOOKUP()済みます。

INDEX()贈り物は、与え続けるものです。似たような、しかしより興味深い使い方については、次の質問をご覧ください。 ヘッダーが同じだが順序が違う複数の Mac Excel ファイルを結合する方法

ここでは、列ヘッダーを使用して、表の列を標準の順序に合わせて並べ替えました。まったく異なる状況でも同じアイデアが使われています。贈り物は尽きることはありません!

答え3

ReddyとJeorjeの回答が参考になったかどうか確認してください。
それでもVLOOKUP関数を使用してこれを行う場合は、名前列とランク列を手動で入れ替えるそうすれば、すべてが簡単になります。

=IFERROR(VLOOKUP(F2,$A$2:$B$3,2,FALSE),"")

ここに画像の説明を入力してください

答え4

  1. VlookUpでは、検索に使用するテーブルの最初の列に従業員の名前が含まれている必要があります。

  2. その列は従業員でソートする必要があります

  3. 類似した名前がある場合、やはり間違った答えが出ます。

  4. 理想的なのは、テーブルを名前ではなく一意の従業員番号に基づいて配置することです。名前、役職、性別、年齢、等級、入社日など、その他のすべてのデータ列を追加できます。

ありがとう。

関連情報