【複数一致するデータからの抽出】最新データを抽出する方法3 -DL有-
今回は、複数一致するデータの中から最新の情報を抽出する方法2を紹介します。
方法1は『【複数一致するデータからの抽出】最新データを抽出する方法1 -DL有-』
方法2は『【複数一致するデータからの抽出】最新データを抽出する方法2 -DL有-』
本記事はFILTER関数+MAXIFS関数を軸とした方法です。
他の方法に興味がある方は以下を見てみてください。
- 【複数一致するデータからの抽出】最新データを抽出する方法1 -DL有-
- 【複数一致するデータからの抽出】最新データを抽出する方法2 -DL有-
- 【複数一致するデータからの抽出】最新データを抽出する方法3 -DL有-
- 【複数一致するデータからの抽出】最新データを抽出する方法4 -DL有-
目次
シナリオ
A社の受注履歴が記録されたデータから、最新の受注番号を効率的に抽出する方法をステップバイステップで紹介します。
解答
関数式
=FILTER(B2:B6, (A2:A6=”A社”) * (C2:C6 = MAXIFS(C2:C6, A2:A6, “A社”)))
上記関数により、A社の最新日付の受注番号の1004が抽出されます。
関数の説明
FILTER関数1とMAFIFS関数2で、条件に応じたデータを抽出します。
大きな流れは以下です。
ステップ1: データ範囲の指定
まずは、FILTER
関数で抽出したいデータの範囲を指定します。
この例では、B2:B6
が受注番号が格納されている範囲です。この範囲から最終的にデータが抽出されます。
ステップ2: 条件の設定
(A2:A6="A社") * (C2:C6 = MAXIFS(C2:C6, A2:A6, "A社")))
により、抽出するデータを特定する条件を設定します。
この条件は3つから構成されています。
ステップ2a: A列が「A社」であることの確認
A2:A6="A社"
を用いて、A列が「A社」である行を識別します。
この式は、範囲内の各セルが「A社」に一致するかどうかを評価し、結果として真偽値の配列を返します。
「=」演算子は個別のセルだけの機能でありません。
セル範囲(配列)全体に対する一括比較が可能です。
ステップ2b: C列が最新の日付であることの確認
MAXIFS(C2:C6, A2:A6, "A社")
は、A列が「A社」である行に限定して、
C列の最大値(最新日付)を見つけ出します。これにより、A社の中から最新日付が特定されます。
ステップ2c: 条件の論理積
ステップ2aとステップ2bにより、2つの条件が設定されたら、(A2:A6="A社") * (C2:C6 = MAXIFS(C2:C6, A2:A6, "A社"))
により、*演算子を使用してこれらを結合します。
この論理積により、両方の条件を満たす行のみがFILTER関数によって抽出されます。
この乗算は、両方の条件が
- 両条件がTRUE ⇒ TRUE(または数値で1)
- それ以外 ⇒ FALSE(または数値で0) を返す論理AND演算と同じです。
これらのステップを踏まえ、以下の関数式が完成します。
=FILTER(B2:B6, (A2:A6=”A社”) * (C2:C6 = MAXIFS(C2:C6, A2:A6, “A社”)))
この式により、A列が「A社」であり、かつC列の日付が最新である行のB列、
すなわち受注番号が抽出されます。
最後に
特定の条件にマッチする最新のデータを抽出する方法を紹介しました。
MAX関数をMIN関数にすれば、最も古い日付のデータを取得できます。
様々な条件で、データ抽出できるため、是非応用してみてください。
解答付きサンプルデータ
解答付きサンプルデータが欲しい方は、下記からダウンロードしてください。