
Google スプレッドシートのLARGE 関数[X番目に大きい値]を抽出する。条件を満たす最大値はMAXIFS 関数を使う。
この記事はGoogle Workspace 標準機能 Advent Calendar 2023の11日目の記事です。
こんにちは!ゆるふわクラウドおじさん こと、Teeda と申します。『Google アプリの教科書シリーズ』という本を毎年Amazon で販売していたり、YouTube チャンネルやUdemy で学習用動画を公開しています。
11日目の記事です。ゾロ目です。あとちょっとで折り返し地点です。
このアドベントカレンダーで公開した記事数が大きくなってきました。
LARGE になってきたんです。
このアドベントカレンダーのために公開した記事のうち、1番新しい記事って何日目のだろうな?って自分で確認したくなったとき、Google スプレッドシートの関数を使うと便利だというお話をします。
LARGE 関数で[X番目に大きい値]を求める。
LARGE 関数って、ご存知ですか?
指定した範囲の中から、指定した順位の数値を抽出します。
RANK 関数みたいなものですね。
RANK 関数は、指定した範囲の数値の中から、昇順か降順かで何番目にその数値が出現するかという順位を表示します。
LARGE 関数は、RANK 関数の逆みたいなものです。
=LARGE(A2:A100,1)
と入力すると、指定した範囲(A2:A100)の中から、指定した[1]番目に大きい値を出力します。

2番目に大きい値を出力したかったら、
=LARGE(A2:A100,2)
と入力します。
RANK とVLOOKUP を使わなくてもよい
たくさんの数値の中から、指定した順位の数値を抽出したい、というとき、
数値の列よりも左にRANK 関数を入力する列を追加
RANK 関数で、右側の数値が何位かを求める
VLOOKUP 関数で、順位に対応する元の数値を抽出する
=VLOOKUP(順位列と元の数値列の範囲,求めたい順位,2,0)
というやり方でも実現できます。
数値だけを抽出したいならば、上記のやり方は非効率です。
LARGE 関数の存在を知っていたら、
=LARGE(A2:A100,1)
これだけで、求めたい値が出力されます。
複数条件の最大値を求めたいならMAXIFS
LARGE 関数では、複数の条件を満たすデータの、指定した順位の数値を求めることはできません。
この記事のサンプルデータとして、
このアドベントカレンダーの記事一覧とステータスをまとめたGoogle スプレッドシートのファイルを用意しました。
ステータスが「公開済」の記事のうち、最新の記事はどれか。
を求めるということは、LARGE 関数ではできないのです。
最新の記事、つまり記事番号が最大であるというだけの要件では、
LARGE 関数、そしてMAX 関数でも対応できます。
=LARGE(A2:A100,1)
=MAX(A2:A100)
のどちらでも、指定した範囲の最大値を表示します。
ステータスが「公開済」という条件や、それ以外の複数の条件を指定するには、
MAXIFS という関数を使用します。
SUMIFS 関数や、AVERAGEIFS 関数というものもありまして、
指定した範囲のデータのうち。指定した条件を満たすものを処理対象とします。

=MAXIFS(A2:A100,B2:B100,"公開済")
と入力することで、指定した範囲であるA2セルからA100セルの数値のうち、
B2セルからB100セルまでの値が「公開済」であるデータのうち、
最大の値を表示するように定義できます。
複数条件を満たす指定した順位のデータを求められないの?
とても残念なことに、この記事を執筆中の2023年12月現在、Google スプレッドシートには「LARGEIFS」関数は用意されていません。
複数条件を満たす最大値(MAXIFS)なら求められるのですが・・・。
複数の条件を満たすかを、1つの関数で定義するのではなく、
元データの範囲の中から、複数の条件を満たしたデータセットを他のセルに抽出するという操作を行うことでなら実現できます。
FILTER 関数、フィルター、スライサー、なども活用して、
指定した条件のデータセットに対して、LARGE 関数で順位を指定してデータを抽出しましょう。
まとめ
Google Workspace 標準機能 Advent Calendar 2023の11日目の記事でした。
記事の数がだんだん増えてきてゴールが近づいてきていますが、それだけ記事にできるネタのストックがなくなっています。ネタの数がスモールになっていくので、12日目は LARGE 関数の対局のような、SMALL 関数について書くことにします。
Google Workspace 標準機能 Advent Calendar 2023のご参加者さん、お待ちしています。
25日目の記事のネタとしてアンケートにご協力ください
25日目の記事では、Google フォームの効率的な編集の仕方、集計データの便利な使い方などを解説します。読んでいただいた記事の満足度や、どのアプリケーションの記事があったらいい、などの数秒で終わるアンケートを作成しました。
この記事が面白かったら、ぜひ、ご協力ください。
面白くなかったら、こうやったほうがいいよ、というのをぜひアンケートでお伝えください。
この記事からの回答画面はこちら