
画像: PixieMe/Shutterstock
Excelには、ランダムな値を生成するための関数としてRAND()、RANDARRAY()、RANDBETWEEN()の3つが用意されていますが、ランダムな文字を生成するための同等の関数はありません。実際のところ、ほとんどの人はランダムな数値を生成する必要はないでしょう。しかし、もし必要になった場合は、すぐに実行したいですよね?幸いなことに、いくつかの関数を組み合わせることで、ランダムな文字を生成することができます。この記事では、これら2つの関数を概説し、それらを組み合わせて素早く結果を得る方法を紹介します。
参照: すべてのユーザーが習得すべき Excel のヒント 83 選 (TechRepublic)
Windows 10 64ビットシステムでMicrosoft 365を使用していますが、Excel 2007までの以前のバージョンも使用できます。ご参考までに、デモ用の.xlsxファイルと.xlsファイルをダウンロードしてください。Excel Onlineはこれらの機能をサポートしています。
ExcelのRANDBETWEEN()とCHAR()について
おそらくこれらの機能はどちらも既にご存知でしょうが、一緒に使うことを思いつくことはあまりないかもしれません。幸いなことに、これらはうまく連携します。
まず、RANDBETWEEN()関数について確認しましょう。この関数は、シートが計算されるたびに、指定された2つの値の間のランダムな整数値を返します。最後の部分は重要なので、後で詳しく説明します。構文は以下のとおりです。
RANDBETWEEN(下, 上)
必須の引数が 2 つあります。Bottom は返される小さな整数を指定し、top は返される最大の整数を指定します。
CHAR()は値で指定された文字を返すので、翻訳に適しています。ここではそのように使用します。構文は、
CHAR(値)
引数は1つだけで、この場合は1から255までの値になります。これらの値はシステムの文字セット(元々はANSIに基づいていましたが、ExcelではASCII10進数を使用します)の文字を表します。この情報が必要になることはまずありませんが、知っておいて損はありません。
図 A は、 65 ~ 90 および 97 ~ 122 の値を使用して CHAR() 関数によって返される文字のシートを示しています。他の値によって返される文字については考慮しません。
図A
私たちがどこに向かっているのかわかりますか?
2つを組み合わせる方法
ここまでで、指定された2つの値の間の乱数を返す関数と、値をアルファベットに変換する関数ができました。これらを組み合わせることで、ランダムな文字を返す関数を作成できます。
ランダムな大文字と小文字のリストを返すには、次の関数を入力して、自由にコピーします。
B2: =CHAR(RANDBETWEEN(65,90))
C2: =CHAR(RANDBETWEEN(97,122))
図Bは私のリストです。結果はランダムなので、あなたのリストは私のリストと一致しません。
図B
下限値と上限値を変更することで、返される文字数を減らすことができます。例えば、eからjまでの文字をランダムに返したい場合は、次の式を使用します。
=CHAR(RANDBETWEEN(101, 106)
まず、RANDBETWEEN()関数は、bottomとtopの間のランダムな文字を返します。次に、CHAR()関数はその値を文字(この場合は英語のアルファベット文字)に変換します。
CHAR()とRANDBETWEEN()の組み合わせ方さえわかれば、ランダムな1文字または複数のランダムな1文字を返すのは比較的簡単です。では、複数の文字をランダムに組み合わせたセットを返すにはどうすればよいでしょうか?
Excelで結果を連結する方法
図Cに示すように、ランダムな文字列の連続が必要な場合は、2つの関数を連結するだけです。例えば、最初の文字を大文字、2番目の文字を小文字にしたいとします。この場合、次の関数を使用します。
=CHAR(RANDBETWEEN(65,90))&CHAR(RANDBETWEEN(97,122))
図C
最初の結合関数はランダムな大文字を返し、2番目の関数はランダムな小文字を返します。& 文字は連結演算子です。両方の関数の結果を単純に結合するだけで、値の合計は計算しません。
あらゆる種類の文字列に対して複数の組み合わせを組み合わせることができます。
Excelでリテラル値に変換する方法
先ほど、RANDBETWEEN() はワークブックを計算するたびに計算を行うと述べました。つまり、何かを入力するたび、あるいは F9 キーを押すたびに、これらの関数は異なる文字を返します。これは問題にならないかもしれませんが、もし問題になる場合は、結果をリテラル値に変換する必要があります。関数をリテラル値に素早く変換するには、次の手順に従います。
- 値を選択します。
- Ctrl + C を押してクリップボードにコピーします。
- 「ホーム」タブの「クリップボード」グループで、「貼り付け」ドロップダウンをクリックし、「値の貼り付け」セクションで「値 (V)」を選択します。これにより、関数が結果に置き換えられます。
乞うご期待
このシンプルな組み合わせで柔軟な結果が得られます。必要な数の文字をランダムに返すことができます。今後の記事では、RANDBETWEEN() を使用してランダムなコンテンツを生成します。