• ベストアンサー

複数行・列からランダムに抽出する方法

はじめまして。 添付図のように、10個の文節(B列~K列)からそれぞれ1つをランダムに抽出し、 それら10文節を接続して、毎回違った文章を出力したいと考えています。 10文節をランダムに結合した文章は、L列に100個以上、出力したいのですが、 どのような方法で実現可能かご教授いただけませんでしょうか。 ★最終的にL列には、 (1)私は来年・・・休みました。 (2)僕は昨日・・・家にいました。 ・・・ のように、異なる文章を多数出力したいのですが方法をご教授頂けませんでしょうか? 以上、よろしくお願い致します。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

=INDEX($B$2:$B$11,CEILING(RAND()*10,1)) &INDEX($C$2:$C$11,CEILING(RAND()*10,1)) &INDEX($D$2:$D$11,CEILING(RAND()*10,1)) &INDEX($E$2:$E$11,CEILING(RAND()*10,1)) &INDEX($F$2:$F$11,CEILING(RAND()*10,1)) &INDEX($G$2:$G$11,CEILING(RAND()*10,1)) &INDEX($H$2:$H$11,CEILING(RAND()*10,1)) &INDEX($I$2:$I$11,CEILING(RAND()*10,1)) &INDEX($J$2:$J$11,CEILING(RAND()*10,1)) &INDEX($K$2:$K$11,CEILING(RAND()*10,1)) を沢山コピー。

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

その他の回答 (2)

noname#204879
noname#204879
回答No.3

添付図参照 Sheet2!B1: =RAND() Sheet2!B13: =RANK(B2,B$2:B$11) Sheet1!B13: =INDEX(B$2:B$11,Sheet2!B13) Sheet1!L2: =B13&C13&D13&E13&F13&G13&H13&I13&J13&K13 【蛇足】 「私は来年・・・休みました」って常識的には異常?

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 一例です。 Sheet2を作業用として使用します。 Sheet2のB2セルに =RAND() としてB11までオートフィルでコピー! そのまま行を範囲指定したまま列方向へK列までコピー! Sheet2のL2セルに =INDEX(Sheet1!B$2:B$11,MATCH(SMALL(B$2:B$11,ROW(A1)),B$2:B$11,0)) という数式を入れ、これもL11セルまでコピー、そのままU列までコピー! これで下準備は完了です。 最後にSheet1のL2セルに =Sheet2!L2&Sheet2!M2&Sheet2!N2&Sheet2!O2&Sheet2!P2&Sheet2!Q2&Sheet2!R2&Sheet2!S2&Sheet2!T2&Sheet2!U2 という数式を入れ、L11までオートフィルでコピーではどうでしょうか? これでF9キーを押すたびにランダムに表示されると思います。m(_ _)m

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

関連するQ&A

  • 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 以上、よろしくお願い致します。

  • 複数の文章グループからランダムで文章を抽出する方法

    ソフトやプログラムで実現できる方法があれば詳しく教えて頂けると嬉しいです。 プログラムに関しては初心者です。(Visual Studio2010を所持していますが、まったく使用していません) 具体的には、 ---------------------------------- A,B,C,D・・・・というグループの中に、 それぞれn個の異なる文章が入っており、 n個の中からランダムで1つずつ文章を抽出し、 抽出した文章をランダムで並べ替えてから書きだす。 ---------------------------------- という事が出来る方法が知りたいです。 具体的には、 Aに、「りんごです。」「みかんです。」 Bに、「にんじんです。」「キャベツです。」 と言う文章が入っている場合の実行結果が、 ----------------- ・りんごです。にんじんです。 or ・みかんです。キャベツです。 or ・キャベツです。りんごです。 or ・にんじんです。みかんです。 ・・・・ ----------------- のように出力される方法です。 orで例をいくつかあげましたが実行するたびに1つの文章の組み合わせが完成するようにしたいです。 もし、このようなことができるソフトや、プログラムを作成しての解決方法があれば教えて頂けると幸いです。

  • エクセルのランダム抽出について・・・

    エクセルのランダム抽出に付いて教えてください。 A列に1000人の名前が並んでいます。 これをB列に5~8名程度をランダムに表示させるやり方が 知りたいです。 できたらボタンをつけてそれを押すたびにB列の表示が ランダムに変わるやり方がわかると大変助かります。 もしごぞんじのかたがおりましたらぜひともご教授 くださいませm(__)m

  • Excelで複数の文字列を抽出する方法

    Excel 2007で列に、[xxxA],[xxxB],[xxxC]... といった文字列があります。 例えば、この文字列の右端が、[A]か[B]で終わる文字列のみを抽出する方法をご教授ください。 一つの文字列であれば、RIGHT関数で抽出できたのですが、2つ以上の抽出方法が判りません。 どうぞよろしくお願いいたします。

  • 複数行をまとめて縦に昇順に並び替える方法

    このカテゴリーのエクセルの達人の方々に質問です。 どなたか回答して頂ける方がお見えでしたら回答よろしくお願いします。 (ちゃんとした回答ではなく、文句やクレーム等を混ぜた記載はご遠慮ください。  また私の質問が気に入らない場合は無視して頂ければ結構です。) 【質問】  添付図のとおり、1行×25列の中に数字が1~31まであり、重複して入っています。 これが4行あります。  これをまとめて、縦に数字を昇順に並び替える方法をVBAで実現する方法が知りたいです。  (添付図はわかりやすくするためにセルに色をつけてますが、実際は無くてもOKです。   【注意事項】   ・1行×25列の中にある数字の並び毎回異なります。   ・VBAで実現する方法~、と書きましたが、    同様のことが他の方法でも実現できればそれを教えて下さい。   ・使用するエクセルは2021です。 以上、よろしくお願いします。

  • 複数列の選択方法

    多数の列に列ごとにコードを入れてデータ管理しています。たとえば10001、10002、10003~。これを原本として管理しています。そこから頻繁にランダムに必要なコード(列)(数十位)を取り出す(削除)必要があるのですが、列のマウスクリックでの削除は結構大変なので、取り出す良い方法があったら教えて下さい。仕事で使います。

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

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

  • ランダムな文字列の含まれた画像を表示させたい

    ウェブサイトのユーザ登録のさいに、ロボットによる大量自動登録をさけるために、 ランダムな文字列の含まれた画像を表示させ、その文字列を入力することにより、 人間による登録だと判断させる方法がありますが、 あれは、どうやって実現しているのでしょうか? なお、環境はCentOS4、Apache2.0.52、MySQL4.1.20、PHP4.3.9です。 PHPにGD組み込んでます。(使ったことはないのですが・・・) なお、画像はgifを希望しています。 また、できれば、 ●文字列を音声で発音してくれる機能 ●l(エル)と1(イチ)、5とS(エス)などまぎらわしい文字は排除したい の2点を実現できればと思っています。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • SQLのSELECT文でのランダム抽出について

    SQLのSELECT文でのランダム抽出について データベースSQLiteでSELECT文の結果をランダムに抽出するには ORDER BY RANDOM()を使うようですが、前回ランダムに抽出された順序と同じ結果を得るにはどのようにすればよいでしょうか。 MySQLの場合は、ORDER BY RAND(n)でnの値を同じにすれば、同じ順序で抽出できるようですが、SQLiteでは無理なようです。 今考えているのはRANDOM()で得られた列の一つ(たとえばID)を一時的に別のテーブルを作成して保存後、その一時テーブルを利用するというものですが、もっと良い方法があるのではと思います。 何か別の方法がありましたら、教えていただきたくよろしくお願いいたします。

  • Excelでの文字列抽出

    Excelで文字列の抽出とそれを並べる方法を教えてください。 関数だけを用いて実現できるのか、マクロを使わなければできないのかも分かりません。 この関数をこの様に使えばよいというのを教えていただけると幸いです。 やりたいことは、下記条件で、シート2のB列にシート1のG列~P列までに登録されている担当者名に該当するB列の店名を4店まで抽出したいのです。 分かりづらくて申し訳ございませんが、よろしくお願い致します。 ------------------------ シートが2枚(シート1/シート2)あります。 シート1  B列は4行毎に結合されており、店名が登録されています。  G列~P列までは1行目は担当者名、2,3,4行目は補足情報が登録されています。  シート2  A列に担当者名が入っています。(4行毎に結合しています)  B列にA列の担当者名に該当する、シート1の店名を4店まで登録したい。

専門家に質問してみよう