工作好きな情報系の雑記

[Excel]Macで複数の条件に合う数値の中の最小値を求める方法

普通に最小値を求めるならMIN関数、一つだけの条件ならDMIN関数が使えるんだけど、複数条件を指定した上での最小値を求める関数が欲しくなった。

Windowsの場合はMINIFS関数とかいうものがあるらしい。
これなら複数の条件を指定できる。
これをMacのExcelでも使えれば良かったんだけど、残念ながらmacのExcelには入ってない。

その代わり、配列数式というもので目的を達成できることが分かった。

例えば、下の表では1組男子の最低点をF4に表示している。

このときF4には以下のような数式が入力されている。

=MIN(IF((B3:B11=F2)*(C3:C11=F3), D3:D11, ""))

IFの条件部で「1組」と「男」を指定していて(「*」はいわゆるANDと同じ意味)、TRUEの処理部で得点の列を返している。FALSEでは空白文字を返している。

配列数式でこのように表記すると、Excelは指定した範囲の中でそれぞれの行でIFの計算をしてくれるらしい(だから、指定する範囲の行数は全て合わせないといけない)。
つまり、もし条件部がTRUEなら、対応した行の得点を返してくれ、FALSEなら空白文字を返してくれる。
空白文字はMIN関数では集計対象に入らないので、最終的に条件に合致した人の得点だけがMIN関数の集計対象になる、という具合らしい。
結局MIN関数がやっているのは以下の画像と同じようなこと。

なんとも不思議な感じだけど、便利だ。

ちなみにこの配列数式を用いる時は、数式を入力してCtrl+Shift+Enterキーで確定しないと正しく動作しない。
いつも通りEnterキーで確定するのでは正しく数式が動作しないので要注意だ。

SMALL関数を使用し、最小値を求めようと思ったのですが、以下のように複数条件で絞り込んで最小値を出したいと思います。(A-Bの組み合わせ毎の最小値を出す)A  B  C東京 渋谷 1000東京 ... - その他(Microsoft Office) 解決済 | 教えて!goo
エクセル 複数の条件付で最小値を求めたい - 教えて!goo
モバイルバージョンを終了