- ベストアンサー
rand()
rand()で数字は乱数にできますが、 文字はできますか? あいうえお あいうおえ あいえうお など 乱文字・・
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
#2,3,5のmshr1962です。 &を使うと言うのは =MID("あいうえお",RAND()*5+1,1)&MID("あいうえお",RAND()*5+1,1)&MID("あいうえお",RAND()*5+1,1)&MID("あいうえお",RAND()*5+1,1)&MID("あいうえお",RAND()*5+1,1) の様にすることです。 "あいうえお"の順番の組み合わせにする例 A1:A5に =RAND() と入力 =MID("あいうえお",RANK(A1,A1:A5),1)&MID("あいうえお",RANK(A2,A1:A5),1)&MID("あいうえお",RANK(A3,A1:A5),1)&MID("あいうえお",RANK(A4,A1:A5),1)&MID("あいうえお",RANK(A5,A1:A5),1) で可能です。 元の文字数が多い場合は、 =MID("あいうえお",RANK(A1,$A$1:$A$5),1) をB列に設定してC列で =B1&B2&B3..... としたほうが楽に設定できます。
その他の回答 (7)
- imogasi
- ベストアンサー率27% (4737/17070)
#4です。 >何千通り・・用意が必要ですか? なぜ「何千通り・」になるのですか。 常識的には数字10文字、英字26文字、カナ48字 などではないですか。 漢字なら相当な数をかんがえられます。 >vlookupなどで拾うとできそうですが 文字セットをセルを別にしてセットするなら INDEX関数利用でしょう。 >かなり、検索でないので乱数で表示できればいいんですが 意味不明。 これだけ回答が既にでています。出尽くしています。 あとは自分で考えること。 ●「したいこと--->乱数利用」を思いついたと思うが「したいこと」は何ですか。ここに飛躍があって、思いつきで質問していて、そこの必然性があまり適当でないような感じをうけます。
お礼
ただ単に、並び替えの文字の読み方がどうなるのか ということなので、数字は関係なく さか かさ と意味が変わります そういうバリエーションがほしかったのです この方法ではすこし難しいので 他の方法も考えてみます いろいろありますので・・ ありがとうございます
- gon_hunter
- ベストアンサー率33% (29/87)
もうほとんど答えは出てると思うのですが・・・ Midを使う場合 =MID("あいうえお",RAND()*5+1,1) &MID("あいうえお",RAND()*5+1,1) &MID("あいうえお",RAND()*5+1,1) &MID("あいうえお",RAND()*5+1,1) &MID("あいうえお",RAND()*5+1,1) 1文字ずつランダムに抽出したものを5個作ってつなぎ合わせただけです。 VLOOKUPを使う場合 A列 B列 1 あ 2 い 3 う 4 え 5 お =VLOOKUP(RAND()*4+1,$A$1:$B$5,2,1) &VLOOKUP(RAND()*4+1,$A$1:$B$5,2,1) &VLOOKUP(RAND()*4+1,$A$1:$B$5,2,1) &VLOOKUP(RAND()*4+1,$A$1:$B$5,2,1) &VLOOKUP(RAND()*4+1,$A$1:$B$5,2,1) 検索範囲からランダムに列を検索して1文字ずつ作成、後は上と同じように5個作ってつなぎ合わせています。 (両方とも見やすいように改行を入れてますんで、セルに入力するときは改行を削除してください) あんまりセンスが良くないですね。 VBAで作る方がスマートです。 というわけで、ご質問のRAND()は数字の乱数が作るだけなので、文字を乱数にするには上記のようなほかの関数との組み合わせが必要です。
お礼
ありがとうございます
- mshr1962
- ベストアンサー率39% (7417/18945)
#2,3のmshr1962です。 最後の引数の1を省略してませんか? 先ほどの#3の式は"あいうえお"から1文字のみ表示のはずです。 5文字の場合は&で連結すれば可能ですが現状では "あああああ"のようなケースもあります。
補足
=MID("あ"&"い"&"う"&"え"&"お",RAND()*5+1,1) または =MID("あ&い&う&え&お",RAND()*5+1,1) でも 一文字だけです 重複不可ではかなり難しいですね
- imogasi
- ベストアンサー率27% (4737/17070)
発想を変えて、重複のない・文字や数字の1セット(重複なし)を用意する。配列に入れるとか、連続した文字列(あいうえお・・)を考える。 拾う順番を乱数で決める。5と出れば「あいうえお」の「お」を取り出すように。配列の場合は、配列(5)、 =MID(文字セット,5,1)などのようにして取り出せる。 数字は=INT(RAND()*90+10)で10以上99以下の整数の乱数を発生させます(エクセル関数の例)。 このほうが手っ取り速い。
補足
1セット用意すると 5ケタ(5文字で) 何千通り・・用意が必要ですか? vlookupなどで拾うとできそうですが かなり、検索でないので乱数で表示できればいいんですが
- mshr1962
- ベストアンサー率39% (7417/18945)
#2のmshr1962です。 使用する文字をかぎるなら、こんな方法もありました。 =CHOOSE(RAND()*5+1,"あ","い","う","え","お") または =MID("あいうえお",RAND()*5+1,1) "あいうえお"で且つ順序を変更(重複不可)だと1セルでできません。 複数のセルで行うか、VBAでマクロかユーザー定義関数を作成になります。
お礼
ありがとうございます
補足
MID("あいうえお",RAND()*5+1,1) で行うと あい あいうえお えいお など 文字数も乱文字になり、5文字で常に表示できませんか?
- mshr1962
- ベストアンサー率39% (7417/18945)
ひらがなをコード化すると 9250(あ)~9331(ん)になります。 =CHAR(RANDBETWEEN(9250,9331))でひらがなの乱数ができます。 実際は促音や濁音・半濁音があるので制限は難しいですが... 「あぁいぃうぅえぇおぉかがきぎ....ゎわゐゑをん」
お礼
かい いか 等のバリエーションがいくつあるかという ことで、ありがとうございます
- Gin_F
- ベストアンサー率63% (286/453)
CHAR 関数を使ってみては? CHAR 関数の引数に RAND 関数を指定すればできると思います。
お礼
ありがとうございます
お礼
ありがとうございます 重複がなければ、いいのですが ここから、さらに重複でないものを拾い出すと できるかもしれません