Excel。LARGE関数は指定した○番目に大きい値を算出します
<関数辞典:LARGE関数>
LARGE関数
読み方: ラージ
分類: 統計
LARGE(配列,順位)
指定した○番目に大きい値を算出します
【Excel・Word・PowerPoint・Access】あなたの「困った」を解決!10年以上の経験が詰まった、現場の疑問から生まれた実践テクニック集。作業効率を劇的に上げるOffice活用術をお届けします。
似ているデータが多い時に上位1位~3位までのデータを把握したいとします。
そこで、上位1位~3位のデータならば、行全体を塗りつぶすことで、把握することにしました。
上位1位~3位ということで、条件によって塗り分けるので、条件付き書式をつかうわけです。
あとは、どのような条件にすればいいのかという点です。
上位1位~3位を算出するには、LARGE関数をつかうことで判断することができます。
では、早速、条件付き書式を設定していきます。
A2:C11を範囲選択します。
ホームタブの条件付き書式にある「新しいルール」をクリックします。
条件式のボックスに数式を設定します。
=$C2>=LARGE($C$2:$C$11,3)
あとは、書式ボタンをクリックして、塗りつぶしたい色を選択します。
OKボタンをクリックすれば、条件付き書式の設定は終了します。
これにより、上位1位~3位のデータの行全体を塗りつぶすことができます。
では、設定した条件式を確認します。
=$C2>=LARGE($C$2:$C$11,3)
C2は、列固定の複合参照にすることで、行全体が対象になります。
これにより、行全体を塗りつぶすことができます。
LARGE($C$2:$C$11,3)
LARGE関数をつかうことで、2番目の引数で「3」と設定すれば、最初に設定した引数の範囲ないで、上位3番目の値を算出することができます。
上位3番目の数値が算出できたら、その値以上ならば、1位~3位ということがわかります。
そのために、LARGE関数をつかった条件式を設定したというわけです。
あと、$C$2:$C$11 というように、忘れずに、絶対参照を設定しましょう。
大量なデータからTOP1位~3位がわかるように、行全体を塗りつぶしたい場合、どのようにしたらいいのでしょうか。
そのため、条件式を設定する必要があります。
条件ですが、TOP3の売上金額がわかれば、それ以上の売上金額ならば、TOP1~3ということがわかります。
TOP3の値を算出にはLARGE関数をつかうことで、対応することができます。
A2:C16を範囲選択して、ホームタブの条件付き書式にある「新しいルール」をクリックします。
ルールの種類を「数式を使用して、書式設定するセルを決定」をクリックします。
=$C2>=large($C$2:$C$16,3)
と設定します。
あと、書式ボタンをクリックして、セルを塗りつぶす色を設定したら、OKボタンをクリックします。
また同じ数値でもきちんと、塗りつぶされていることがわかります。
上位グループと下位グループに分かれているようなデータの場合、単純な平均値だけではなく、上位グループの平均値も合わせて算出したい場合があります。
そこで、今回は、上位3位までの平均値を算出する方法をご紹介します。
次のデータを用意しました。
C2:C10に数値のデータがあります。この平均値を算出したのが、F1です。
F1の数式は、
=AVERAGE(C2:C10)
AVERAGE関数では、全体の平均値を算出することはできても、条件をつけた平均値を算出することができません。
そこで、上位3位という条件を含めることができる。
つまり単一条件の平均値を算出することができる、AVERAGEIF関数を使う必要があります。
F3に上位3位までの平均値を算出していきますので、次の数式を設定しました。
=AVERAGEIF(C2:C10,">="&LARGE(C2:C10,3))
これで、上位3位までの平均値を算出することができました。
AVERAGEIF関数の引数の説明をします。
最初の引数は、「範囲」です。
この範囲とは、2つ目の引数の条件が含まれている範囲のことです。
よって、C2:C10と設定します。
2つ目の引数の条件には、上位3位と意味する数式を設定する必要があります。
「上位」という順位に該当する値を算出(抽出)する場合には、LARGE関数を使います。
ただし、3位の値ではなく、1~3位までの数値である必要がありますので、比較演算子をつかいます。
そこで、
「”>=”」と比較演算子とLARGE関数を「&(アンパサンド)」で結合します。
3つ目の引数の、平均対象範囲は、1つ目の引数の範囲と同じなので、省略できますので、省略しました。
これで、上位3位までの平均値を算出することができます。
なお、ステップを踏んで算出すると次のようになります。
D列には、LARGE関数をつかって、3位の数値。246を表示してあります。
D2の数式は、
=LARGE($C$2:$C$10,3)
D10までオートフィルで数式をコピーします。
E2には、
=IF(C2>=D2,C2,"")
という数式をコピーします。
これで、上位3位までの数値だけにすることができます。この3件の平均値を算出するというわけです。
E11に設定した数式は
=AVERAGEIF(E2:E10,">0")
E11の結果と先程紹介した
=AVERAGEIF(C2:C10,">="&LARGE(C2:C10,3))
と同じになっていることが確認できます。
データ量が多い場合など、該当するデータがどこにあるのか、わかりやすくするために、セルを塗りつぶすだけよりも、行(レコード)全体を塗りつぶすほうが、より一層わかりやすくなります。
次の表のようにするにはどうしたらいいのでしょうか。
このように、条件がついた塗りつぶしを行いたい時には、「条件付き書式」をつかうわけですが、ポイントになるのが、条件をどのように設定したらいいのかということですね。
該当するセルだけを塗りつぶすだけならば、ホームタブの「条件付き書式」にある「上位/下位ルール」の「上位10項目」を使用すれば設定することができます。
そのため、条件式をつくってあげる必要があります。
上位3位ということは、第3位の売上高以上ならば、該当するといえるわけです。
第3位の値を算出するには、LARGE関数を使えば算出することができますね。
それでは、条件付き書式を設定していきます。
A2:C11を範囲選択して、ホームタブの「条件付き書式」にある「新しいルール」をクリックします。
=$C2>=LARGE($C$2:$C$11,3)
あとは、書式を設定したらOKボタンをクリックして完成です。
設定した数式ですが、
LARGE($C$2:$C$11,3)で、第3位の売上高の数値を算出できます。
それ以上ならば、1位~3位であることがわかります。
また、「$C2」と列固定の複合参照にすることで、行全体を塗りつぶすことができます。
全体の平均を算出するだけならば、オートSUMボタンに含まれている、AVERAGE関数の「平均」をつかえば、すぐに算出することができます。
ただ、そのうち、上位3位までとか、限定した範囲の平均を算出する場合、どのようにしたら、楽に、手早く算出することができるのでしょうか。
次のデータを用意しました。
E1の数式は、
=AVERAGE(B2:B11)
上位3位までの平均ということは、どうやって、上位3位までなのかを判断させる必要があります。
上位3位までのような算出をおこなうには、「LARGE関数」をつかうことで、対応できます。
そして、上位3位までだったら、平均を算出する対象ということで、条件付きの平均で、算出する必要があります。
単一条件の平均を算出するには「AVERAGEIF関数」をつかうと解決できます。
このようなことから、今回は、AVERAGEIF関数とLARGE関数のネストで対応することができそうです。
E2に数式を設定します。
=AVERAGEIF(B2:B11,">="&LARGE(B2:B11,3),B2:B11)
これで、上位3位までの平均を算出することができました。
上位3位までということで、1位2位3位を算出しようと考えてしまいがちですが、1位などのランキングを算出するのは、LARGE関数ではなくて、RANK.EQ関数です。
上位3位という意味は、上位3位の数値以上なわけですね。
そのため、LARGE関数をつかって上位3位を算出した値以上という条件にすればいいわけです。
また、比較演算子は、「&(アンパサンド)」で結合する必要があります。
「">=LARGE(B2:B11,3)”」と「”(ダブルコーテーション)」で全体を囲いがちですが、これでは、文字になってしまうので、条件が合致しませんので、比較演算子を使用する時は注意する必要があります。
今回のケースは、「上位」でしたが「下位」を条件に使う場合には、「SMALL関数」をつかうことで対応することができます。
単純な平均だけではなくて、他の関数と組み合わせることで、必要とする平均を求めることができるかもしれませんので、色々試してみるといいかもしれませんね。
上位1位から3位までのデータを視覚的にわかりやすくした表を作りたいとします。
フィールド数(見出し列数)が多い場合には、データのセルだけを塗りつぶすよりも、レコード(行)全体を対象に塗りつぶしをしたほうが、いいと思うわけですね。
次のような表を作りたいわけです。
問題になるポイントが、どのような数式を設定すればいいのかということですね。
条件付き書式に用意させているものは、対象になるセルにしか、書式を反映することができないので、行全体と考えた時点で、条件付き書式の条件は数式を使わないといけないわけですね。
上位3位ということなので、RANK.EQ関数で順位を算出してもいいのですが、一度順位を算出した列をつくらないといけないので、効率的にちょっと、オススメできません。
そこで、上位3位の数値を算出させて、算出結果より以上の数値ならば、上位3位に入ることがわかります。
上位何番目というのを算出する時につかうのが「LARGE関数」です。
では、条件付き書式を設定していきますので、A2:B16を範囲選択して、ホームタブの条件付き書式にある、「新しいルール」をクリックします。
=$B2>=LARGE($B$2:$B$16,3)
あとは、書式ボタンをクリックして、塗りつぶしたい色を設定します。
これで、上位1位~3位のデータを行全体で塗りつぶすことができます。
設定した数式を説明しておきましょう。
=$B2>=LARGE($B$2:$B$16,3)
「$B2」と列側だけに絶対参照にする「複合参照」にすることで、行全体を塗りつぶすことができます。
あとは、LARGE関数の引数ですが、最初の引数は、配列なので範囲のことです。
絶対参照を忘れないように設定します。
そして、何位という順位を次に設定します。
上位3位のデータを算出したいので、「3」と設定すればいいわけですね。
このように、条件付き書式の条件に数式をうまく取り入れることで、様々な表現を帳票に組み込むことができます。
今回のように、色々試してみると、よりよい帳票や資料が作れるかもしれませんね。
条件付き書式をつかうことで、視覚的に資料をわかりやすくすることができます。
最初から用意されているものでも十分ですが、行全体にも反映させたい場合は、アレンジしないとできません。
今回は、上位3件のデータの行全体を塗りつぶししたい場合でみてみましょう。
やりたいことは、上位3件。
つまり、1位~3位のデータがわかればいいわけです。
そこで、使う関数は、LARGE関数です。
A2:F6を範囲選択して、ホームタブの条件付き書式にある「新しいルール」をクリックします。
「数式を使用して、書式設定するセルを決定」をクリックして、「次の数式を満たす場合に値を書式設定」のボックスに、次の数式を設定します。
=$F2>=LARGE($F$2:$F$6,3)
あとは、書式ボタンをクリックして、セルの色を設定したら、OKボタンをクリックして設定完了です。
これで、行全体に塗りつぶしを行うことができました。
数式も確認しておきましょう。
「$F2」のように、列固定の複合参照にすることで、行全体を対象とすることができます。
「LARGE($F$2:$F$6,3)」で、上位3番目の値を算出できます。
その値以上ならば、上位1位~3位に該当します。
逆に、下位の場合には、「SMALL関数」をつかえば、同じように設定することができます。
ところで、なぜ、LARGE関数をつかうのかというと、MAX関数は、最上位のデータしか判別できません。
最上位(1位)以外の上位の値を算出するには、LARGE関数を使う必要があります。
RANK.EQ関数という方法もありますが、一度順位を算出させたあと、3以下のデータなのか判断させる数式で条件を設定する必要があるので、LARGE関数よりも、作業量が増えてしまいます。
手早く行う点からみても、LARGE関数をつかうといいですね。
今回は、LARGE関数~LENB関数までをご紹介しております。
LARGE関数
ラージ
指定した○番目に大きい値を算出します。
LARGE(配列,順位)
LCM関数
エルシーエム
整数の最小公倍数を算出します。
LCM(数値1,[数値2])
LEFT関数
レフト
文字列の左端から文字を取り出せます。
LEFT(文字列,[文字数])
LEFTB関数
レフトビー
文字列の左端から指定バイト数の文字を返す
LEFTB(文字列,[バイト数])
LEN関数
レン
文字列の文字数を返す
LEN(文字列)
LENB関数
レンビー
文字列のバイト数を返す
LENB(文字列)