いきなり答える備忘録

G Suite・Microsoft 365・LibreOfficeなどに関するメモと日々の実験

(Gスプレッドシート)文字列内の文字をランダムに並べ替える

 Googleスプレッドシートで、1つの文字列に含まれる文字を1文字単位でランダムに並べ替える方法についてです。

  • MID関数やSORT関数等を使って文字列中の文字をランダムに並べ替えることができます。

手順

f:id:accs2014:20200620180142p:plain:right:w600

 画像では、B3セルに入力されている文字列を参照し、D3セル上で並べ替えています。

 D3セルに入力されている式は次のようなものです。

=CONCATENATE(ARRAYFORMULA(MID(B3,SORT(SEQUENCE(LEN(B3)),RANDARRAY(LEN(B3)),),1)))

 「SORT(SEQUENCE(LEN(B3)),RANDARRAY(LEN(B3)),)」の部分で「1から『文字列の文字数』まで」の重複しないランダムな整数を生成しています。
 あとはMID関数でその位置の文字を1文字ずつ抽出し、最後にCONCATENATE関数で結合しています。

 なお、重複しないランダムな整数の生成については次の記事でも触れています。

www.officeisyours.com
 
f:id:accs2014:20200620180146p:plain:right:w500

 式を下方にフィルコピーした様子です。
 B3セル以降の文字列(数字も)もランダムに並べ替えられているのがわかります。