dポイントプレゼントキャンペーン実施中!

エクセルで任意の複数列の単語をランダムに組み合わせる方法
エクセルで、登録した単語をランダムに表示させ、文章をつくるようにしたい場合どうすればいいでしょうか?

例えば、単語の種類を「主語(H列)、目的語(K列)、補語(N列)、述語(Q列)」などとして、
A列にH列の単語、B列にK列の単語、C列にN列の単語、D列にQ列の単語をそれぞれランダムな順に表示して、文章を作る・・・といった風にするには、どうしたらいいでしょうか?

http://questionbox.jp.msn.com/qa5488229.html
ここで書かれていた例を元に、上に書いたように(それぞれHKNQ列の前2行は作業列としました)自己流でやってみたのですが、VLOOKUP関数が全然わからないし、例では1列の単語のみを対象にしてたので、やっぱり複数列を表示するには全然違う方法になるのでしょうか?

また、できれば、各列、登録数が同じでなくても、大丈夫なようにする方法(少ない登録数のところは重複して単語が表示されたり)は可能なのでしょうか?

エクセルもあまりわかってないのですが、ご存知の方、
どうぞよろしくお願いします。

A 回答 (3件)

こんばんは!


複数列でも同様の方法でOKなのですが、

↓の画像のように作業用の列を作ってみました。

作業列L2セルに
=IF(H2="","",RAND())
という数式を入れ、列方向へは4列(O列まで)と、行方向へはデータがなくても構いませんので
下へオートフィルで下へずぃ~~~!っとコピーします。

そして、A2セルに
=INDEX($H$2:$K$100,MATCH(MIN(L$2:L$100),L$2:L$100,0),COLUMN(A1))
という数式を入れ、D2セルまでオートフィルでコピーすると
画像のような感じになります。

これでF9キーを押すたびに
全ての列がランダムに表示されると思います。

以上、参考になれば幸いです。m(__)m
「エクセルで任意の複数列の単語をランダムに」の回答画像3
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
tom04さんのこの回答がなかったら、作業列を別にこのようにできるなんて、まったく不可能だったと思います。
ありがとうございました。

お礼日時:2010/05/10 06:21

簡易手法で


A1に =INDEX(H:H,COUNTA(H:H)*RAND()+1)
B1に =INDEX(K:K,COUNTA(K:K)*RAND()+1)
C1に =INDEX(N:N,COUNTA(N:N)*RAND()+1)
D1に =INDEX(Q:Q,COUNTA(Q:Q)*RAND()+1)
とそれぞれ入れて,F9キーを押すごとに単語が差し替わります。
    • good
    • 0
この回答へのお礼

keithinさま、ご回答ありがとうございます。
この手法でも、作成させていただきました!
他にも応用が利きそうですね。
ありがとうございました。

お礼日時:2010/05/10 06:22

複数列でも同じですよ。



=VLOOKUP(ROW(A1),$D$2:$E$11,2,0)

D2:E11の中の1列目(D列)で(ROW(A1)はA1行の行数)=1と完全一位するもので2列目(E列)のデータを表示しなさいというものです。

例ではA2には(ROW(A1)=1なので)D列で値が1の行にあるE列のBRIDGEが表示されます
以下A3ではROW(A2)になっているのでD列の値2の行にあるE列のHEARTが表示されてます。
以下同じ考えです。

同じ考えで複数列の表示を考えればいいわけです。

目的語(K列)
B列(B2に)
=VLOOKUP(ROW(A1),$J$2:$K$11,2,0)
となります。
    • good
    • 0
この回答へのお礼

kmetuさま ご回答ありがとうございます。
関数の文字列の意味を、分かりやすく説明していただき、ありがとうございました。
おかげさまで、間違いを発見できました。

お礼日時:2010/05/10 06:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!