Excelトップ10の営業担当者

Excelトップ10の営業担当者

営業担当者別の売上を記録したスプレッドシートがあります。

   A      B             C        D
1  ID    Name        Product  Sales($)   
2  1    John Smith   Toaster   250
3  2    Dina Caan    Kettle    450
4  1    John Smith   Kettle    450
5  1    John Smith   Kettle    250
6  2    Dina Caan    Toaster   250
7  3    Peter Hues   TV        5400
8  3    Peter Hues   Radio     480
9  2    Dina Caan    Radio     100
10 4    Ralph Do     TV        890
11 4    Ralph Do     Radio     100
12 5    Ian Poe      Watch     750
13 6    Tina Hood    TV        450 
14 7    Peter Maan   Watch      99

F に、ID 名 TotalSales($) という見出しが付いた、売上高上位 n (たとえば 3) 人の営業担当者を表示する数式ベースのテーブルを作成したいです。

ピボット テーブルを使用してこれを簡単に実行し、上位 n をフィルター処理できますが、この例では数式を使用して実行したいと思います。

編集: 結果表から製品を削除しました。

答え1

Excel の新しい動的配列数式を使用すると、ピボット テーブルを構築しなくても結果を得ることができますが、いくつかのヘルパー セルが必要になります。次のスクリーンショットをご覧ください。

ここに画像の説明を入力してください

F2 の数式は =UNIQUE(B2:B14)コピーされません。

G2 の数式は=SUMIFS($D$2:$D$14,$B$2:$B$14,UNIQUE(B2:B14))コピーされません。

=INDEX(SORTBY(F2#,G2#,-1),{1;2;3})総売上高による上位 3 人の営業担当者の順位は、コピーダウンしないI2 の式を使用して導き出すことができます。

動的配列は数式で必要な範囲で「スピル」し、動的配列の数式セルを参照するとそのスピルが継承されます。つまり、次回新しい営業担当者が加わった場合、列 F の一意の名前のリストを更新する必要はありません。数式によって自動的に更新されます。

答え2

売上上位の順位を取得するには、次の配列数式を使用します。

=LARGE(MODE.MULT(IF(MATCH($B$2:$B$14,B:B,0)=ROW($B$2:$B$14),SUMIFS(D:D,B:B,$B$2:$B$14)*{1,1})),ROW(1:1))

配列数式であるため、編集モードを終了するときは Enter キーではなく Ctrl + Shift + Enter キーで確定する必要があります。

ID と名前を取得するには、別の配列数式を利用できます。

=INDEX(A:A,MATCH($I2,SUMIFS($D:$D,$B:$B,$B$2:$B$14),0)+1)

また、Ctrl + Shift + Enter を押して、上から下にコピーする必要があります。

ここに画像の説明を入力してください

関連情報