• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルで複数文字を結合してランダムに抽出したい)

エクセルで複数の単語をランダムに組み合わせる方法

このQ&Aのポイント
  • エクセルで複数の単語をランダムに組み合わせて重複しない表示させる方法について教えてください。
  • 例えば、A列に単語を入力し、B列にランダムな組み合わせを表示させる方法について教えてください。
  • また、組み合わせた単語の順番をランダムにすることもできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

お示しのようにデータがA列からD列に入力されているとします。 そこで作業列を作って対応します。 H1セルには次の式を入力してK1セルまで横にドラッグコピーしたのちに下方にもドラッグコピーします。 =IF(A1="","",RAND()) そこでお求めの文章ですがF列に表示させるとしてF1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",INDEX(A:A,MATCH(SMALL(H:H,ROW(A1)),H:H,0))&INDEX(B:B,MATCH(SMALL(I:I,ROW(A1)),I:I,0))&INDEX(C:C,MATCH(SMALL(J:J,ROW(A1)),J:J,0))&INDEX(D:D,MATCH(SMALL(K:K,ROW(A1)),K:K,0))) なお、念のために同じ文章になったものが有る場合にはG列に1の表示をさせるためにG1セルに次の式を入力して下方にドラッグコピーします。 =IF(F1="","",IF(COUNTIF(F$1:F1,F1)=1,"",1)) 同じ文章が有ることは通常は考えられませんがもしも1がG列に見られた場合にはF9キーを押すことで再表示をさせるようにすればよいでしょう。 お示しの答えの例では最初の表が5行であるのに6行になっていますね。このように多くのケースを書くのでしたらA1セルからD5のデータを範囲として下方にドラッグコピーするようにすればよいでしょう。

panmoba
質問者

お礼

ありがとうございます。 希望に近いものができあがりました。 この計算式を元に理想のシートを作り上げていきます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.2

自分だったら、列の中での並べ替えと捉えて処理をするかな。 各セルにRAND関数を使って乱数を割り当てて、数値の大きい順または小さい順に並べ替えます。 でもってそれをつなげて表示。 例えば、A列に対して作業列としてE列を、B列にはF列を、C列にはG列、D列にはH列を それぞれ割り当てて処理するかなあ。(作業列に乱数を格納します) でもって、乱数で同じ数字が出ちゃうと困るので、乱数値の最小桁の数値よりも小さい値を 上から順に加えておきます。  例:=RAND()*100+ROW()/0.01 これなら偶然同じ乱数が発生しても行番号の若い行が小さい値になり順番に並べる …ってか抽出することができるようになります。 (※乱数を使った順位の決定をするときに使う処理方法です。   滅多に使わないけど応用が効くので覚えておくと吉) そんなこんなで、  =INDEX(A1:A5,MATCH(LARGE(E1:E5,1)E1:E5,0)) これで一番大きい乱数に対する文字列を拾えます。 あとは同様にしてB列、C列、D列に対し処理を行いこれを繋げるだけ。 (絶対参照とか指定しておくとコピーして2番目や3番目の文字列を拾い出すのが楽になりますよ)

panmoba
質問者

補足

ありがとうございます。 教えて頂いたRAND関数とINDEX関数を使ってみたのですが、 ランダムに表示されずに、常に同じ値だけを返してきてしまいます・・・

全文を見る
すると、全ての回答が全文表示されます。
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>なおかつ重複がないように表示させる方法 手順: ご利用のエクセルのバージョンに応じた方法でエクセルのオプションで反復計算のチェックを入れる F1セルに =IF(OR(F1=0,COUNTIF($F$1:F1,F1)>1),INDEX(A:A,INT(RAND()*5)+1)&INDEX(B:B,INT(RAND()*5)+1)&INDEX(C:C,INT(RAND()*5)+1)&INDEX(D:D,INT(RAND()*5)+1),F1) と記入し、必要数下向けにコピー貼り付ける。 #補足 >単語をランダムに組み合わせて、 ランダムに組み合わせるだけなら、ふつーに乱数を使えばごく簡単にできます。 しかし一般のやり方では、一度イイカンジで組み合わせが出来ても何かの拍子ですぐに全部再計算されてしまい、答えを固定するにはコピーして形式を選んで貼り付けでわざわざ値に変えるみたいな手間が必要です。 上述の方法は一回結果を出したら、そこで結果は固定になります。 #再計算したいときは一回F2以下の数式を全部消去、改めてF1の式をコピー貼り付け直します。

panmoba
質問者

補足

ありがとうございます。 言葉足らずで申し訳ありません。 ブログタイトルや、簡単な紹介文に使いたいと考えており、 再計算も頻繁に使うので、固定されないほうがありがたいです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excelで複数から1つをランダムに抽出したい

    Excelにあまり詳しくありません。 同様の質問がないか探し、参考にやってみたのですが、 その数式では当てはまらずうまくできなかったため、質問させていただきます。 B13:B90から1つ、 C13:C14から1つ、 D13:D20から1つ、 E13:E16から1つ それぞれランダムに1つずつ抽出したいです。 ランダムに抽出した結果を、 B13:B90から1つ→B2 C13:C14から1つ→B3 D13:D20から1つ→B4 E13:E16から1つ→B5 に表示させるには、どのようにしたらよろしいでしょうか。 例を挙げて説明しますと、 ■ソース:     B   C   D   E・・・ 13 リンゴ 高い 10代 一人暮らし 14 バナナ 低い 20代 二人暮らし 15 メロン    30代 核家族 16 イチゴ        二世帯家族  ・  ・  ・ ■結果: B2:イチゴ B3:高い B4:30代 B5:二人暮らし (項目毎にランダム表示) ということです。 このようなことは可能でしょうか。 ご教授よろしくお願い致します。

  • エクセルで任意の複数列の単語をランダムに組み合わせる方法

    エクセルで任意の複数列の単語をランダムに組み合わせる方法 エクセルで、登録した単語をランダムに表示させ、文章をつくるようにしたい場合どうすればいいでしょうか? 例えば、単語の種類を「主語(H列)、目的語(K列)、補語(N列)、述語(Q列)」などとして、 A列にH列の単語、B列にK列の単語、C列にN列の単語、D列にQ列の単語をそれぞれランダムな順に表示して、文章を作る・・・といった風にするには、どうしたらいいでしょうか? http://questionbox.jp.msn.com/qa5488229.html ここで書かれていた例を元に、上に書いたように(それぞれHKNQ列の前2行は作業列としました)自己流でやってみたのですが、VLOOKUP関数が全然わからないし、例では1列の単語のみを対象にしてたので、やっぱり複数列を表示するには全然違う方法になるのでしょうか? また、できれば、各列、登録数が同じでなくても、大丈夫なようにする方法(少ない登録数のところは重複して単語が表示されたり)は可能なのでしょうか? エクセルもあまりわかってないのですが、ご存知の方、 どうぞよろしくお願いします。

  • エクセルで 任意の単語を重複なしで抽出したい

    エクセルに入力した単語の行 ※(例えば G行2列から G行101列までの100個) の中から 5つの単語をランダムに出力したい  ※(例えば A2 B2 C2 D2 E2 へ) ・ここで おなじ列の中では 単語の重複を避けたい ・出力は A2 B2 C2 D2 E2  、 A3 B3 C3 D3 E3、、、、、、、、、、  と、任意の量にふやしたい エクセルにまだ詳しくないので、少し優しめに解答もらえると嬉しいです よろしくお願いします    

  • リスト内の名前をランダムに抽出する。

    シート1に下記のように14種類の名前リストがあります     A 1  Aさん 2  Bさん 3  Cさん 4  Dさん 5  Eさん 6  Fさん 7  Gさん 8  Hさん 9  Iさん 10 Jさん  11 Kさん 12 Lさん 13 Mさん 14 Nさん それを下記のように別ブックのシートの14ブロックにランダムに重複しないように抽出したいのですが。     ブロック1       ブロック2       ・・・・      ブロック14     A     B      C     D              AA  AB 1 11月1日  Cさん  11月1日  Mさん  ・・・・    11月1日  Aさん さらに2行目に同じ日付がきた場合には(ブロック1)上の行と同じ名前にする 他のブロックは重複なしでランダムに抽出。     ブロック1       ブロック2       ・・・・      ブロック14     A     B      C     D               AA   AB 1 11月1日  Cさん  11月1日  Mさん    ・・・・     11月1日  Aさん 2 11月1日  Cさん  11月2日  Eさん    ・・・・     11月2日  Hさん ちょっとややこしいので、毎回ランダムに重複しないように抽出できればいいのですが。

  • excelで重複せずランダムに複数文字列を抽出

    はじめまして。 excelでA列(A1~AX)に入力されているX個の文字列から 「重複せず、ランダムに」3つを抽出し、その3つの文字列を結合した物を B列のB1~BXに表示させる方法について、アドバイスをお願い致します。 A1:test1 A2:test2 ・・・ AX:testX ★B1~BXを以下のように入力したいです。 B1:test33,test25,test77 B2:test9,test3,test98 ・・・ BX:test3,test77,test24 以上、よろしくお願い致します。

  • エクセルにおける複数条件抽出

    すみません、教えて下さい。 エクセルで複数の条件に合ったセルを返したいです。 どんな計算式になりますか? 教えてください。 例)       4   10   12   22   A  100  120  140  150   B   5    8   10    11   C   29   29   29   18   D   1    3    1    4   上記のような表の中から    『Aで10の場合』は“120”    『Cで12の場合』は“29”   と言った感じで、フィルターを使わないで数字を出す計算式って   ありますか?   ちなみに、Aと10は別々のセルです。   2個のセルを一つの表と照らし合わせて、その結果を   1つのセルに返したい。 知っている方、申し訳御座いませんが宜しくお願いします

  • エクセル、行のランダムについて

    エクセル、行のランダムについて エクセルで行のランダムについて教えてください。 仮にエクセルシートに以下のようなデータがあるとします。  |  A  |  B  |  C  |  D  |  E  | 1|    |今日は |昨日は |明日は |    |  2|    |良い  |悪い  |普通の |最悪な |  3|    |1日  |日   |    |    |  4|    |でした。|だった。|    |    |  このようなデータがあるとして、各行、ランダムに1つ選び、A列に入れて文章を作成したいのですが、どのようにすればいいでしょうか?

  • ms エクセル 2003で複数データーの抽出

    ms エクセル 2003で複数データーの抽出貼り付け (例)下のようにA1セル縦にランダムに数字が並んでいます。この縦に 並んでいる数字をB1~B6に任意の範囲に並べる式又は関数をおしえて   A        B               ください。 1 6 16 26 36    1~8までを横に並べる(1 3 5 6 8 )―――例 2 8 18 28 38 12~16までを横に並べる(     ) 3 2 12 22 32 42 11~23までを横に並べる(     ) 4 3 13 23 33 43 20~31までを横に並べる(     ) 5 5 15 25 35 33~39までを横に並べる(     ) 6 1 11 21 21 41 36~43までを横に並べる(     )

  • エクセルのデータ結合について

    エクセルのB列に1~1000までの数字がランダムに500個入っています。 エクセルのC列にも1~1000までの数字がランダムに500個入っています。 同様の列が10行あります。 (B列以降には入っている数字と入っていない数字があります) A列には、1~1000までの数字が順番どおりに全て並んでいます。 次のような感じです。 (並べ替え前の文字列) A  B  C  D・・・  1  3   2  6 2  1   4  5 3  5   5  1 4  6   3 5        6       これを、下の列のように、B列以降の列の数字を並べ変えたいのですが、エクセルはこのような各行の並べ替えはできますでしょうか? 方法がありましたらご教示頂ければ幸いです。 よろしくお願いいたします。 (並べ替え後の文字列) A  B  C  D・・・  1  1     1 2     2 3  3   3 4     4 5  5   5  5 6  6     6

  • エクセル文字の抽出について

    一つのセルに 1.23.5.6 のようにランダムに.で区切られた数字が入っていて .で区切られてる数字を別々のセルに別けて抽出する方法を教えてください(A1に1、B1に23、C1に5、D1に6という風に) 宜しくお願い致します。