重複のない一意の番号を自動生成します

重複のない一意の番号を自動生成します

列の 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() で機能することに注意してください。

ここに画像の説明を入力してください

関連情報