この記事では、VBAでINDEX&MATCH関数を使用して、VBAコードを使用してExcelの2つの基準に一致させる方法を学習します。

出力を取得するために、OFFSET関数とCOUNTA関数の組み合わせを使用してNameManagerリストを作成します。

例を挙げて理解しましょう:

  • 学生の名前、件名、マークが記載された学生レポートカードがあります。

img1

  • セルF2とG2に入力された学生名と科目のマークを調べたい

img2

  • VBAコードを使用してマークを計算するために、OFFSET関数を使用して各カテゴリの名前付き範囲を作成しました。

  • CTRL + F3を押して名前マネージャーウィンドウを開きます(リストはすでに作成されています)

img3

  • [数式]タブの[名前の貼り付け]機能の使用。セル内のすべての定義済み名範囲リストを取得します

img4

  • [数式]タブの[名前の貼り付け]機能の使用。セル内のすべての定義済み名範囲リストを取得します

img5

  • リストの貼り付けをクリック

img7

VBエディターを起動するには、以下の手順に従う必要があります。[開発者]タブをクリックします。[コード]グループから[VisualBasic]を選択します

img8

  • [挿入]をクリックしてから[モジュール]をクリックします

img9

これにより、新しいモジュールが作成されます。

Module Sub IndexMatch()に次のコードを入力します

myName = [F2]

mySubject = [G2]

mark = Application.WorksheetFunction.Index([StMark]、_ Application.WorksheetFunction.Match(myName、([StName])、0)+ _ Application.WorksheetFunction.Match(mySubject、[StSubject]、0)-1)

[H2] =マーク終了サブ

img9

  • Alt + F8ショートカットキーを押してマクロウィンドウを開き、マクロを選択します。

img10

  • または、F5キーを押してVBA画面でコードを実行することもできます。

  • マクロを実行した後、セルH2に出力を取得します

img11

これは、VBAのインデックス一致ワークシート関数を使用して結果を取得する方法です。