Excelの質問です。各列の値をランダムに組み合わせたいのですが、単純にA列B列C列の値をD1,E1,F1にランダムに表示させることは可能でしょうか。(A列B列C列はそれぞれ20行程です)できれば繰り返して値を更新したいのですがこの場合マクロなど必要でしょうか。可能な限り簡単な方法をご教授願います。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2007/01/23 00:05:35
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:arhbwastrh No.1

回答回数447ベストアンサー獲得回数23

ポイント70pt

A,B,Cの各列はそれぞれ20行と仮定して説明します。

1.A21~A40までにAと入力。次に、A41~A60までにBと入力。A61~A80までにCと入力します。

2.B21~B80に=RAND()と入力します。

3.C21~C40にそれぞれ、=$A$1、=$A$2・・・と入れます。C41~C60にそれぞれ=$B$1・・・C61~C80も同様に入力します。

4.D列の1~20にそれぞれ=$C$21、=$C$22・・と入力します

5.E列の1~20にそれぞれ=$C$41・・と上記と同様に入力します。

6.F列の1~20にそれぞれ=$C$61・・・と上記と同様に入力します

※※※

これで準備は完了です。後はA21~C80を選択し、並べ替えで最優先されるキー列A、2番目に優先されるキー列Bとし、並べ替えを実行します。

すると、D,E,Fの各列にランダムで数字が表示されます。

※※※

なお、この並べ替え作業は面倒なので、マクロの記録を使ってショートカットを割り当てると便利です。

やり方→ツール→マクロ→新しいマクロの記録

ここで、Ctrl+□の部分に任意のアルファベットを入力

→※※※の部分を実行→記録終了で完了です。

不明な点があれば補足しますので、その旨コメントに記載してください。

id:nacka

すみませんちょっと質問の仕方がわるかったようです。

例えばA列には野菜の名前、B列には果物の名前、C列にはお菓子の名前がそれぞれ20種類づつあり、A列、 B列、C列から一つずつランダムに抽出し、組み合わせしたいということです。

2007/01/22 22:30:53

その他の回答4件)

id:arhbwastrh No.1

回答回数447ベストアンサー獲得回数23ここでベストアンサー

ポイント70pt

A,B,Cの各列はそれぞれ20行と仮定して説明します。

1.A21~A40までにAと入力。次に、A41~A60までにBと入力。A61~A80までにCと入力します。

2.B21~B80に=RAND()と入力します。

3.C21~C40にそれぞれ、=$A$1、=$A$2・・・と入れます。C41~C60にそれぞれ=$B$1・・・C61~C80も同様に入力します。

4.D列の1~20にそれぞれ=$C$21、=$C$22・・と入力します

5.E列の1~20にそれぞれ=$C$41・・と上記と同様に入力します。

6.F列の1~20にそれぞれ=$C$61・・・と上記と同様に入力します

※※※

これで準備は完了です。後はA21~C80を選択し、並べ替えで最優先されるキー列A、2番目に優先されるキー列Bとし、並べ替えを実行します。

すると、D,E,Fの各列にランダムで数字が表示されます。

※※※

なお、この並べ替え作業は面倒なので、マクロの記録を使ってショートカットを割り当てると便利です。

やり方→ツール→マクロ→新しいマクロの記録

ここで、Ctrl+□の部分に任意のアルファベットを入力

→※※※の部分を実行→記録終了で完了です。

不明な点があれば補足しますので、その旨コメントに記載してください。

id:nacka

すみませんちょっと質問の仕方がわるかったようです。

例えばA列には野菜の名前、B列には果物の名前、C列にはお菓子の名前がそれぞれ20種類づつあり、A列、 B列、C列から一つずつランダムに抽出し、組み合わせしたいということです。

2007/01/22 22:30:53
id:tomot99 No.2

回答回数36ベストアンサー獲得回数1

ポイント30pt

A1~A20の中からランダムに一つのセルの内容をD1に表示する。

B1~B20の中からランダムに一つのセルの内容をE1に表示する。

C1~C20の中からランダムに一つのセルの内容をF1に表示する。

ということでよろしいのでしょうか?

D1

=OFFSET(A1,RANDBETWEEN(0,20),0)

E1

=OFFSET(B1,RANDBETWEEN(0,20),0)

F1

=OFFSET(C1,RANDBETWEEN(0,20),0)

RANDBETWEEN(0,20)の20を行数と一致させてください

「繰り返して」ということですが簡単に繰り返す場合は再計算のF9キーで可能です

id:nacka

すごくいいです!でも#NAME?と表示されてしまいます。

2007/01/22 22:44:33
id:arhbwastrh No.3

回答回数447ベストアンサー獲得回数23

それでも使えるような仕組みになっています。

id:arhbwastrh No.4

回答回数447ベストアンサー獲得回数23

一応サンプルを作ったのでアップしておきます。

http://sund1.sakura.ne.jp/uploader/upload.html

UP1425.txtをダウンロードしてくださいね。

※拡張子をxlsにしてください。

マクロを有効にしないと使えません。

コントロールキー+Aで実行できるようにしてあります。

id:arhbwastrh No.5

回答回数447ベストアンサー獲得回数23

何どもすみません。tomot99氏が補足を書かれていないようなので、参考までに私の方で補足させて頂きます。

まず、このRANDBETWEEN関数はアドオンを追加しなければいけません。

ツール→アドイン→分析ツールにチェック

これでアドオンをインストールします。

この手順を踏むことによって使えるようになります。

それと

=OFFSET(A1,RANDBETWEEN(0,20),0)は絶対参照しないとデータがずれます。また、0でなく1からスタートしないといけないので・・・

=OFFSET($A$1,RANDBETWEEN(1,20),0)

これが正しいものになります。

ただ、この式を使うと、同じものを抽出することがあります。

(A1を2回抽出しちゃったり、A2を一回も抽出しないことがある)


(ちなみに、私が書いた回答ですが、ランダムで抜き出せるようにしてあります。また、同じものを抽出することは無いような仕組みです)

複数回の回答、失礼いたしました。

id:nacka

UPしていただいたものが実用できそうですので使わせて頂きます。

有難う御座いました。

2007/01/23 00:02:29
  • id:tomot99
    arhbwastrh様
    ご指摘ありがとうございます。分析ツールの件はチェックが甘買ったです。
    回答者本人がコメントを書くよりも早く補足していただけて幸いです。
  • id:arhbwastrh
    いえいえ、出すぎた真似をしてすみません^^;
    この書き方は思い浮かばなかったので勉強になりましたm(__)m

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません