【複数一致するデータからの抽出】最新データを抽出する方法4 -DL有-
今回は、複数一致するデータの中から最新の情報を抽出する方法4を紹介します。
いくつか方法はありますが、「INDEX関数」「MATCH関数」「MAXIFS関数」を組み合わせます。
【複数一致するデータからの抽出】最新データを抽出する方法1 -DL有- では、
IF関数とMAX関数を組み合わせた方法でした。
MAXIFS関数を使用することで、よりシンプルかつ効率的に目的のデータを取得できます。
MAXIFS関数とは、IF関数とMAX関数が融合したような関数のようなものだからです。
他の方法に興味がある方は以下を見てみてください。
- 【複数一致するデータからの抽出】最新データを抽出する方法1 -DL有-
- 【複数一致するデータからの抽出】最新データを抽出する方法2 -DL有-
- 【複数一致するデータからの抽出】最新データを抽出する方法3 -DL有-
- 【複数一致するデータからの抽出】最新データを抽出する方法4 -DL有-
目次
シナリオ
A社の受注履歴が記録されたデータを想定します。
複数の受注データの中から、最新の受注番号を取得しようと思います。
目標は、この表から最新のA社の受注番号(この例では1004)を抽出することです。
解答
関数式
=INDEX(B2:B6, MATCH(MAXIFS(C2:C6, A2:A6, “A社”), C2:C6, 0))
関数式の説明
ざっくり言うと・・・
“A社”と一致する行の中で最大値を持つ行の、B2:B6の値を取得しています。
IF関数とMAX関数を組み合わせた方法に比べ、
MAXIFS関数一つで完結するため、明快です。
細かく説明すると・・・
下図は関数式の構造図です。構造図に沿って、説明します。
関数は引数で構成されているため、引数に分解すると分かりやすいです
上図を沿って、関数式を解説します。
ステップ1:MAXIFS関数の使用
まず、MAXIFS関数を使用して、特定の条件を満たす範囲内で最大値を見つけます。
この例では、範囲は C2:C6 で、条件範囲は A2:A6 で、条件は “A社” です。
つまり、A2:A6の範囲で”A社”と一致する行の中で、C2:C6の範囲の最大値を見つけます。
MAXIFS関数のお作法は以下を参考にしてください。
ステップ2:MATCH関数の使用
次にMATCH関数を使用して、
ステップ1で見つけた最大値がC2:C6の範囲のどの位置にあるかを見つけます。
MATCH関数の照合の種類は 0 です。これは、完全一致を意味します。
MATCH関数のお作法は以下を参考にしてください。
ステップ3:INDEX関数の使用
最後に、INDEX関数を使用して、
B2:B6の範囲から、ステップ2で見つけた位置の値を取得します。
これが最終的な結果となります。
具体的には、“A社”と一致する行の中で最大値を持つ行の、B列の値を取得しています。
以上のステップを踏むと、以下の関数式が完成されます。
【再掲】=INDEX(B2:B6, MATCH(MAXIFS(C2:C6, A2:A6, “A社”), C2:C6, 0))
INDEX関数のお作法は以下を参考にしてください。
最後に
特定の条件にマッチする最新のデータを抽出する方法を紹介しました。
MAX関数をMIN関数にすれば、最も古い日付のデータを取得できます。
様々な条件で、データ抽出できるため、是非応用してみてください。
解答付きサンプルデータ
解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。