乱数生成
技術文書
09/06/2026
=LET(
base, (COLUMN()-1)/2 * 100000,
seq, SEQUENCE(100000, 1, base),
rnd, SORTBY(seq, RANDARRAY(100000)),
TEXT(TAKE(rnd, 1000), "000000")
)
【解説】
(COLUMN()-1)/2
A列(1)なら 0、C列(3)なら 1… となり、自動で 0〜9 のベースの数字を作ります。
SEQUENCE(100000, 1, base)
そのベース数字から始まる10万件の連番(絶対に被らないマスターリスト)を裏側で生成します。
SORTBY(seq, RANDARRAY(100000))
その10万件の連番を、乱数を使ってシャッフルします。一般的な RANDBETWEEN だと偶然重複するリスクがありますが、この「連番をシャッフルする」方法なら絶対に重複しません。
TAKE(rnd, 1000)
シャッフルしたリストの上から1000件だけを抜き出します。
TEXT(..., "000000")
A列の「000000〜099999」の頭の0が消えないように、文字列としてフォーマットします。DBのVARCHAR扱いと同じですね!
もし「後続の処理の都合で、文字列じゃなくて数値型(INT)じゃないとダメ!」という場合は、数式内の TEXT(..., "000000") のラップを外して、セルの書式設定(表示形式)を「ユーザー定義 > 000000」にすればOKです!