Excelで文字列の一部をランダムに取り出す計算式
文字列の一部からランダムに取り出す計算式をご紹介します。前提として「文字列をシャッフルする計算式」があり、これを流用します。この式についての詳しい説明は下記のページを参照してください。
Excelで文字列をシャッフルする計算式:コピペ使用可
Excelで文字列をシャッフルする計算式 Excelを使って、セルに入力された文字列をシャッフル(ランダムに並べ替え)する方法について解説します。今回使用するのは、CONCAT関数とMID関数、SORTBY関数、RANDARRAY関数です。...
文字列の一部をランダムに取り出す計算式:基本式とコピペ用
以下の計算式を使用して、指定した「文字列」の一部をランダムに取り出します。「文字数」は取りだす数です。
=LEFT(CONCAT(MID(文字列, SORTBY(SEQUENCE(LEN(文字列)), RANDARRAY(LEN(文字列))), 1)),文字数)
この計算式は、文字列の各文字をランダムな順序で並べ替えて結合する計算式を流用しています。そこからLEFT関数で一部を取り出してます。
「文字列」の指定を一度で済ますならば以下の計算式を使用してください。
=LET(_Str,文字列,_Num,文字数,LEFT(CONCAT(MID(_Str, SORTBY(SEQUENCE(LEN(_Str)), RANDARRAY(LEN(_Str))), 1)),_Num))
セルA1へ「文字列」、セルA2へ「文字数」を入力してある状態ならば以下のいずれかの式になります。
=LEFT(CONCAT(MID(A1, SORTBY(SEQUENCE(LEN(A1)), RANDARRAY(LEN(A1))), 1)),A2)
=LET(_Str,A1,_Num,A2,LEFT(CONCAT(MID(_Str, SORTBY(SEQUENCE(LEN(_Str)), RANDARRAY(LEN(_Str))), 1)),_Num))
この式がセットされた状態で{F9}キーを押せば、再計算されて取り出し直しがされます。
LET関数で加工したコピペ用の式の使用手順
文字列シャッフルの実行時は、上記の式の「文字列」指定を一度で済ますことができるように加工した以下の式を使うと便利です。
=LET(_Str,文字列,_Num,文字数,LEFT(CONCAT(MID(_Str, SORTBY(SEQUENCE(LEN(_Str)), RANDARRAY(LEN(_Str))), 1)),_Num))
上記の式を出力予定先へコピペし、「関数の挿入」ボタンを押しましょう。続けて「文字列セル」と「文字数セル」の登録をする予定です。下図ではA1の文字列をランダムにA2の数だけ取り出す出力先としてB1を選びました。
「名前値1」の「文字列」を「A1」へ、「名前値2」の「文字数」を「A1」へ置き換えます。
A1の文字列からA2の数だけランダムに取り出され出力されます。{F9}キーを押せば再計算されます。
コメント