ExcelでSUMPRODUCTという関数があり、数学で内積を計算する関数である。
一方で、複数条件の件数や合計を出すなど、データを抽出するのにも使えるような説明がある。SUMPRODUCT関数は数値以外の配列データは全て0と見なされる。TRUEまたはFALSEの論理値のままでは全て0と見なされるので、*演算子などであらかじめ演算しておくのがポイント。
以下、カテゴリを指定して最大値を求めるサンプル。
A列 B列
kim 2
kim 3
hon 209
hon 210
A列がカテゴリ、B列が数値の場合、以下の様な式でカテゴリ毎の最大値が求められます。
入力:=SUMPRODUCT(MAX((A1:A4="kim")*B1:B4))
出力:3
一見便利そうであるが、最小値は求められないという欠点を有する。それは条件を満たさず除外する値も全て0としてデータ集合に含まれてしまっているからである。このサンプルでMAXをMINにすると出力は0となる。
これを解決する手段が配列数式である。配列数式は入力後、[Ctrl]+[Shift]+[Enter]で確定する
入力:=MIN(IF(A1:A4="kim",B1:B4,""))、[Ctrl]+[Shift]+[Enter]で確定 → {}が付く。
<参考ページ>
Excel(エクセル)基本講座:SUMPRODUCT関数
OKWave、教えてgoo!など:Excelセル内の条件付最大値抽出方法で困っています。
“達人”芳坂和行氏に学ぶ、エクセル(Excel)「配列数式」講座
:第1回初めての「配列数式」 ①
一方で、複数条件の件数や合計を出すなど、データを抽出するのにも使えるような説明がある。SUMPRODUCT関数は数値以外の配列データは全て0と見なされる。TRUEまたはFALSEの論理値のままでは全て0と見なされるので、*演算子などであらかじめ演算しておくのがポイント。
以下、カテゴリを指定して最大値を求めるサンプル。
A列 B列
kim 2
kim 3
hon 209
hon 210
A列がカテゴリ、B列が数値の場合、以下の様な式でカテゴリ毎の最大値が求められます。
入力:=SUMPRODUCT(MAX((A1:A4="kim")*B1:B4))
出力:3
一見便利そうであるが、最小値は求められないという欠点を有する。それは条件を満たさず除外する値も全て0としてデータ集合に含まれてしまっているからである。このサンプルでMAXをMINにすると出力は0となる。
これを解決する手段が配列数式である。配列数式は入力後、[Ctrl]+[Shift]+[Enter]で確定する
入力:=MIN(IF(A1:A4="kim",B1:B4,""))、[Ctrl]+[Shift]+[Enter]で確定 → {}が付く。
<参考ページ>
Excel(エクセル)基本講座:SUMPRODUCT関数
OKWave、教えてgoo!など:Excelセル内の条件付最大値抽出方法で困っています。
“達人”芳坂和行氏に学ぶ、エクセル(Excel)「配列数式」講座
:第1回初めての「配列数式」 ①