• ベストアンサー

エクセルで一定の確率で結果を返す方法

エクセルのセルに、一定の確率で数値や文字を表示させることはできますか? 例えば10%の確率でA、20%の確率でB、30%の確率でC、40%の確率でDといった具合です。 よろしくおねがいします。

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

  • ベストアンサー
  • goomania
  • ベストアンサー率56% (84/149)
回答No.2

RAND関数とVLOOKUP関数を使ってみたらどうでしょう。 B列に「A」を10%、「B」を20%、「C」を30%、「D」を40% 出現させる例を考えると以下のようなものです。 RAND関数は0から1までの間の乱数を発生させる関数ですから 0から1のでの間をそれぞれ 10:20:30:40になるように分けます。 つまり (1)0以上0.1未満・・・・・・Aを表示 (2)0.1以上から0.3未満・・・Bを表示 (3)0.3以上から0.6未満・・・Cを表示 (4)0.6以上から1.0未満・・・Dを表示 のような設定を考えます。 これを「表=テーブル」としてシートに書き込みしておきます。 例えば、D1:E4に以下のように記述します   0   A 0.1   B 0.3   C 0.6   D まず、A列に乱数を発生させるため、A1に以下の式を記述します。 =RAND() この乱数に対応してA、B、C、Dを決定することになるので B1に以下の式を記述します =VLOOKUP(A1,$D$1:$E$4,2) VLOOKUP関数では、検索の型を省略した場合(または型が「TRUE」の場合は 「検索値」が見つからない場合は、検索値未満の最も大きい値が返されま すので、この仕様を利用しています。(ただし検索されるテーブルは昇順で なくてはいけません) A1とB1に式を記述したら適当な行数までコピーします。 試しに10000行までコピーし、結果を検証します。 B1001 に=COUNTIF($B$1:$B$10000,"A")/10000を記述し、%表示させます。 B1002 に=COUNTIF($B$1:$B$10000,"B")/10000を記述し、%表示させます。 B1003 に=COUNTIF($B$1:$B$10000,"C")/10000を記述し、%表示させます。 B1004 に=COUNTIF($B$1:$B$10000,"D")/10000を記述し、%表示させます。 それぞれ10%、20%、30%、40%(またはそれにきわめて近い値) になることが確認できます。

chinkachink
質問者

お礼

親切・丁寧な回答をどうもありがとうございます。 RAND関数・VLOOKUP関数それぞれについての知識はあったのですが、組み合わせてこういう使い方をするのは初めて知り、奥が深いものだと感心しました。 本当にありがとうございます。

その他の回答 (1)

  • soixante
  • ベストアンサー率32% (401/1246)
回答No.1

表示のタイミングがどうなのかが不明瞭ですが、以下はヒントになりますでしょうか。 ・RAND関数で乱数を発生させることが出来る。   =RAND() で、0≦x<1 の乱数が出来る。そこから、   =RAND()*10 とすれば、0≦x<10  の乱数が出来る。 で、=INT(RAND()*10)  としてやれば、 0~9までの整数が出てきます。これでもいいけど分かりやすく、 =INT(RAND()*10+1) としておけば、 1~10までの整数がランダムに出せます。 ・どこか別の表に、1~10に対応した表を作っておいて、そこからVLOOKUPで引っ張ってこればどうでしょう。 例) ・A1セルに 1 と入れ、A10セル 10まで。 =ROW()  をA1に入れて下に引っ張ってもいいですが。 ・B1セルは、"A" 、B2~B3セルは、"B"、 B4~B6セルは"C"、 B7~B10セルには"D" このようにして、後は乱数で出した数値を検索値として、この表に対応させてVLOOKUPで引っ張ってくれば良いと思います。 ご意向と違った回答でしたらすみません。

chinkachink
質問者

お礼

回答ありがとうございます。 No2の方からも同様の使い方を教えて頂き解決しました。 こんなに素早く回答いただけて本当に助かりました。またの機会がありましたらよろしくお願いします。

関連するQ&A

  • エクセル2000で算式結果を自動表示させる方法

    エクセル2000を使ってます。 入力例として以下の計算式(単純な足し算)があるとします。 A1セル【5】   B1セル 【5】 C1セル 【=A1+B1】 表示は【10】 A2セル【6】   B2セル 【5】 C2セル 【=A2+B2】 表示は【11】 A3セル【?】   B3セル 【?】 C3セル【=A3+B3】 表示は【??】 ここで、私はA3、B3に数値を入力してC2セルをC3セルにドラッグして C3セルの計算結果を表示させています。 ただ、友人からもらったエクセルではC3には何も表示が無く、 計算式も入っていないにもかかわらず、A3、B3に数値を入力 したと同時にC3の計算結果が表示されます。 入力だけで自動表示させる方法を教えていただけますか。

  • エクセルのセル内に文字と計算結果の表示

    エクセルの1つのセル内に文字と計算結果の両方を表示させる方法を教えて下さい。 例えば、セルのA1に数値10を入れて、B1に数値5を入れてあったとします。 で、セルのC1にA1とB1の合計を「合計 15」みたいな形で、文字と計算結果の両方をC1のセル内に表示させたいのですが。 ただ合計の数字のみを表示させるなら、=SUM(A1+B1)で良いわけですが、この数値の前に”合計”という文字を入れたいのです。 宜しくお願いします。

  • エクセル勉強中です。

    現在、エクセルを勉強中なのですが?(GOOにて色々教えて頂いています) 例えば A1には、(あ・か・さ・た・な・・・) B1には、(人名) C1には、(確率)を入れたとします。 C1の確率の所で、セルの書式設定→数値→小数点以下の桁数3を設定すると、C1は例えば、0.185654から0.186に変更されますが、 この様な状況で、 D1に=A1&B1&C1と設定すると D1のセルには、あ 足立 0.185654と基の数字が表示されてしまいます。 出来ることなら、D1のセルには、あ 足立 0.186と表示するようにしたいです。 可能でしょうか?

  • エクセルの関数をご教授ください

    エクセル2007のやり方(関数?)を教えていただければ幸いです。 (OSはXP) どういう場合のやり方かと申しますと 1. セルAに一定の数字・文字を入力すると、応じてセルBに一定の数字が反映される。 例えば、 (1)A1に「5」と入力すると→B1が「40」となる、(2)A2に「4IIIa」と入力するとB2が「35」になる という具合です。セルAは数字のみでなく文字の場合もあります。セルBは数字のみです。 上のような場合に対応できるようなやり方を教えていただければ幸いです。 2. セルCに一定の数字・文字を入力すると、応じてセルDとEに一定の数字・文字が反映される。例えば、 (1)セルC1に「イ」と入力すると→D1が「4割以上」となり→E1が「20」となる、(2)セルC2に「ロ」と入力すると→D2が「2割未満」となり→E2が「10」となる という具合です。セルCとDは数字のみでなく文字の場合もあります。セルEは数字のみです。 上のような場合に対応できるようなやり方を教えていただければ幸いです。 お知恵を拝借できればと思います。 よろしくお願いいたします。

  • 入力した数値を複数の一定値で割るには?

    質問です。エクセルで表計算を作っていますが、入力をした数値に、ある複数の一定数値から該当する数値を選び、 割るにはどのようにセルに指示をすればよろしいのでしょうか? <例>数値A÷複数一定値B,C,D,E,F、etc・・・の中から一定値Cを選択して計算。 エクセル初心者ですが、よろしくお願い致します。

  • エクセル置換?方法を教えてください

    エクセルで置換?というのか良く解りませんが、やりたい事は次のような事です。 セルA1にSA-123456という様に最初の二桁は英文字、-の後6桁の数字があります。その最初の二桁目の英文字にはA,B,C,Dのいずれかが入ります。このA,B,C,Dを判断して隣のB1セルにAの場合数字の1をBの場合2をという具合にA,B,C,Dに対し1,2,3,4を隣のセルに入れたいのですが宜しくお願い致します。

  • EXCELの計算結果によって音を出したりはできますか?

    こんにちは。 エクセルの計算結果の数値が一定以上ならサウンドを出したりさせる方法はありませんでしょうか? 例えば、C1=A1-B1 の様な計算式を設定しておくとして、C1の数値が10以上なら音を出して知らせる、というような事をしたいと思っています。 A1 B1 C1 100 80 20 ←この場合計算結果のセルC1の数値が10以上なので音が出る EXCELの標準機能だとできないと思うのですが、何かしらの方法を使って実現することはできますでしょうか?

  • Excelで次の文字を予測したいです。

    Excelで次の文字を予測したいです。 数値だと出来ると思うんですが文字だとやり方が分かりません。 たとえば a,b,a,c,d,a,c,aで次の文字は何が来るか、またはその確率。 不可能なんでしょうか?それともエクセルでは出来ないのでしょうか? どなたかわかる方がいらっしゃったら教えていただけると幸いです。

  • EXCELのセルで使われている数字を一定毎に増やしたい。

    EXCELのセルで使われている数字を一定毎に増やしたい。 もしかしたら、似たような質問があったかもしれませんが見つけられなかったので質問します。 A1 =日報!D42 B1 =日報!D88 C1 =日報!D134    ・    ・    ・ と、いうように参照されている数字を一定数(ここでは46)毎に増やしたいのですが可能でしょうか? (実際は参照だけではなくIF等の関数が入ったりすることもあります) 数字のみならば二つ選んだ状態でフィルをすると可能なのは判るのですが・・・ どうかよろしくお願いします。 EXCELのバージョン:EXCEL2002

  • エクセル2007で質問です

    エクセル2007での質問です。 早速ですが、 1~10まではA、11~20まではB、21~30まではC といった具合にそれぞれの数値を仕分けをしたいと考えています。あるセルにそれらの数値を入力すると、隣のセルにA、B、Cなどと分類が表示されるシートを作成したいのですが、同じような表を作ったことのある方などわかる方がいらっしゃれば教えていただきたく思います。 よろしくお願いします。