この記事では、エクセルにて指定の値に近い値(基準値の近似値)について、近似値より大きい場合、小さい場合の数値を調べる方法を解説していきます。
基準値に近い値を出力させる方法としては、大きい場合でも小さい場合でも
・INDEX関数とMATCH関数
を使用するといいです。
実際のサンプルを見ていきましょう。
エクセルにて指定の値に近い値(基準値の近似値)を返す方法【検索値以下の最大値】
エクセルにて基準値以下で最もその数値に近い値を返す方法としては、INDEX関数とMATCH関数を組み合わせて使用するといいです。
以下のよう、各商品名とその長さ、幅が記載されたデータがあり、基準値として「長さが21」として、これ以下の最大値を出力してみましょう。
この場合には、基準値に近い値を出力したいセル(H6)に=INDEX(C3:C10,MATCH(H3,C3:C10,1),0)と入力します。
概要としてはMATCH関数にて基準値以下の最大値の場所を特定した上で、INDEX関数で実際にその場所の中身を出力させているといえます。
この数式の意味は以下の通りです。
MATCH関数は、検索値が検索範囲の何番目にあるかを調べる関数であり、
= MATCH関数(検索値、検索範囲、参照の種類)
などと入力をしていきます。
今回では、
・検索値:近似値を求めたい数値(必要な長さが入力されているセルH3)
・検索範囲:検索値が入力されている連続した範囲(商品の長さが入力されている範囲C3:C10)
・参照の種類:1、0、-1のいずれかの参照方法
この時、1(検索値以下の最大値)、0(一致)、-1(検索値以上の最小値)で、ここでは検索値以下の最大値を調べたいので 1 と入力します)
さらに注意点として、検索値以下の最大値(1)の場合はその数値の並びを「昇順」にしておく必要があるため、昇順でない場合は並び替え機能などで適宜変更してください。
としましょう。
次に、INDEX関数について説明をします。
INDEX関数では、配列(範囲)とその配列の中の列・行番号を指定することで、その中身を出力させる関数であり、
= INDEX(配列,行番号,列番号)
などと入力をしていきます。
今回では、
・配列:セル範囲(長さが入力されている範囲C3:C10)
・行番号:配列の先頭から何番目の行を参照するか(MATCH関数を用いて、必要な長さの近似値が何番目にあるかを調べるので MATCH(H3,C3:C10,1) と入力します)
・列番号:配列の先頭から何番目の列を参照するか(参照する範囲がC列だけなので 0 と入力します)
としましょう。
ENTERで処理をかくていさせると、INDEX関数とMATCH関数を組み合わせて使用し、指定の値に近い値(検索値以下の最大値)を返す方法が完了です。
同様に、近似値(基準値以下の最大値)の商品名を求めたい場合、INDEX関数の配列をB3:B10と変更することにより、同様の方法で求めることができます。
MATCH関数での検索値は同じであり、出力時(INDEX)の範囲として商品名の配列を指定すればOKというわけです。
具体的には、近似商品の商品名を入力したいセル(H7)に=INDEX(B3:B10,MATCH(H3,C3:C10,1),0)と入力します。
ENTERにて確定させると以下の通りとなります。
エクセルにて指定の値に近い値を返す方法【検索値以上の最小値】
さらには、エクセルに基準値以上の最小値(近似値)を出力させる方法も見ていきましょう。
こちらの場合もINDEX関数とMATCH関数を組み合わせて使用します。
近似商品の幅を入力したいセル(H6)に=INDEX(D3:D10,MATCH(H3,D3:D10,-1),0)と入力します。
MATCH関数の意味は上述の通りですが、今回では、参照の種類にて「ー1」と指定するのがポイントです。
・検索値:近似値を求めたい数値(必要な幅が入力されているセルH3)
・検索範囲:検索値が入力されている連続した範囲(商品の幅が入力されている範囲D3:D10)
・参照の種類:1、0、-1のいずれかの参照方法(検索範囲に検索値がなかった場合、検索値以上の最小値を調べたいので -1 と入力します)
としましょう。
なお、指定以上の最小値を返したいケースでは、その並びを「降順」にする必要があり、これは上述の基準値以下の最大値とは逆になるため、注意してください。
さらにINDEX関数の中身としては、
・配列:セル範囲(幅が入力されている範囲D3:D10)
・行番号:配列の先頭から何番目の行を参照するか(MATCH関数を用いて、必要な幅の近似値が何番目にあるかを調べるので MATCH(H3,D3:D10,-1) と入力します)
・列番号:配列の先頭から何番目の列を参照するか(参照する範囲がC列だけなので 0 と入力します)
としましょう。
これで、INDEX関数とMATCH関数を組み合わせて使用し、指定値以上の最小値(近似値)を返す方法が完了です。
近似値の商品名を求めたい場合、INDEX関数の配列をB3:B10(商品名の範囲)と変更することにより、同様の方法で求めることができます。
近似商品の商品名を入力したいセル(H7)に=INDEX(B3:B10,MATCH(H3,D3:D10,-1),0)と入力すればOKです。
これで基準値以上の最小値を求めることができました。
まとめ エクセルにて基準値以上の最大値や指定値以下の最大値(近似値)を返す方法
この記事では、エクセルにて指定の値に近い値を返す方法を紹介しました。
INDEX関数とMATCH関数を組み合わせて使用することで、指定の値に近い値(大きい方も小さい方も)を返すことができます。
エクセルでのさまざまな処理を理解し、業務に役立てていきましょう。