
No.2ベストアンサー
- 回答日時:
ご質問の内容は、いわゆる「部分和問題」の一種で
残念ながらExcelの数式で解決するのは困難です。
数式以外のアプローチで解決できる可能性はありますが
以下のような条件によって(可能かどうかも含め)話が違ってきます。
以下「合計が一致する各商品の個数の組合せ」を「解」と呼びます。
●解が複数ある場合
解は一つとは限りません。
解が複数ある場合に
・どれか一つの解が判ればよい
・できるだけ多くの解を知りたい
・すべての解を求める必要がある
いずれかによって話が違います。
●解がない場合
合計がキッカリになる個数の組合せがないこともありえます。
・キッカリになる解が必ずあるハズ
・解がない場合に、ないことが判ればよい
・できるだけ近い額になる組合せを知りたい
・合計以下で近い額になる組合せを知りたい
・合計以上で近い額になる組合せを知りたい
いずれかによって話が違いきます。
●商品の種類
商品の種類が多いほど調べるべき組合せが増えます。
商品の種類が
・数種類しかないのか
・数千種類あるのか
で話が違います。
●単価と合計の比
各商品の単価が小さいほど/合計の額が大きいほど、
調べるべき組合せが増えます。
単価と合計の比が、
・1:10程度なのか
・1:1000といったオーダーになるのか
で話が違います。
商品の種類が少なく、解を一つ見つければ良いような場合には
Excelの機能である[ソルバー]で解が見つかることもあります。
一方、商品の種類が多い場合や、すべての解を知りたい場合は
VBA(マクロ)を使うのが現実的です。
VBAを使うにしても、さまざまなアルゴリズムが考えられますが
とりあえず再帰処理によるコードを上げておきます。
B1セルに合計、B4セル以下に各商品の単価を入力して実行すると
合計が一致する商品の個数をC列以降に書き出します。
以上ご参考まで。長乱文陳謝。
Dim oRng As Range
Dim oAry() As Long, tAry() As Long, rAry() As Variant
Dim oCnt As Long, rCnt As Long, rLmt As Long
Dim t As Variant
Sub Sample()
Dim i As Long
t = Timer
Set oRng = Range(Cells(4, 2), Cells(Rows.Count, 2).End(xlUp))
oCnt = oRng.Cells.Count
rLmt = Columns.Count - 2
rCnt = 0
ReDim oAry(1 To oCnt)
ReDim tAry(1 To oCnt)
ReDim rAry(1 To oCnt, 1 To rLmt)
oRng.Offset(0, 1).Resize(, rLmt).ClearContents
For i = 1 To oCnt
oAry(i) = oRng(i, 1)
Next i
Call SampleS(1, Cells(1, 2).Value)
oRng.Offset(0, 1).Resize(, rLmt).Value = rAry
MsgBox rCnt & " 通り" & vbCrLf & Format(Timer - t, "0.00 秒")
End Sub
Private Sub SampleS(ByVal iIdx As Long, ByVal tSum As Long)
Dim i As Long
If tSum = 0 Then
rCnt = rCnt + 1
For i = 1 To oCnt
If tAry(i) <> 0 Then
rAry(i, rCnt) = tAry(i)
End If
Next i
If rCnt = rLmt Then
oRng.Offset(0, 1).Resize(, rLmt).Value = rAry
MsgBox rCnt & " 通り以上" & vbCrLf & Format(Timer - t, "0.00 秒")
End
End If
Exit Sub
End If
If iIdx > oCnt Then Exit Sub
For i = Int(tSum / oAry(iIdx)) To 0 Step -1
tAry(iIdx) = i
Call SampleS(iIdx + 1, tSum - oAry(iIdx) * i)
Next i
End Sub
参考URL:http://ja.wikipedia.org/wiki/%E9%83%A8%E5%88%86% …
No.1
- 回答日時:
例えば、「AはBより2個少ない」とか、「CはBの4倍」と言うような、各商品毎の個数の関係が判明しているのであれば可能になりますが、その様な関係が無く、全く無関係に商品の個数が決まるのであれば、逆算する方法は、この世に存在しません。
エクセルは勿論、どんなスーパーコンピューターを使って、天才数学者が計算したとしても答えは出ません。
何故なら答えが存在しないからです。
例えば、Aが300円、Bが200円、Cが100円の時、合計が1000円だとします。
Aが2個、Bが1個、Cが2個の時は合計が1000円ですが、
Aが1個、Bが2個、Cが3個の時や、
Aが1個、Bが1個、Cが5個の時や、
Aが1個、Bが3個、Cが1個の時も
全て合計が1000円になります。 各商品の値段と料金の合計が同じである組み合わせが幾つも存在しているのですから、他の情報が無ければ、どの組み合わせが正解であるのかを、判断する事は不可能です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセル関数】複数条件に該当する場合、別の列の数値を合算する。 9 2022/07/09 08:46
- 消費税 消費税の納税額の計算 1 2023/02/19 18:12
- Excel(エクセル) スプレッドシートでの質問です 1 2023/07/06 20:43
- 簿記検定・漢字検定・秘書検定 棚卸減耗損について 2 2022/05/19 04:48
- Excel(エクセル) エクセル 関数について 4 2022/08/05 11:03
- その他(お金・保険・資産運用) 至急!【Wolt】各メニューの価格設定の簡単な計算方法 3 2023/03/05 11:58
- Excel(エクセル) グループの最後の行に書式、計算式なども同じ行を追加するマクロを教えてもらえませんか。 7 2022/05/18 10:13
- 会社・職場 レジの打ち間違いについて お弁当屋でレジの仕事してるんですが… 1つの商品を打ち間違いして レジ締め 2 2023/07/14 14:57
- Google Maps エクセルについて 2 2022/11/27 11:00
- Excel(エクセル) 荷捌作業効率をあげるためのエクセル関数を教えてください。 8 2022/10/07 08:17
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで合計値を基にデータを均...
-
なぜ、双対問題(双対性)を考...
-
教えてください。
-
答えを教えて
-
x^y=y^x (x>y)を満たす整数解は...
-
数学1、2次関数の最大値・最小値
-
a(x-α)(x-β)
-
この問題がわかりません。x^2-n...
-
1階非同次線形微分方程式の解...
-
このとき逆にたしかに成立?
-
実数解がとりうる値の範囲
-
数学についてです 「 aを定数と...
-
数学の質問です。 2つの2次方程...
-
http://www.iryokagaku.co.jp/f...
-
微分積分の極限についての問題...
-
2次不等式の解の答え方について
-
3次方程式
-
解に3つ以上±や∓がある時複号...
-
線形代数の非自明解についてで...
-
三次方程式の解と係数の関係の問題
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelで合計値を基にデータを均...
-
微分の重解条件は公式として使...
-
16の4乗根は±2ではない!?
-
適正解と最適解
-
複数の品目での単価と全体の合...
-
3次関数と直線が接する場合、...
-
解なし≠解はない
-
解に3つ以上±や∓がある時複号...
-
なんで4次方程式f(x)=0がx=2を...
-
aの値に関係なくとよく問題で見...
-
2次方程式X^2-3X-1=0の2つの...
-
3次関数と1次関数が接するとき
-
tanX=Xの解
-
微分方程式 定常解について・・・
-
答えを教えて
-
ピクロスでマスを間違って埋め...
-
微分方程式で、分母=0の場合は...
-
必要条件、、十分条件、必要十...
-
数学II@微分法に関する問題
-
高校数学の問題について 2次方...
おすすめ情報