• 締切済み

randやrandbetweenを降順で並び替える

rand関数やrandbetween関数で出した乱数を昇順または降順に並び替える方法はありますか。 普通の並べ替えでは並べかえた瞬間に値が更新されて実質並び替えられていない,という状態になってしまいます。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

RAND関数やRANDBETWEEN関数は、シートに変更を加えると再計算してしまいますので、その列そのものを昇順などに並べ替えることはできません。 数式のまま対応するなら、計算方法を手動にして、再計算が必要な時だけF9キーで対応する方法しかありませんが、再計算したデータを昇順などに並べ替えたいということなら、RAND関数などを入力した列(たとえばA列)は非表示にしておいて、別の列(実際は昇順に並べ替えたい列)に以下のような数式を入力すれば、乱数を並べ替えたデータを得ることができます。 =SMALL(A:A,ROW(A1))

  • asciiz
  • ベストアンサー率70% (6809/9681)
回答No.1

それは基本的にそういうものです。再計算が走るたびに、randの値は変わります。 その仕組みは変えられません。 その上で、並べ替える方法はいくつかあります。 方法その1。 rand()による値が設定されたら、それをコピーして、別の行に「値で張り付け」を実行してください。 そしてその値でソートしてください。 方法その2。 ファイル-オプション、「数式」カテゴリの計算方法の設定で、「自動」から「手動」に変更します。 そうすると、[F9]キーで更新するまで rand() が再計算されないので、ソートすることができます。

関連するQ&A