こんにちは、ゆうや(@yuyaphotograph)です!
この記事では、
- スプレッドシートで一般的なパスワード作成ツールのようなものを再現する方法が知りたい
- スプレッドシートでランダムな文字列を生成する数式を知りたい
- スプレッドシートのMID関数を使ってみたい
という方のお悩みを解決します!
*おすすめのパスワード作成ツールはこちら
ランダムな文字列生成の完成イメージ
添付画像が今回紹介する方法で、ランダムな文字列を生成したセルの例です!
8文字のランダムな文字列が生成されました!
▼▼▼
ランダムな文字列を生成する方法
スプレッドシートで任意の文字数のランダムな文字列を生成するには、MID関数、RANDBETWEEN関数、LEN関数を組み合わせて数式を作ります!
今回の肝はMID関数です。
MID関数の基本的な数式は以下。
=MID(文字列,開始位置,取り出す文字の長さ)
つまり特定の文字列の指定した開始位置からX番目までの文字を取得してくれるものとなります。
簡単な例を1つ見てみましょう。
以下の数式を入れたセルにはどんな文字列が返ってくるでしょうか?
▼▼▼
=MID("東京都調布市",4,3)
▼▼▼
答えは、「調布市」です。
数式の意味は、文字列「東京都調布市」の先頭から4文字目以降の3文字を取得する、となります。
RANDBETWEEN関数については以前公開した記事でも触れましたがおさらいします。
【スプレッドシート】乱数を生成する方法とは?〜RANDBETWEEN関数〜RANDBETWEEN関数は指定した範囲内で乱数を生成してくれるもので、数式は以下です。
=RANDBETWEEN(乱数の範囲の下限,乱数の範囲の上限)
LEN関数は指定した文字列の長さを取得できるものです。
例えばセルB2の文字列の長さを取得したい時は、このように数式を書きます。
=LEN(B2)
関数についての基礎はここまでです。
本題に参りましょう〜
MID関数、RANDBETWEEN関数、LEN関数を組み合わせて作り出した数式はこちらです!
▼▼▼
=MID(取り出し元の文字列,(RANDBETWEEN(1,LEN(取り出し元の文字列))),1)
▼▼▼
この数式を使うことで、取り出し元の文字列からランダムで1文字取得することができます。
例えば添付画像のように、セルB2に取り出し元の文字列(数字 + アルファベット = 62文字)を格納している場合はこのように記述します。
▼▼▼
=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)
ちなみに取り出し元の文字列で使っているのはこちらです。
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
よしなに変更して使ってくださいまし。
▼▼▼
さてそれでは、ランダムな文字列を8文字生成したい場合はどう記述すればよいでしょうか?
答えは驚くほどシンプルです。
上述した数式を、生成したい文字数の分だけ繋げてしまえばいいのです!
MID関数を連結させる時は「&」を使います。
少し式が長いので見づらいとは思いますが、載せておきますね。
▼▼▼
=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)&=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)&=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)&=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)&=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)&=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)&=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)&=MID(B2,(RANDBETWEEN(1,LEN(B2))),1)
めちゃくちゃ長いですね笑
もし12文字の文字列を生成したいとなったら12個数式を繋げてしまえばOKです〜!
まとめ
以上、スプレッドシートでランダムな文字列を生成する方法を紹介しました。
ちなみに数式作成にあたってはjibundexさんの記事を参考にさせていただきました。
神記事を本当にありがとうございました!
スプレッドシートは奥が深くて楽しいですね!!