Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2010)
項目の自動並び替えをしたいです。
投稿日時: 18/06/13 14:00:55
投稿者: kana333

右の表(S〜V列)へ項目とランクをランダムに入力していくと、左の表(M〜P列)にランクが高い順に
反映され並んでいくようにしたいです。
また、ランクが同じ場合は行の上にあるのが、そのまま上になるようにしたいです。
 
※項目の列はそれぞれ(M・N・O)と(S・T・U)の3つずつのセルが結合されています。
 ランクは1行です。
 
よろしくお願いいたします。
 

	M	N	O	P	Q	R	S	T	U	V
64	項目			ランク			項目			ランク
65	G作業			5			C作業			3
66	C作業			3			B作業			2
67	F作業			3			A作業			2
68	B作業			2			G作業			5
69	A作業			2			F作業			3
70										
71										
72										
73

回答
投稿日時: 18/06/13 16:05:02
投稿者: んなっと

《作業列なし》
 
    M N O    P Q R   S T U    V
64  項目    ランク     項目    ランク
65 G作業       5    C作業       3
66 C作業       3    B作業       2
67 F作業       3    A作業       2
68 B作業       2    G作業       5
69 A作業       2    F作業       3
 
M65
=IF(P65="","",INDEX(S:S,AGGREGATE(15,6,ROW($65:$300)/(V$65:V$300=P65),COUNTIF(P$64:P64,P65)+1)))
下方向・↓
P65
=IFERROR(LARGE(V$65:V$300,ROW(P1)),"")
下方向・↓
 
《作業列あり》
 
    M N O    P Q R   S T U    V W
64  項目    ランク     項目    ランク  
65 G作業       5    C作業       3 2
66 C作業       3    B作業       2 4
67 F作業       3    A作業       2 5
68 B作業       2    G作業       5 1
69 A作業       2    F作業       3 3
 
M65
=IFERROR(INDEX(S:S,MATCH(ROW(M1),$W:$W,0)),"")
下方向・↓
P65
=IFERROR(INDEX(V:V,MATCH(ROW(P1),$W:$W,0)),"")
下方向・↓
W65
=IF(V65="","",RANK(V65,V$65:V$300)+COUNTIF(V$64:V64,V65))
下方向・↓

回答
投稿日時: 18/06/13 16:25:22
投稿者: んなっと

あと2010でしたら
 PowerQueryをインストール
→元の範囲をテーブルに変換
→クエリの編集でランク列を降順に並べ替え
といった方法も。
 
ただし、元の範囲が変更されたとき「更新」をクリックしないと反映されないので
自動というわけではありません。

投稿日時: 18/06/13 17:16:23
投稿者: kana333

できました!こんなにスムーズにできると思いませんでした。ビックリです。
本当に助かりました。しかも2つの関数を教えていただきありがとうございました。