VLOOKUPで個数を求めたい。 IFERROR(ROWS(UNIQUE(FILTER…関数とは
こんにちは。今回は条件に合致するデータの個数を重複なしで取得する関数(組み合わせ)を紹介します。
こういった表で指定納期が2023/12/31~2024/3/31で発注された商品は何種類あるかを求めたいとします。使うべき関数はこうです。
=IFERROR(ROWS(UNIQUE(FILTER($B$1:$B$42,($D$1:$D$42>=$R$3)*($D$1:$D$42<=$S$3)))),0)
上記は4関数を組み合わせていますので解説します。
上記画像のL~O列にはそれぞれ関数が入っています。
順にL:=FILTER($B$1:$B$42,($D$1:$D$42>=$R$3)*($D$1:$D$42<=$S$3))
M:=UNIQUE(FILTER($B$1:$B$42,($D$1:$D$42>=$R$3)*($D$1:$D$42<=$S$3)))
N:=ROWS(UNIQUE(FILTER($B$1:$B$42,($D$1:$D$42>=$R$3)*($D$1:$D$42<=$S$3))))
O:=IFERROR(ROWS(UNIQUE(FILTER($B$1:$B$42,($D$1:$D$42>=$R$3)*($D$1:$D$42<=$S$3)))),0)
まずLにはフィルター関数が入っています。D列の指定納期がR3(2023/12/31),S3(2024/01/29)セルの範囲内にあるB列(商品名)が抽出されます。指定納期が範囲内にあるのは7点。ですから7点抽出されるというわけです。
ではUNIQUE関数を付け加えてみましょう。すると7点の内、重複を除いた4点が抽出されます。しかしこれでは商品名が表示されただけで商品数は分かりません。
そこでROWS関数を加えることで数は表示させることができます。IFERRORはエラー回避のためです。
どうでしょうか。COUNTIFだと条件と求めたいものが同じ列にある時にしか使えませんが上記の関数では他列を条件にして個数だけを求めることが可能です。検索してもほとんどでてこないが有用と思われる関数ですのでご紹介いたしました。
コメント