【複数一致するデータからの抽出】最新データを抽出する方法4 -DL有-

複数一致するデータからの抽出:最新データを抽出する方法 -ダウンロードファイ-,INDEX,match,maxifs,アイキャッチ画像


今回は、複数一致するデータの中から最新の情報を抽出する方法4を紹介します。
いくつか方法はありますが、「INDEX関数」「MATCH関数」「MAXIFS関数」を組み合わせます。

【複数一致するデータからの抽出】最新データを抽出する方法1 -DL有- では、
IF関数とMAX関数を組み合わせた方法でした。
MAXIFS関数を使用することで、よりシンプルかつ効率的に目的のデータを取得できます。

MAXIFS関数とは、IF関数とMAX関数が融合したような関数のようなものだからです。

他の方法に興味がある方は以下を見てみてください。

シナリオ

A社の受注履歴が記録されたデータを想定します。

複数の受注データの中から、最新の受注番号を取得しようと思います。

目標は、この表から最新のA社の受注番号(この例では1004)を抽出することです。


解答

関数式

=INDEX(B2:B6, MATCH(MAXIFS(C2:C6, A2:A6, “A社”), C2:C6, 0))

関数式の説明

ざっくり言うと・・・

“A社”と一致する行の中で最大値を持つ行の、B2:B6の値を取得しています。

IF関数とMAX関数を組み合わせた方法に比べ、
MAXIFS関数一つで完結するため、明快です。

細かく説明すると・・・

下図は関数式の構造図です。構造図に沿って、説明します。

関数は引数で構成されているため、引数に分解すると分かりやすいです

上図を沿って、関数式を解説します。

ステップ1:MAXIFS関数の使用
複数一致するデータからの抽出:最新データを抽出する方法 -ダウンロードファイ-,INDEX,match,maxifs関数式の図解

まず、MAXIFS関数を使用して、特定の条件を満たす範囲内で最大値を見つけます。
この例では、範囲は C2:C6 で、条件範囲は A2:A6 で、条件は “A社” です。

つまり、A2:A6の範囲で”A社”と一致する行の中で、C2:C6の範囲の最大値を見つけます。

MAXIFS関数のお作法は以下を参考にしてください。

ステップ2:MATCH関数の使用
複数一致するデータからの抽出:最新データを抽出する方法 -ダウンロードファイ-,INDEX,match,maxifs関数式の図解

次にMATCH関数を使用して、
ステップ1で見つけた最大値がC2:C6の範囲のどの位置にあるかを見つけます。

MATCH関数の照合の種類は 0 です。これは、完全一致を意味します。

MATCH関数のお作法は以下を参考にしてください。

ステップ3:INDEX関数の使用
複数一致するデータからの抽出:最新データを抽出する方法 -ダウンロードファイ-,INDEX,match,maxifs関数式の図解

最後に、INDEX関数を使用して、
B2:B6の範囲から、ステップ2で見つけた位置の値を取得します。

これが最終的な結果となります。

具体的には、“A社”と一致する行の中で最大値を持つ行の、B列の値を取得しています。

以上のステップを踏むと、以下の関数式が完成されます。

【再掲】=INDEX(B2:B6, MATCH(MAXIFS(C2:C6, A2:A6, “A社”), C2:C6, 0))


INDEX関数のお作法は以下を参考にしてください。

最後に

特定の条件にマッチする最新のデータを抽出する方法を紹介しました。

MAX関数をMIN関数にすれば、最も古い日付のデータを取得できます。

様々な条件で、データ抽出できるため、是非応用してみてください。

解答付きサンプルデータ

解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。