AccessでVLOOKUP関数・近似値検索

Accessには、ExcelのVLOOKUP関数と同様の処理ができる関数が用意されていません。
この項ではVLOOKUP関数のような近似値を含めた検索処理をフォーム内で実行する方法をご紹介いたします。
DMax関数とDLookup関数を組み合わせて処理します。

表の確認

下記のような表(T_スコア記録表)において、「スコア」から「ランク」を割り出します。

スコアID採点日受験者番号スコア
12014/5/715495
22014/5/795605
32014/5/754350
42014/5/770419
52014/5/722377
62014/5/789649
72014/5/726550
82014/5/771654
92014/5/721775
102014/5/75848
112014/5/1190437
122014/5/1466622

「スコア→ランク」の対応表には以下(Q_ランク対応表)を用います。
「最小スコア」から「ランク」を割り出します。
「スコア」が「495」ならば「最小スコア」が「450~550」の間に存在するので、上側である「450」の行に該当すると考えられます。その行の「ランク」は「A」です。

最小スコア最大スコアランク
-99999249D
250349C
350449B
450549A
550649A+
650749S
75099999S+

以下のような結果を取得することが目的となります。

スコアID採点日受験者番号スコアランク
12014/5/715495A
22014/5/795605A+
32014/5/754350B
42014/5/770419B
52014/5/722377B
62014/5/789649A+
72014/5/726550A+
82014/5/771654S
92014/5/721775S+
102014/5/75848S+
112014/5/1190437B
122014/5/1466622A+
132014/5/183566A+
142014/5/2098450A

コメント