3/29/2020

Excel。最新納品日を確認するにはDMAX関数ではなくMAXIFS関数の出番です。【MAXIFS】

Excel。最新納品日を確認するにはDMAX関数ではなくMAXIFS関数の出番です。

<DMAX関数・MAXIFS関数>

納品一覧データがあって、それぞれの商品ごとの最新納品日を管理する場合、なかなか大変でした。
例えば、次のような表で考えてみます。

A1:B11に納品一覧データがあり、D1:E5には商品ごとの最終納品日が表示されています。

Excelは、データベース内で最初に登場するデータ。

要するに一件目のデータを抽出するのは、比較的簡単なのですが、最終。
すなわち最新のデータというのは、おおむね複数回登場しているわけです。

そこで、データベース内から関数を使って最終納品日を抽出するのは、DMAX関数を使う方法がありました。

しかしながら、このDMAX関数は事前に、条件となるフィールドを用意しておかないといけないとか、使用するのに準備がいるので少々面倒な関数です。

では、E2にDMAX関数をつかって、数式を設定していきます。

E2をクリックして、DMAX関数ダイアログボックスを表示します。

データベースには、$A$1:$B$11を設定します。データベース全体ですね。

フィールドは、納品日の最大値を算出したいので、$B$1。

条件ですが、この条件は、見出しのフィールドと抽出したい条件が上下で隣接している必要があります。

今回は、商品名ごとの最終納品日を算出したいので、D1:D2を設定します。

OKボタンをクリックして結果を確認してみましょう。

最終納品日が抽出されました。

ここまでは、以前からあるDMAX関数を使った方法なのですが、この関数欠点があって、引数の条件が、見出しフィールドをセット。
隣接していないといけないわけです。
なので、今回のように複数の商品がある場合、オートフィルで数式をコピーしても機能しません。

ところが、Office365のExcelとExcel2019で新しく加わった【MAXIFS関数】が登場したことで、DMAX関数の問題も解決し、数式自体の設定も簡単になりました。

【MAXIFS関数】

では、改めて、E2にMAXIFS関数の数式を作っていきます。MAXIFS関数ダイアログボックスを表示します。

最大範囲には、
$B$1:$B$11
オートフィルで数式をコピーするので、絶対参照は忘れずに設定します。

条件範囲1には、$A$1:$A$11
こちらも、オートフィルで数式をコピーするので、絶対参照を設定します。

そして、条件範囲1の対になる条件が、D2です。
OKボタンをクリックして、オートフィルで数式をコピーしてみましょう。

E2の式は、
=MAXIFS($B$1:$B$11,$A$1:$A$11,D2)

このように、商品名ごとの最終納品日を確認することができました。

最近新しく加わった関数によっては、いままで面倒だったことが改善されているかもしれないので、確認してみるといいかもしれませんね。