PCメモ

Excelを中心とした業務改善の記録

グループごとの順位「SUMPRODUCT関数」

 

 

都道府県別に何月の売上金額が多かったのか順位をつける。

(例)北海道 1位:6月 2位:4月 3位:5月

 

f:id:abv72:20220125145441p:plain

f:id:abv72:20220125154012p:plain

 

SUMPRODUCT関数

対応する配列の合計を返す関数。
配列を乗算し、最後に1を足すことでグループ内での順位を出している。

Microsoft「SUMPRODUCT関数について」

↓D1セルには2が表示するようにしている。(北海道の中で507が2番目に大きいから)

f:id:abv72:20220125145956p:plain

 

D2セルに「=SUMPRODUCT*1+1」と入力している。

SUMPRODUCT関数の「引数1」に「+1」をすることで順位2を求めている。

f:id:abv72:20220125151008p:plain


配列について

SUMPRODUCT(($B$2:$B$10=B2)*($C$2:$C$10>C2))の結果は、

{0;0;0;0;0;0;0;1;0}となっている。このままだと1が表示されるだけ。

 

($B$2:$B$10=B2)について

$B$2:$B$10の範囲とB2が一致しているかどうかを判別している。
一致していればTRUE=1、不一致の場合はFALSE=0となる。
{1;0;0;1;0;0;0;1;0}となる。

f:id:abv72:20220125151828p:plain

 

($C$2:$C$10>C2)について

$C$2:$C$10の範囲でC2よりも大きい数値があるかどうか判別している。
大きければTRUE=1、小さければFALSE=0となる。
{0;0;1;0;0;1;1;1;1}となる。

↓C2(507)より大きいのは769,677,533,666,537の5つ。

f:id:abv72:20220125152126p:plain

 

SUMPRODUCT(($B$2:$B$10=B2)*($C$2:$C$10>C2))

SUMPRODUCT({1;0;0;1;0;0;0;1;0}*{0;0;1;0;0;1;1;1;1})

 →1

グループ北海道の中で507より大きい数字は666の1つのみ。
つまり507は2番目に大きい数字ということになる。

順位をつける為最後に+1をしている。

 

一覧表作成

それぞれ順位をつけたものを表に反映させる。

f:id:abv72:20220125153341p:plain

それぞれキーを作成し、INDEXMATCHで表示させる。

f:id:abv72:20220125153731p:plain




 

 

*1:$B$2:$B$10=B2)*($C$2:$C$10>C2