• 締切済み

エクセル 均一に並び替え

例 a,a,a,b,b,b,b,c,d,d(a3b4c1d2) ↓ b,a,d,b,a,c,b,a,d,b 全10この内aは3個あるので3,5,7の位置。bは4こなので2,4,6,8。cは真ん中の5か6。dは4,7。 実際位置がかぶることもあるので多少ずれるのは構いません。 さらに同じ文字同士をランダムに並び替え出来れば言うことはありません。 よろしくお願いいたします。

みんなの回答

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

こんにちわ。 こんな手順ではどうですか? まず、項目数の多いものから処理する。 空いている両端に配置する。 残りをなるべく均等に配置する。 これを繰り返す。 実際に実行するときの、項目数と項目の種類はどれくらいあるのでしょうか。 同じ文字同士をランダムに並び替えの意味があいまいなのですが a,a,aはa1,a2,a3であり、組み合わせのときにランダムに配置するでいいですか。

回答No.1

う~ん…、「均一」の意味がかなり問題ですね…。距離が「一様」ということでしょうか?ランダムというわけではなく、同一データ間が概ね等距離ということだとしたら、Excel以前に、算数としてかなり難問になりそうな気がするのですが…。ランダムはバラバラではあるけれど、等距離とは違うので…。 単にランダムに並べ替えればいいというだけなら、たやすいです。A1:A10に「a,a,a,b,b,b,b,c,d,d」を入力し、B1に「=rand()」と入力し、下向きにオートフィル。RAND関数は再計算のたびに0以上1以下の乱数列を発生させるので、B列の値の大小でレコードを並べ替えれば、ランダムに並べ替えたことになります。

関連するQ&A