Spreadsheetでランダムな数字や文字列を作成する方法
Spreadsheetでランダムな数字や文字列を作成したいことがあったので、やり方をまとめておきます。
文字列に関してはもう少しラクにできるといいのですが…
ランダムな数字の生成
ランダムな数字の生成にはRAND()関数を使用します。
RAND()関数を使用すると、0〜1の間でランダムな数字が生成されます。
桁数を上げたい場合はRNAD()に10や100などの数字をかけてあげれば、桁数は上がっていきます。
=RAND() * 10000
ただ、このままでは小数点が残ってしまうので、切り上げをしたい場合はROUNDUP()、切り下げをしたい場合はROUNDDOWN()で囲ってあげます。
=ROUNDUP(RAND() * 10000), 0)
ちなみにROUNDUP()やROUNDDOWN()は、第二引数で小数何桁まで表示させるか指定できます。
小数点が不要な場合は「0」、小数点以下1桁まで必要な場合は「1」を指定してあげればOKです。
指定した範囲の中からランダムな数字を生成したい
RAND()を使った方法だと、完全にランダムな数字になってしまいます。
「指定した範囲の中から生成したい!」「必ず4桁の数字をランダムで生成したい!」という場合は、RANDBETWEEN()を使用します。
使用方法は、第一引数に下限、第二引数に上限の数字を入力するだけです。
=RANDBETWEEN(1000,9999)
上記の場合は、「1000から9999の数字の中からランダムで数字を生成する」ことになるので、必ず4桁の数字が生成されます。
ランダムな文字列の生成
ランダムな文字列を生成したい場合は、いろんな関数を組み合わせて生成する必要があります。
まずは生成する文字列に含める文字を、別のセルに用意しておきます。
下記の中から使用する生成元をコピーして貼り付けましょう。
// アルファベット小文字・大文字
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
// 数字 + アルファベット小文字・大文字
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
// 記号 + 数字 + アルファベット小文字・大文字
!#$%&*+-./=?@_()0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
次に、文字列を生成したいセルに下記の関数を入力します。
=CONCATENATE(ARRAYFORMULA(MID($B$1,RANDARRAY(8)*LEN($B$1)+1,1)))
「$B$1」は先ほど貼り付けた生成元が入力されたセルを指定し、RANDARRAY()の中の「8」という数字が桁数になります。
このままだと8桁のランダムな文字列になるので、別の桁数にしたい場合は「8」を別の数字に変更します。
MID()関数を使うことで、パスワードの生成元のテキストから1文字ずつピックアップして、CONCATENATE()関数で結合しています。