プロが教える店舗&オフィスのセキュリティ対策術

合計が100になるように、30個前後くらいのセルに適当に二桁の数字を当てはめる計算式はありますか?

A 回答 (3件)

エクセルを使い、合計が100じゃなく1000になるような、2ケタの数字を乱数で作成してみます。



準備:
ご利用のエクセルのバージョンに応じた方法で、エクセルのオプションで「反復計算」のチェックを入れて回数を余裕を見て10000にする

手順:
A1に
=IF(SUM(A:A)=1000,A1,INT(RAND()*1000/COUNT(A:A)*2+10))
と記入、下向けに30前後コピー貼り付ける。
    • good
    • 0

自力でアルゴリズムを考えられないということでしょうか。


難しく考えず、ひとつずつ考えてみてください。

まずは
 「合計100」「30個前後」「二桁の数値」なんて条件を捨てて、
 「5個」で「合計10」「一桁の整数」
みたいに考える。
次に
 適当と言うのがランダムなのか連続しているのか
を考える。
最後に
 最終的に条件は常に変わるのか
を考える。

 一つ目の考えは、思考を単純にするために
 二つ目はアルゴリズムを決定するために
 三つ目は条件を変えて利用する場合を考慮する必要があるか明確にするために
それぞれ必要です。

まあ、質問時に二つ目のランダムなのか連続しているのかを明確にしていない時点で
考えがまとまっていないのは見えていますので、落ち着いて条件を考え直してください。
まずはこれを自身で決定しましょう。
でないと具体的な回答が思惑と違う方向で示されることがありますからね。


ちなみに連続しているなら、上記の5つのセルの合計が10になる整数で考えると
1つのセルに10÷5の数値を入れれば良いので各セルに
 =10/5
でOK
 10/5
+ 10/5
+ 10/5
+ 10/5
+ 10/5
ってことね。
4つのセルの合計が10になる整数の場合は少し考える必要があります
単純に合計値(10)をセルの数(4)で割ると2.5になるので、これを何とかします。
自分だったら(ここ重要。人によって考え方が異なります)
 10/4
+ 10/4
+ 10/4
+ 10/4

 (10/4)*1
+ (10/4)*2-(前のセルまでの合計)
+ (10/4)*3-(前のセルまでの合計)
+ (10/4)*4-(前のセルまでの合計)
と直した後
 INT((10/4)*1 )
+ INT((10/4)*2-(前のセルまでの合計))
+ INT((10/4)*3-(前のセルまでの合計))
+ INT((10/4)*4-(前のセルまでの合計))
としますね。
INT関数(小数点以下切り捨て)ではなくROUND関数(小数点以下四捨五入)でも良いでしょう。

こんな感じで少しずつ直しながら確認するんです。
面倒でもこーやって考えないとアルゴリズムはまとまりませんよ。
あとはこれを「二桁」「合計100」で考え直せばまずはOK。
最後に「セル30個」の場合を考えてみましょう。
すっごく面倒かも知れませんが、この手の問題を自力で解決できるようにするための
トレーニングと思ってがんばってください。
    • good
    • 0

ない!


なぜなら「30個のセルに適当に二桁の数字を当てはめる」とその合計は 300 以上になるから。二桁の数値の最小値は 10 でしょ?その 30個を合計したらどうなる?
    • good
    • 0

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

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


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