[[20091003101921]] 『複数グループに対し順番を飛ばさない順位付けをし』(memento) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『複数グループに対し順番を飛ばさない順位付けをしたい』(memento)

[[20061207150413]]の『グループ別の順位』が近いのですが、

   A      B      C       D    E
1  地域  担当  商品    売上 順位
2  関東  田中  りんご  100
3  九州  児玉  みかん    50
4  東北  藤田  アボガド  70
5  九州  遠藤  りんご    20
6  関東  田中  なし      80

 たとえばこんな表で、A列とB列で絞り込みをし、D列の数字に従って
数字の大きいほうから順位付けを行いたいのです。
 これだけならSUMPRODUCTで出来るのですが、順番を飛ばさないように
順位付けをしたいのです。

よろしくお願いします。


 具体的に、
 どこでどの様に絞り込みを行った場合
 どのセルがどの順位になるのか

 また、
 >絞り込みを行う
 とはどういったことなのか
  オートフィルタなどを使用?
  単に○○で××の と条件を付けるだけ?

 等、書いておかれるのが良いのではないかと思います。

 (HANA)

 たとえば、担当の「田中」で順位付けをした場合、他の地域でも同名の人がいると
順位付けがおかしくなります。
 ですのでそのダブりを地域で分ける事で避けたいのです。
 オートフィルタを使用するのではなく、E列に、関数で処理した順位が表示されるようにしたいと思っています。

 これを最初はE=SUMPRODUCT(($A$2:$A$100=A2)*($B$2:$B$100=B2)*($D$2:$D$100>D2))+1
という式で出そうとしたのですが、これだと同順位がある場合、次の順位はその分だけ
飛んでしまいます(例:1位、2位、2位、4位)

 ですので、(例:1位、2位、2位、3位)といったように表示したいのですが・・

 >たとえば、担当の「田中」で順位付けをした場合、他の地域でも同名の人がいると
 >順位付けがおかしくなります。

 >これだと同順位がある場合、次の順位はその分だけ
 >飛んでしまいます(例:1位、2位、2位、4位)
 >ですので、(例:1位、2位、2位、3位)といったように表示したいのですが・・

 でしたら、最初に載せて居られるデータでは
 不十分ですよね。

 データを作るのは大変ですが
 どんなデータが在って、どんな結果になればよいのか
 見せて説明する事が出来れば
 より伝わりやすいですし
 こちらでサンプルデータを作成する必要もなくなるので
 コメントも付きやすいと思います。

 さて、G:H列に作業列を作成する方法です。
	[A]	[B]	[C]	[D]	[E]	[F]	[G]	[H]
[1]	地域	担当	商品	売上	順位		作業列1	作業列2
[2]	関東	田中	りんご	100	1		100	1
[3]	九州	児玉	みかん	50				
[4]	東北	藤田	アボガド	70				
[5]	九州	遠藤	りんご	20				
[6]	関東	田中	なし	80	2		80	2
[7]	四国	田中	みかん	90				
[8]	関東	田中	なし	80	2			
[9]	関東	田中	なし	70	3		70	3
[10]	九州	遠藤	みかん	30				
 G2セルに
=IF(SUMPRODUCT(($A$2:A2="関東")*($B$2:B2="田中")*($D$2:D2=D2))=1,D2,"")
 H2セルに
=IF(G2="","",RANK(G2,$G$2:$G$10))
 E2セルに
=IF(AND(A2="関東",B2="田中"),VLOOKUP(D2,$G$1:$H$10,2,FALSE),"")

 それぞれ10行目までフィルドラッグ。

 (HANA)

 サンプルデータを広げて作って下さり、お手数をおかけしました。
 仰る通り、もう少し丁寧に質問しなければいけませんね。

 ところで、この方法だと「関東」「田中」に限って順位付けすることは出来るのですが
 全ての場合に対して順位付けは出来ませんよね?

 例えば、
    A    B    C   D 
1  グループ1  グループ2 得点 順位
2  あああ  AAA  50  2
3  あああ  AAA  90  1
4  あああ  AAA  50  2
5  あああ  BBB  100  1
6  あああ  BBB  50  2
7  いいい  AAA  20  2
8  いいい  AAA  70  1
9  いいい  BBB  10  1
10 いいい  CCC  40  2
11 いいい  CCC  90  1
12 ううう  AAA   50  1
13 ううう  BBB  190  1
14 ううう  BBB  10  3
15 ううう  BBB  60  2
16 ううう  BBB  60  2
  ・    ・    ・
  ・    ・    ・
  ・    ・    ・

 ちょっと表を簡略化したのですが、こういった感じで順位付けをしたいのです。
 如何でしょうか?

 データ量によって
 検討が必要かもしれませんが
	[A]	[B]	[C]	[D]	[E]	[F]	[G]
[1]	グループ1	グループ2	得点	順位		作業列1	作業列2
[2]	あああ	AAA	50	2		50	2
[3]	あああ	AAA	90	1		90	1
[4]	あああ	AAA	50	2		0	3
[5]	あああ	BBB	100	1		100	1
[6]	あああ	BBB	50	2		50	2
[7]	いいい	AAA	20	2		20	2
[8]	いいい	AAA	70	1		70	1
[9]	いいい	BBB	10	1		10	1
[10]	いいい	CCC	40	2		40	2
[11]	いいい	CCC	90	1		90	1
[12]	ううう	AAA	50	1		50	1
[13]	ううう	BBB	190	1		190	1
[14]	ううう	BBB	10	3		10	3
[15]	ううう	BBB	60	2		60	2
[16]	ううう	BBB	60	2		0	4

 F2
=IF(SUMPRODUCT(($A$2:A2=A2)*($B$2:B2=B2)*($C$2:C2=C2))=1,C2,0)
 G2
=SUMPRODUCT(($A$2:$A$16=A2)*($B$2:$B$16=B2)*($F$2:$F$16>=F2))
 D2
=SUMPRODUCT(($A$2:$A$16=A2)*($B$2:$B$16=B2)*($F$2:$F$16=C2),$G$2:$G$16)

 16行目までフィルドラッグ。

 (HANA)

 こちらの質問が情報不足の為に、何度も回答して頂く事になってしまいました。
 すみません。ありがとうございました。

 1000件程度のデータなので大丈夫でした。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.