「VLOOKUP関数で新しいほうのデータを取得したいのですがどうすればいいのでしょうか?」
といったご質問をいただくことがあります。
VLOOKUP関数を使うと、例えば、商品コードを入力したときにその商品の単価を自動的に表示させるといったことができます。
実務では、商品マスタの履歴も残したいために、同じ商品コードで複数のレコードが存在するような作りにするといったことが行われたりします。
そんなときに、新しいほうのレコードを下に追加するという業務ルールにして、「VLOOKUP関数で常に一番下のデータを取得したいのですがどうすればいいのでしょうか?」
といった質問をいただくことになります。
いくつかの解決策が考えられますが、Excelで業務システムを作る側から一番簡単なのは、業務ルールの見直しでしょう。
VLOOKUP関数は、はじめに見つかったレコードからデータを取得してくるので、新しいレコード(データを取得したいレコード)を上に配置しておけば、新しいデータが取得できます。
新しいデータを下に追加するという業務ルールが適用可能なら、新しいレコードを必ず上に追加するという業務ルールにすることも不可能ではないでしょう。
▼サンプルファイル(001727.xls 40KByte)ダウンロード
サンプルファイルには、新しい価格ほど高いという想定で、「新しいデータが上」「新しいシートが下」という2つのシートを作成してあります。
どちらのシートもG4:I13に商品マスタが作成してあります。
B4セルの「商品コード」を変更したときにD4セルの「単価」にどのような値が返されるかご確認ください。
データベースをちゃんと管理するためには、何らかのフラグを立てたり、マスタにレコードが登録された日などを持つべきでしょうが、できるだけExcelの修正を少なくしたいということなら、こういった解決方法も、あります。。
Home » Excel(エクセル)の関数・数式の使い方 » 検索・行列 » VLOOKUP関数で新しいデータを取得したい−新しいレコードを上に配置する