列の 1 つが希望する数字で固定され、別の列が最初の列にない数字をランダムに生成する場合、どのように数字を自動生成できますか? 重複した数字は不要です。
たとえば、1~10を2列に自動生成する必要があります。列A(固定数)
1
3
4
5
6
列B(乱数)
列 A に表示されないものを生成するにはどうすればよいでしょうか?
列Bには2、7、8、9、10が表示されます。
この数式を使用すると、1 から 10 までの 2 つの列に一意の番号を生成できますが、最初の列を修正する場合、2 番目の列の番号が列 A と重複しないようにするには、どのようにコーディングすればよいでしょうか。
=IF(ROW()-ROW(P$3)+1>$A$3/2,"",RANK(OFFSET($B$3,ROW()-ROW(P$3)+(COLUMN()-COLUMN($P3))*($A$3/2),),$B$3:INDEX($B$3:$B$1002,$A$3)))
2 つの列の目的は、現在のセッションと次のセッションを比較することです。ランダムな番号を生成し、INDEX を使用して名前を取得することを考えていましたが、まず別々の行で番号を取得し、重複しないようにする必要があります。
列 B/C/D は人員の情報のようなものです。
列 A では、列 L/M/N に影響する人員の合計を手動で入力できます。人員が 10 人いる場合は、列 L は 5 つのグループに応じて変更され、列 M と N もそれに応じて変更されます。
今のところ、私の数式では、列 A に挿入した 20 に基づいて、列 M と N の数値を自動的にシャッフルできます。これは変更できます。
問題は、N 列に表示された数字が重複しないように、M 列の数字をシャッフルすることです。
10 個の数字をランダムにシャッフルするのは一例です。リストは 50 個以上になる場合があります。手動で入力する代わりに、残りの数字を自動生成することは可能ですか?
答え1
まず、列 B の乱数を新しい列 H に書き込む必要があります (例: H1=2、H3=9...H5=7)。列 A は選択したままにして、列 B は生成された番号用にします。I1
に =Rand() と書き込んで下にドラッグし、乱数 <0 の行を 5 つ作成します。J1
に次の数式を書いて、列 I の Rand() 番号をランク付けします:
=RANK(I1,$I$1:$I$5,0)
これを J5 までドラッグすると、1 から 5 までの 5 つの番号が作成されます
。B1 に次のように書き込んで、
=OFFSET($H$1,J1-1,0)
B5 までドラッグすると、残りの 5 つの一意の番号がランダムに作成されます。
アップデート
数式 Rank と Offset を組み合わせて、B1 に次のように記述できます:
`=OFFSET($H$1,RANK(I1,$I$1:$I$5,0)-1,0)'
Rank は、数字がある列 H ではなく、列 I の Rand() で機能することに注意してください。