特定の文字列から文字を組み替えてランダムな文字列を作り直す、Excelでアナグラムを自動生成する方法です。
成果物
![excel アナグラム11](https://sunagitsune.com/wp-content/uploads/2021/11/82e8fbb5750f10d90d91b55cfb653889.png)
このように、元の文字列を組み替えた文字列を自動生成する状態を目指します。
アナグラムの生成
文字の抽出
![excel アナグラム1](https://sunagitsune.com/wp-content/uploads/2021/11/b80b4399d6a92fc9fe7bb24707fa74cb.png)
C1にアナグラムしたい文字列を置きます。日本語でも英語でも数字でもOKです。
![excel アナグラム2](https://sunagitsune.com/wp-content/uploads/2021/11/1071f45ae36c1ecd353ca4125b6d240d.png)
C2セルに
=Mid($C$1,Row()-1,1)
と記述し、![excel アナグラム3](https://sunagitsune.com/wp-content/uploads/2021/11/22d5fec9ec796d40914c1cba2c942d4b.png)
これを下のほうまでオートフィルで伸ばします。元の文字数を超えた部分は何も表示されません。
乱数の生成
![excel アナグラム4](https://sunagitsune.com/wp-content/uploads/2021/11/8b91d294717b0aadec0af4d77f1fea84.png)
A2セルには
=If(C2 ="","",Rand())
と記述し、文字を組み替えるための乱数を発生させます。![excel アナグラム5](https://sunagitsune.com/wp-content/uploads/2021/11/2b18579b5675ecb7743bb121be8b7b9d.png)
同様に下のほうまで伸ばします。
乱数を順序化
![excel アナグラム6](https://sunagitsune.com/wp-content/uploads/2021/11/b352d6fa37a0b8ac0abdb872fa235738.png)
さらにB2セルも
=IfError(Rank.Eq(A2,A:A),"")
と入力して、![excel アナグラム7](https://sunagitsune.com/wp-content/uploads/2021/11/f87b9052d63192a659633eaf9509342c.png)
やはり下のほうへと伸ばします。
抽出した文字の組み替え
![excel アナグラム12](https://sunagitsune.com/wp-content/uploads/2021/11/18c4b6a29d183beaf48e72e9df3e2554.png)
D2セルに
=IfError(VlookUp(Row()-1,B:C,2,FALSE),"")
と入力し、![excel アナグラム8](https://sunagitsune.com/wp-content/uploads/2021/11/4a1ebeb8ae4d9278cc721c0e71ae1bb1.png)
例によって伸ばします。
文字列の結合(完成)
![excel アナグラム9](https://sunagitsune.com/wp-content/uploads/2021/11/895553dd01fe4d55f6761cebce498bdd.png)
最後にアナグラムを出力したいセルに
=Concat(D2:D1000)
と入力してEnterを押します(数字は適当です)。![excel アナグラム concat](https://sunagitsune.com/wp-content/uploads/2021/11/ae516835f16f7ba5cd3813cd4b63d016.gif)
文字列内の文字がランダムに並び替えされます。
F9を押すたびに再計算が入りアナグラムが変わります。
F9を押すたびに再計算が入りアナグラムが変わります。
![excel アナグラム10](https://sunagitsune.com/wp-content/uploads/2021/11/275b9bb921ce31a87247de9034ee5e25.png)
気に入ったものがあったら、値をコピーしてただの文字列に変換しておきます。
アナグラムする文字列の変更
![excel アナグラム14](https://sunagitsune.com/wp-content/uploads/2021/11/cf7717cf7233f6f69ed4e121baba1113.png)
C1の文字列を変更すれば、出力されるアナグラムも変更されます。
![excel アナグラム13](https://sunagitsune.com/wp-content/uploads/2021/11/7b21f8d254267f0558d56e79ed3ed3f4.png)
もし長い文字列がうまく変換できない場合は、
![excel アナグラム15](https://sunagitsune.com/wp-content/uploads/2021/11/4787b25bb4ca1b6befa19db125cf2c28-650x546.png)
A~D列が足りてないので、オートフィルで下に延長してあげてください。
別の方法、関連記事
使っている関数はこの記事とほぼ同一なので、解説は省略します。
何回も並べ替えしないなら、一文字ずつ抽出して並べ替えしたものを結合するほうが簡単です。
![](https://sunagitsune.com/wp-content/uploads/2021/06/gesellschaftsspiel-5878815_1280-160x90.jpg)
Excel(エクセル):ランダム、乱数
Excelの乱数、ランダム関連操作、関数等まとめです。
乱数の作成
関数で乱数を求める場合、Rand関数(0~1の乱数)またはRandBetween関数(指定範囲の整数)を用います。
もしビンゴで使うような重複...
コメント