エクセルを使って縦方向と横方向の両方に項目が並ぶ表を作成することがあります。たとえば、下図のように縦方向には、売上~粗利の各項目があり、横方向には月が並ぶようなパターンです。
さて、このような表で5月の労務費が知りたいという場合、エクセルでは、どのような計算式になるでしょうか。今回は、縦横両方向に延びる表の交点にある値を取得する方法をまとめてみたいと思います。
Index関数の使い方
下図にあるように、Index関数を用いることで5月の労務費を表示することができます。
では、Index関数についてもう少し細かくご説明したいと思います。Index関数の書式は下記の通りです。
=INDEX(範囲, 縦位置, 横位置)
上図の例では、「C4:N8」が範囲になります。この表の左上のセル(1月の売上)と右下のセル(12月の粗利)までの範囲を指定しています。
そして、労務費は上から3番目の項目、5月は左から5番目に位置します。それで、例にあるように「=Index(C4:N8, 3,5)」という計算式で5月の労務費を表示することができます。
Match関数の使い方
下図にあるように、Match関数を用いることで「5月」がこの表の中で何列目になるか、「労務費」がこの表の中で何行目になるかを知ることができます。
では、Match関数についてもう少し詳しくご説明したいと思います。Match関数の書式は下記の通りです。
=MATCH(検索値, 検索範囲, 完全一致か近似値か)
上図の例では、「”5月”」および「”労務費”」が、検索値になります。
また「”5月”」を検索するための範囲は、1月~12月までなので「C3:N3」となり、「”労務費”」を検索するための範囲は、売上~粗利なので「B4:B8」となります。
「完全一致」か「近似値」かですが、通常は「完全一致」で良いと思います。「近似値」を選ぶ場合、一覧を昇順や降順で並び替える必要があるので注意が必要です。ここでは、「5月」および「労務費」と値が完全に一致するセルを検索することとします。完全一致の場合は、「0」を指定します。
そうすると、例にあるように、「5月」は5列目、「労務費」は3行目という値を表示することができます。尚、ここでいう5列目、3行目というのは検索範囲内での相対的な位置です。
Index関数とMatch関数とを組み合わせる
下図にあるように、Index関数とMatch関数を組み合わせることで5月の労務費を表示することができます。
Index関数の縦位置と横位置をMatch関数にすることで5月の労務費を表示しています。
このままでも良いのですが、5月以外、あるいは労務費以外のデータも簡単に表示することができるようにさらに調整を加えたいと思います。
下図のように何月のどの項目のデータを表示させたいかを入力できるようにします。この例の場合、「7月」「外注費」と入力しますと該当するデータが表示されていますね。
ちょっとした工夫
エクセルで作業する場合、セルをコピペすることがよくあります。この表のように範囲が固定であれば、以下のように「$」をつけておくことでコピペしても常に同じ範囲からデータを取得することができます。
今回は、Index関数とMatch関数を組み合わせて表中の交点にある値を取得する方法をまとめてみました。では、今回はここまでです。