こんにちは。
エクセルで、以下のような問題を解くことはできますでしょうか?
基本的な関数しかできず、自分で調べたところ。ソルバーや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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- 数学 中一数学の【最大公約数と最小公倍数】の問題です。 1問だけでも教えていただけると嬉しいです。 (1) 4 2022/08/01 10:19
- 数学 数学Aについて分からない問題があります。 答えは載っているので分かりますが、 解き方がわかりません。 5 2023/02/03 18:58
- 数学 数学A、確率の問題です。 nを4以上の自然数とする。数字の1からnが書かれたカードが1枚ずつ、合計n 3 2023/07/02 22:54
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) 図書カードの分配 7 2023/05/09 15:57
- 数学 中学2年生の数学の問題です 5 2022/04/25 22:02
- その他(Microsoft Office) ある表(10桝程度)の中に数字が入っています。ダブっている数字を除く数字の合計数の計算方法 5 2023/02/15 11:33
- Java Java 南京錠 2 2023/02/04 11:46
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
小学校4年生の算数の教科書で...
-
高1数学Aの問題で、 「a、bは整...
-
190分はなん時間何分ですか?
-
2は5で割り切れません。 あまり...
-
4の100乗を、7で割った余りとい...
-
下記の問題について、「5は素数...
-
1から9の数字を書いたカードが...
-
10進法⇒2進法には何故2で割るか
-
5進法の計算問題の解き方
-
これの求め方を教えて下さい!...
-
1000本のワインがあって、1つは...
-
読んで割っても6で割っても3余...
-
0から9までの数字を使ってでき...
-
負の余りはあり得ますか?
-
問題 整式X³+X²-2X+1を整式B...
-
小学算数の問題です
-
中3の数学の問題
-
順列、組み合わせの問題です。 ...
-
1 から 9 までの数字を使って引...
-
Accessで割り算の余りを求める...
おすすめ情報