【Excel】パスワード用の乱数を関数で作る
パスワード用の乱数をExcelの関数で作りたいことってたまにありますよね。EdgeとかChromeとかiPhoneとかだったら、パスワードを生成する機能がついていたりするので、困らないのですが、例えば古いPCのパスワードとかだとパスワード生成機能がなかったりするので不便だったりします。
そんなときにExcelの関数で手早くパスワードを生成したくなる場合があります。そこでExcelの関数でパスワード生成を行う方法を解説します。
RANDBETWEEN関数とCHAR関数を使用して一文字分をランダム生成
RANDBETWEEN関数とCHAR関数を使用することで文字をランダムで生成できます。例えば “CHAR(RANDBETWEEN(65,90))" という数式で大文字のAからZまでのアルファベットをランダムで生成します。これは数字に対応する文字を呼び出すCHAR関数と指定された範囲の整数をランダムで呼び出すRANDBETWEEN関数を組み合わせています。まずRANDBETWEEN関数で65から90までの数字がランダムで選ばれ、その数字に対応する大文字のアルファベットがCHAR関数で呼び出されるという仕組みです。
小文字のアルファベットや数字も加えたい場合
小文字のアルファベットは97から122までの数字が対応しているので “CHAR(RANDBETWEEN(97,122))" という数式を使えば生成できます。数字は例えば2桁であれば “RANDBETWEEN(10,99)" で生成できます。記号は使える記号がものによって違うのと、そんなに種類がないので適当に選んで最初か真ん中か最後に入れておけばいいと思いますが、どうしてもExcelの関数を使用したいのであれば"CHAR(RANDBETWEEN(40,47))"とかでいいと思います。
Excelのセルの数式記入例
一文字分のランダム生成関数を教えられても8文字以上のパスワードを実際にどうやってExcelで生成するのかイメージがわかないという方もいると思います。そこで例を下に示しました。
この例では"2A"セルと"8A"セルは大文字のランダム生成、3A~7Aセルは小文字のランダム生成、9Aセルは2桁の数字のランダム生成をしています。そして最後に10Aセルで2Aから9Aセルの値を&で結合してパスワードの完成です。最新のExcelであれば&の代わりにconcat関数で簡単に範囲指定で結合できます。上の画像例であれば"=A2&A3&A4&A5&A6&A7&A8&A9″の代わりに"=concat(A2:A9)"で済みます。
記号は使っていい記号を見つけるのが大変なことが多い
パスワードのルールで記号を入れなければならないルールがある場合は記号も乱数で選びたいと思うかもしれませんが、記号は普段入力しない記号にすると大変だったり、そもそも使っていい記号がどれなのかよくわからないことも多いので、適当に入力しやすい好きな記号を選んで最初か最後に入れておくのが良いと思います。
記号も乱数じゃないと困るという方は繰り返しになりますが"CHAR(RANDBETWEEN(40,47))"で数字を調整して使える記号が出るまでやってみるといいと思います。