アプリ版:「スタンプのみでお礼する」機能のリリースについて

1から10までの数をA1~A10のセルに重複なしでランダムに表示する際に,
今まで,RAND関数,RANK関数,RANDBETWEEN関数,sortedlistクラスなどを使っていました.

そこに,A1には2はダメ!,A2には4はダメ! … というように,各セルで表示される数を制限
した下でランダム表示したいのですが,どのようにすればいいか思いつきません...

良い考えがあれば,是非教えて下さい.お願いします.

A 回答 (4件)

作業列を使って対応します。


A1セルからA10セルに1から10までの数値をランダムに並べるとして、B列にはA1セルが2はだめとするならB1セルに2、A2セルが4はだめとするならB2セルに4と入力します。他の条件の場合のB列のセルにその数値を入力します。
C1セルには次の式を入力してC10セルまでドラッグコピーします。

=RAND()

D1セルには次の式を入力してD10セルまでドラッグコピーします。

=IF(RANK(C1,C$1:C$10)=B1,0,RANK(C1,C$1:C$10))

その後にA1セルには次の式を入力してA10セルまでドラッグコピーします。

=IF(SUM(D$1:D$10)=55,D1,"")

これでD列での合計が55の場合にはA1セルからA10セルには1から10までの数値がランダムに表示されます。
B列で制限された数値を考慮した数値がランダムに表示されます。
表示されない場合にはF9キーを押してください。
    • good
    • 0
この回答へのお礼

回答、ありがとうございました。

この方法だと制限を増やしてもできそうですね。

この方法は考え付きませんでした。

とても参考になりました。

お礼日時:2012/11/28 16:55

失礼。


乱数の範囲は1~10でしたね。
C列の式を↓にしてください。
=RANDBETWEEN(1,9)
    • good
    • 1

こんなのは?


乱数は整数で、範囲は0~100のとします。
B列にはその行でNGな数字を入れておきます。
C列には↓の式を入れ、0~99の範囲の乱数を発生させます。
=RANDBETWEEN(0,99)

A2に↓の式を入れます。
=C2+IF(C2>=B2,1,0)

本来の範囲(0~100)より1小さい範囲(0~99)の乱数を発生させ、その乱数がNGな数値以上の場合+1しています。
「EXCELで乱数表示に条件を加えたいので」の回答画像2
    • good
    • 0
この回答へのお礼

回答、ありがとうございます。

このようにして、特定の数値を外す方法があったんですね。

とても参考になりました。

お礼日時:2012/11/28 16:53

2はダメ!という場合はランダムにはなりませんが、


=IF(RANDBETWEEN(0,10)=2,RANDBETWEEN(0,1),RANDBETWEEN(3,10))
    • good
    • 2
この回答へのお礼

回答、ありがとうございます。
IF文を使う方法がありましたか…。

参考になります。

お礼日時:2012/11/28 16:52

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A