2025年1月1日【ID:0】
【Excel】直近の退会者を表から自動抽出
以下の左側の表は、会員一覧表になっており、各会員の加入日と退会日を記録しています。
この表の退会日が入力されている会員の中で、直近の退会者を右側の表に3件のみを自動で抽出する方法について解説していきます。
直近の退会者を自動抽出する流れ
直近の退会者を抽出する流れは、以下になります。
① 会員一覧表の退会日を基準に降順にする
② ①で降順にされた会員一覧表の先頭から3件を抽出する
では、上記の流れを数式で表現していきます。
① 会員一覧表の退会日を基準に降順にする
指定した表を指定した順番に並べ替えるには、『SORT関数』を活用します。
SORT関数の使い方は、以下になります。
=SORT(配列, [並べ替えインデックス], [並べ替え順序], [並べ替え基準])
// 指定した配列を指定した順序に並べ替えた表を返す
// 配列:対象の表
// [並べ替えインデックス]:対象の表の中の、対象の列(行)の、表の先頭からの列(行)番号 ※省略時は先頭列(行)
// [並べ替え順序]:1→昇順、-1→降順 ※省略時は昇順
// [並べ替え基準]:TRUE→列で並べ替え、FALSE→行で並べ替え ※省略時は行で並べ替え
実際に、右側の表の先頭に、左側の会員一覧表の退会日を降順にした表を抽出する場合、以下の数式になります。
=SORT(A3:D1000,4,-1)
// 表の範囲は大きめに指定
② ①で降順にされた会員一覧表の先頭から3件を抽出する
指定した表の先頭から指定した件数を抽出するには、『TAKE関数』を活用します。
TAKE関数の使い方は、以下になります。
=TAKE(配列, 行数, [列数])
// 指定した配列から指定した行数(列数)を抽出する
// 配列:対象の表
// 行数:抽出する行数(正の数:上から抽出、負の数:下から抽出)
// [列数]:抽出する列数(正の数:上から抽出、負の数:下から抽出)
// ※[列数]は省略可能、省略時は全ての列を抽出
TAKE関数の[配列]に、①の数式を指定し、[行数]に3件分の3を指定することで、以下のように抽出することができます。
=TAKE(SORT(A3:D1000,4,-1),3)
補足
表の範囲を「A3:D1000」などではなく、データの増減に対応した範囲にしたい場合は、会員一覧表をテーブルにすると良いです。
テーブルに変換することで、以下のように、構造化参照を活用して数式を作成することができ、データの増減に対応することができます。
=TAKE(SORT(会員一覧表,4,-1),3)