WebDesigner's Memorandumウェブデザイナーの備忘録

Spreadsheetでランダムな数字や文字列を作成する方法

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()関数で結合しています。

著者について

プロフィール画像

サイトウ マサカズ@31mskz10

1997年生まれ。2016年から専門学校でデザインについて勉強。卒業後は神戸の制作会社「N'sCreates」にウェブデザイナーとして入社。このブログでは自分の備忘録も兼ねて、ウェブに関する記事や制作環境を効率的に行うための記事を書いています。

Twitterをフォロー Facebookでいいね