• 締切済み

乱数に対して条件に合った値を返すには?

エクセル2010で 図のようにしたいです。 B列は乱数です。 C列はB列の乱数に応じて値を入力。 図のように セルB5が2の時は、3か4の値、 セルB6が4の時は、1~4の値を入れたいです。 この図例以外にも乱数に対して返したい値がたくさんあるため どのようにしたらいいのかわかりません。 IF関数を使うと思うのですがやり方がわかりません。 また、IF関数以外で「もっとシンプルにできるよ」という やり方があれば教えてください。 ご回答宜しくお願いします。

みんなの回答

回答No.4

全くの蛇足ですが、バージョンは古いがアドインは入れたくないって方の場合、参考URLの式で代用できます。ベストアンサーは辞退します。

参考URL:
http://www.relief.jp/itnote/archives/001183.php
gon-gon
質問者

お礼

ご回答ありがとうございます。 RANDBETWEEN関数はアドインツールなのですね。知りませんでした^^; エクセルの古いバージョンで使う場合は、RAND関数を使うんですね。 勉強になりました!

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

>この図例以外にも乱数に対して返したい値がたくさんあるため >どのようにしたらいいのかわかりません。 添付図のように、丁寧に対応表を作成します。 B2にあなたの乱数が発生する場合に、対応する範囲の値を対応表から参照して次のように計算します。 C2: =IF(B2="","",RANDBETWEEN(VLOOKUP(B2,E:G,2),VLOOKUP(B2,E:G,3))) 以下コピー #注意 アナタのエクセルでは問題ありませんが、Excel2003以前を使う場合は分析ツールアドインのチェックを入れておく必要があります。

gon-gon
質問者

お礼

ご回答ありがとうございます。 表にしているため編集も簡単にできますね^^ やりたいことが出来て本当に助かりました。 ありがとうございました!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! C5~C7セルに表示するのは整数で良いわけですよね? そういうコトだとして・・・ RANDBETWEEN関数を使用してみてはどうでしょうか? B列がお示しの数値以外の場合は空白としています。 C5セルに =IF(B5=2,RANDBETWEEN(3,4),"") C6セルに =IF(B6=4,RANDBETWEEN(1,4),"") C7セルに =IF(B7=1,4,"") としてF9キーを何度か押してみてください。 こんな感じではどうでしょうか?m(_ _)m

gon-gon
質問者

お礼

ご回答ありがとうございます。 >RANDBETWEEN関数を使用してみてはどうでしょうか? B列は乱数にするためRANDBETWEEN関数を使っています。 C列はB列の条件によって値が変わってきますよね? ご回答頂いた例では、 C5セルに =IF(B5=2,RANDBETWEEN(3,4),"") ですが、セルB5は2の固定ではなく乱数になります^^;

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

>IF関数を使うと思うのですがやり方がわかりません。 IF文で実現しようとすると条件が多い場合は実現できませんので、 条件が多い場合は choose関数を使います。  関数ウイザードでサンプルをみながらやれば簡単でしょう。 >セルB6が4の時は、1~4の値を入れたいです。 何でやっても条件が明確でないので不可能です。 1-4をランダムで選ぶということでしょうか?

gon-gon
質問者

お礼

ご回答ありがとうございます。 choose関数ですね。一度調べてみますね。 >1-4をランダムで選ぶということでしょうか? そうです^^; 誤解しますよね。 セルB6が4の時は、1、2、3、4のいづれかの数字をランダムで選びたいです。

関連するQ&A