
こんにちは。
エクセルで、以下のような問題を解くことはできますでしょうか?
基本的な関数しかできず、自分で調べたところ。ソルバーやVBAを使えばできるのかもしれないとは思ったのですが、なかなか良い類似例を見つけられず、苦戦しています。
<問題>
「3」「5」「6」「8」…といったランダムな数字が合計になる3つの数字のすべての組み合わせを知りたいです。
たとえば、
「3」なら答えは「1+1+1」
「5」なら答えは「2+1+1」「1+2+1」「1+1+2」
「6」なら答え「4+1+1」「1+4+1」「1+1+4」「3+2+1」「2+3+1」「1+2+3」「3+2+1」…のような形です。
※実は子どもの名付けで、画数の組み合わせを出そうと思っています。
わかりづらい点があるかとは存じますが、お力添え何卒よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
A1に合計[下の例では10]を入れておくとして
●関数利用
A B C D
1 10 1 1 8
2 1 2 7
3 1 3 6
4 1 4 5
5 1 5 4
6 1 6 3
7 1 7 2
8 1 8 1
9 2 1 7
36 8 1 1
B1,C1に1
D1
=A$1-SUM(B1:C1)
下方向・↓
B2
=B1+(D1=1)
下方向・↓
C2
=IF(D1=1,1,C1+1)
下方向・↓
●VBA利用
Sub test()
Dim a As Long
Dim b As Long
Dim c As Long
Dim mySum As Long
Dim WsfC As Long
Dim myRow As Long
Dim newSum As Long
Dim myVar() As Long
Dim myRng As Range
mySum = Range("A1").Value '合計
newSum = mySum - 3 '合計から3を引く
WsfC = Application.WorksheetFunction.Combin(mySum - 1, 2)
ReDim myVar(1 To WsfC, 1 To 3)
Set myRng = Range("B1:D" & WsfC)
Application.ScreenUpdating = False
For a = 0 To newSum
For b = 0 To newSum - a
c = newSum - a - b
myRow = myRow + 1
myVar(myRow, 1) = a + 1
myVar(myRow, 2) = b + 1
myVar(myRow, 3) = c + 1
Next b
Next a
myRng.Value = myVar
Application.ScreenUpdating = True
End Sub
早速のお返事ありがとうございます!
VBAは不慣れなので、教えて下さった関数の方で計算してみようと思います。
基本的な算数?数学?の知識があれば、どうにかなったのかもしれないですね…でも、算数も数学も苦手なので助かりました。
ところで、お手数でなければ、「=B1+(D1=1)」の“D1=1”の部分意味を教えて頂けませんでしょうか?
この形の計算式を初めてみたので、後学のためにもお願いできましたら幸いでございます。
宜しくお願い致します。
No.2
- 回答日時:
それでしたら1.か2.の式でやってください。
同じことです。1.が一番わかりやすいと思います。
1.右端のひとつ上D1が1になったときが変わり目、それ以外は継続
B2
=IF(D1=1,B1+1,B1)
2.あれ?B1は前に出せる。
B2
=B1+IF(D1=1,1,0)・・・★
以下、もしも興味があれば読んでください。
3.★は次のように言い換えられる。
B2
(D1=1)がTRUE→=B1+1
B2
(D1=1)がFALSE→=B1+0
4.確かExcelの関数では、四則演算の中では
TRUEは1,FALSEは0と評価されるんだった..つまり
B2
(D1=1)がTRUE→=B1+(D1=1)
B2
(D1=1)がFALSE→=B1+(D1=1)
5.おお、まとめられる。
B2
=B1+(D1=1)
再び速いご回答ありがとうございます。
すごく勉強になりました!
4の部分は、基本的なエクセル関数のルールをもう少し自分のものにしないとすんなり理解できないなぁ…というレベルではありますが、どうにか理解できました。
エクセルは数学が苦手な文系の強い味方だと思っていましたが、数学的思考で使いこなすともっと便利なのだということを実感しました。
もっと頑張って勉強いたします。
子どもの名付け用リストもどうにか完成しました。
重ねてお礼申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
190分はなん時間何分ですか?
-
2は5で割り切れません。 あまり...
-
順列・組み合わせの応用
-
小学校4年生の算数の教科書で...
-
この余りが1、余りが3という...
-
負の余りはあり得ますか?
-
割り算の問題
-
0から9までの数字を使ってでき...
-
10進法⇒2進法には何故2で割るか
-
数学かどうかわからないのです...
-
エクセル「3つの数字の合計があ...
-
どこが間違っているのでしょうか?
-
割り算の余りについて
-
素因数分解
-
基本的な組合せの問題です。
-
解き方を教えて下さい。
-
13500を何時間何分に直すと? 1...
-
数II 剰余の定理と因数定理 整...
-
因数分解:この解答は正解?
-
1 から 9 までの数字を使って引...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
小学校4年生の算数の教科書で...
-
190分はなん時間何分ですか?
-
2は5で割り切れません。 あまり...
-
問題 整式X³+X²-2X+1を整式B...
-
高1数学Aの問題で、 「a、bは整...
-
0から9までの数字を使ってでき...
-
1 から 9 までの数字を使って引...
-
負の余りはあり得ますか?
-
10進法⇒2進法には何故2で割るか
-
1から9の数字を書いたカードが...
-
解き方を教えてください。 中3...
-
順列、組み合わせの問題です。 ...
-
数的処理(数学 場合の数)の問題...
-
小学生への割り算の答えの確か...
-
ある整数を7ではると、商が10で...
-
確率について
-
6個の柿を3人に分ける場合の数
-
20人を4人の5チームに分ける通...
-
nが3の倍数でないとき
-
小学4年生の算数問題です。どう...
おすすめ情報