• 締切済み

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

エクセル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/7940)
回答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/6244)
回答No.1

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

gon-gon
質問者

お礼

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

関連するQ&A

  • エクセル2010で条件に合った乱数を入れるには?

    エクセル2010で 条件に合った乱数を入れる関数を教えてください。 図の例では、 セルA5が6の乱数の場合、セルB5に1~6の乱数を入れたいです。 セルA5が3の乱数なら、セルB5に1~3の乱数といった具合にしたいのですが、 どのようにすれば出来るでしょうか? ご回答宜しくお願いします。

  • Excelで乱数によって出た値を相関図に記録していく方法ってありますか?

    Excelの乱数によって表示された値を再計算(F9キー)を押した分だけ記録していく方法はあるでしょうか? 出た値をグラフ(相関図)に記し、残していきたいのです。 しかも、マクロを使わずにできるだけ簡単にやることができれば良いのですが・・・。 例えば、 A1~A2⇒ =RAND() と入力し、次にB列をx座標、C列をY座標として 再計算(F9キー)を押す(1回目)と、 B1⇒ A1セル番地の値 C1⇒ A2セル番地の値 が出て、グラフ(相関図)に1点目が記される。 また再計算(F9キー)を押す(2回目)と、 B2⇒ A1セル番地の値 C2⇒ A2セル番地の値 が出て、グラフ(相関図)に2点目が記される。 また再計算(F9キー)を押す(3回目)と、 B3⇒ A1セル番地の値 C3⇒ A2セル番地の値 が出て、グラフ(相関図)に3点目が記される。 ・・・(以下同様に) 再計算(F9キー)を押すたびにグラフ(相関図)に点が記され、過去に記された点(値)も残るようにしたいわけです。 どうかよろしくお願いします。

  • エクセルで別シートの値を取得したいです。

    エクセルで質問があります。 別シートからセル値を取得したいです。 ただ、セル番地は行番号、列番号で指定し、 行、列番号はセルに入力してある値を使いたいです。 例 Aシート(値格納シート) B1セル値=1000 -------------- Bシート(値取得シート) A列=行番号入力 B列=列番号入力 C列=Aシートの取得関数 A2セル値=1 B2セル値=2 C2セル=1000(取得値) C2セルの関数に、A2とB2の値を使って Aシートのセル値を取得したいです。 よろしくお願いします。

  •  エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方

     エクセル関数式により、ある値が二つの値の間にある条件の時に抜き出す方法。  初めまして。よろしくお願いします。  例) A B C D E F 1赤 2 5 1 2青 9 2 3 青 3黄 1 9 4 黄 4緑 3 4 2 5黒 8 4 9 6紺 2 5 4 紺 7橙 5 1 6 8 9  D列にある値がB列にある値とC列にある値の間に有る場合、A列に有る値をE列に抜き出す(例では2行目、3行目、6行目のDの値がBCの値の間に有るためにEのセルにAの値を表示される)関数式を教えていただきたく、よろしくお願いします。

  • エクセル IF関数が入った条件付き書式について

    エクセルにおいて、セルA1、B1、C1があるとします。A1、B1には数値が何も入力されていない状態で、C1に計算式「=SUM(A1)/B1」が入っているとします。このままでは、C1は、「#DIV/0!」と表示されます。 この表示を消すために、C1にIF、ISERROR関数を使い、「=IF(ISERROR(SUM(A1)/B1),"",SUM(A1)/B1)」の計算式を入力します。 このままでもいいのですが、C1の値が「10以上」になった時に、C1のセルに色を付けたいのです。 書式→条件付き書式→セルの値が→次の値以上→10 にすると、セルに何も値が入っていない(空白)状態で色だけが付いてしまいます。 色々調べると、IF関数の""の空白が文字列のため、数値より大きいとみなされている事が原因っていうことは、分かりましたが、色々試してみても出来ません。何かいい方法はございますでしょうか? ご教授お願いします。

  • 【エクセル】複数条件に該当する値をかえす方法

    エクセルで表を作成していますが、どうしても上手くできません。 どなたかお分かりになりますでしょうか。 エクセル   列A   列B    列C      ---------------------------------- 1 個人   新規   2000 (円) 2 法人   新規   3000 (円) 3 法人   新規   2500 (円) 4 個人   既存   1000 (円) 5 その他  新規    500 (円) 列A、列Bはそれぞれ固定値が入ります。 列Cはすべての値(定まっていない値)が入ります。 列A、列Bをそれぞれ条件として、該当する場合列Cの 値を別シートにかえしたいのです。 例)列Aが「個人」、列Bが「新規」の場合、 列Cの値をかえす 関数を使って =IF(AND(A1=個人,B1=新規),"C1","")  とやってもエラーになってしまいます。 別シートには表を作成してあり、あるセルに列Cの 値のみ反映させたいのですが、うまくいきません。 同シート内でやっても上手くいかないので、数式そのものに 問題があると思っています。 上手く説明が出来ているか自信がありませんが、 解決できる方法はありますでしょうか。 どうぞ宜しくお願い致します。

  • EXCEL 2003で条件に合った合計を求めたい

    ______A ____B____ C_____D 1___111___ 1 ___10___ 60 2___111___ 2 ___10 3___222___ 2 ___10 4___333___ 1 ___10 5___333___ 2 ___10 6___333___ 3 ___10 7___444___ 1 ___10 8___444___ 3 ___10 9___555___ 1 ___10 Excel 2003環境において、上記A1:C9を対象に関数で下記条件を元に数式をD1に入力して値を求めたいです。 条件: A列の同じ値のセルを一つのグループとし、かつその中で、B列で1から始まる連番となっているグループを対象にC列のセルを合計する。 上記のセル範囲で条件に合う行は1,2,4,5,6,9行目で答えは60になります。 SUMPRODUCT関数やIF関数を併用してみましたが、うまく作ることができませんでした。 なんとか作業列やVBAを用いずに一つの数式で済ませたいです。 よろしくお願いします。

  • エクセルのIF関数(条件に合った値かどうか調べる)

    エクセルの関数についてお聞きします。 次のような値があります。 A列 B列 C列 犬 鳥 PP 01 QQ 空 牛 魚 09 この組み合わせ以外のものを下記のように、D列に「×」と表示させ、条件に合うものを「●」と表示させる式を作ろうと思います。 例: A列 B列 C列  D列 犬 QQ 09   ● 02 鳥 空   × 牛 魚 11   × 01 QQ 空   ● このような式はどう作ればいいですか?IF関数ということは分かるのですが、そこから先が進みません・・・。 ちなみに調べたいデータは上の例のように数字、文字が混在しています。 どうぞよろしくお願いいたします。

  • 値の個数、値の合計の出し方と日付への色付け

    EXCELで質問が2つあるのですが、 セルB列に「○」がある場合、 セルC列の値の個数、値の合計を出すには どのようにすればよいでしょうか? IFを使うのかな?ということしかわからないです。。。 もう1つは 日付を入力した際にカレンダーの休日に当たる場合、 その文字に色(赤)をつけたいのですが、 それはどのようにすれば宜しいでしょうか。 条件書式では出来ませんでした。。。 EXCELはほとんど素人です。すみません。

  • Excelにて複数条件を満たす行の特定のセルの値を返す関数

    Excelにて複数条件を満たす行の特定のセルの値を返す関数を作りたいのですが、上手く行きません。 <Sheet1>   A列  B列  C列 1 2008/6/1 ★  320 2 2008/6/1 ☆  300 : : : Sheet2のA1に、「A列が2008/6/1で、B列が☆の場合、C列の値を返す」という関数を入れたいのですが、どうも上手く行きません。 良い式がありましたら教えて下さいm(_ _)m

専門家に質問してみよう