- 締切済み
エクセルの関数やマクロだけで、ランダムな並べ替えをするには?
エクセルの機能である[データ]-[並べ替え]操作を使わずに、 ランダムなデータの並べ替えをするには、どうしたらいいでしょうか? 例: E列の乱数結果より、D列の内容をB列に並べ替え表示 A B C D E F 1 順位 名称 C 場所 乱数 2 1 青森 5 3 2 埼玉 1 4 3 長野 3 5 4 福井 2 6 5 大分 4 7 ↓ A B C D E F 1 順位 名称 C 場所 乱数 2 1 埼玉 青森 5 3 2 福井 埼玉 1 4 3 長野 長野 3 5 4 大分 福井 2 6 5 青森 大分 4 7 B列への関数入力または簡単なマクロを教えていただけると助かります。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
(関数) 乱数と順位の数と内容が一致しておれば B2に =INDEX($D$2:$D$6,MATCH(ROW()-1,$E$2:$E$6,0),1) でもできます。 式をB6まで複写 結果 順位 名称 C 場所 乱数 1 埼玉 青森 5 2 福井 埼玉 1 3 長野 長野 3 4 大分 福井 2 5 青森 大分 4 ============ (VBA) VBAでユーザー関数で Function fn(n) Set r = Range("E1:E100").Find(n) fn = r.Offset(0, -1) End Function シートのB2に =fn(A2) と入れて、B6まで式を複写する。 結果 上記B列と同じ。
- maron--5
- ベストアンサー率36% (321/877)
◆これでもいいですよ B2=INDEX($D$2:$D$6,MATCH(A2,$E$2:$E$6,0))
- cafe_au_lait
- ベストアンサー率51% (143/276)
B2:=INDEX($D$2:$D$6,MATCH($B2,$E$2:$E$6,FALSE)) 下へコピーしてください。
- n-jun
- ベストアンサー率33% (959/2873)
B2 =INDEX($D$2:$E$6,MATCH(A2,$E$2:$E$6,0),1) で下にフィルコピーと言う事でしょうか?