
エクセルを使用し、決められた合計になるような数値の組み合わせを表示するようにしたいのですが、どのようにしたらよいか皆さん教えて下さい。
例えば、
B列に
100・50・70・62・58・70・・・と数値が入力されています。
C1に300と入力しておきます。
300になる組み合わせはどれとどれ・・・なのかというものを作成したいです。
多数ある場合は、全ての組み合わせを表示したいです。
表示例として
B3とB5とB15・・・を合わせると合計C1が300になる、又は298又は302になるという表示をしたいのですがどのようにしたらよいでしょうか。
A列にコードを入力しているので数値の重複はありません。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
総当りで組み合わせを試し、その合計が与えられた数字と一致するかどうかを調べるプログラムを書くことになります。
なお、20項目くらいまでは何とか実用的に使えますが、30項目を超えると条件によっては総当りを試すのに数年かかる可能性があります。現実的な時間内に必ず回答が得られるようなプログラムを作成することはできません。
この回答への補足
回答ありがとうございます。
質問があるのですが、
入力してある項目が10項目とすると可能ですか?
また、エクセルにある機能でソルバーというのがあるそうですが
その機能で作成することはできるでしょうか。
No.3
- 回答日時:
「セルの参照」には「C2:C??」のセル範囲を指定。
「記号」で「データ」を選択。
「制約条件」で「バイナリ」を選択。
のようにしておいて、「追加」を押してください。
なお、制約条件を追加する前に、まず「変化させるセル」を先に指定する必要があるかもしれません。「変化させるセル」と、制約条件の追加で指定する「セルの参照」では、同じ範囲のセルを指定します。
xcrOSgS2wY様ソルバーの使い方を教えて下さり、ありがとうございました。
おかげで決められた合計になる組み合わせを見つけることができました。
組み合わせの例は1つですが、
とても助かりました。
ありがとうございました。
No.2
- 回答日時:
ソルバーを使う場合、こんな感じになります。
例えば、
B2,B3,B4,...に数値を入力しておき、
C1に「目標の数値」を入力します。
さらに、ソルバーの下準備として
A2に「=B2*C2」を入力し、これをA3,A4,...にドラッグしてコピー。
A1に「=SUM(A2:A??)-C1」と入力します(A??は、入力した行数までカバーするように)。
こうしておいてソルバーを起動し、目的セルをA1に、目標値の値をゼロに、変化させるセルをC2:C??(入力した行数をすべてカバーするように)に設定し、制約条件に「C2:C?? = バイナリ」を追加して実行します。
うまく組み合わせが見つかった場合、その組み合わせで選択した数字の隣(C2:C??のセル)に1が、選択しなかった数字にはゼロが入ります。1が入っているセルの横の数字をすべて足し合わせると、目標の数値になっているはずです。
ただしこの場合、いくつもの組み合わせが考えられても、そのうち1つしか表示してくれません。(ソルバーの使い方で「次を探す」というのができるのかどうか・・・ちょっと分かりませんでした。)
この回答への補足
早急な回答ありがとうございます。
質問があるのですが、
下記の文↓です。
>制約条件に「C2:C?? = バイナリ」を追加して実行します
ソルバーを起動し、パラメータ設定画面が出てきます。
その時、【制約条件】のところの入力の仕方が分からないので教えて頂きたいのですが。
【追加】をクリックし、【セルの参照】と【記号】と【制約条件】を入れるところがあります。
入力の仕方なのですが、
【記号】のところには、"="イコール"を入力し、【セルの参照】と【制約条件】のところには
何を入力したらよいですか。
【セルの参照】に"C2:C??"??(入力した行数をすべてカバーするように)"を入れたらよいですか。
そうすると【制約条件】のところは何を入力したらよいですか?
すみませんが、『バイナリ』とはどういう意味ですか。
いろいろと分からなくてすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- Excel(エクセル) エクセルシートの合計の変動 5 2022/04/05 15:56
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Excel(エクセル) エクセルで納品書を作成中ですが、関数を教えて下さい。 2 2022/09/05 10:32
- Excel(エクセル) エクセルでSUMIFS関数で条件範囲の部分が#valueになる。 4 2023/04/28 12:42
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Excel(エクセル) 1から9まで表示するのに必要なボタン 1 2023/02/05 19:06
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) Excel(エクセル)でフィルター抽出後、非表示の行を計算しないで、合計を算出する方法 【内容】 添 4 2023/01/30 17:17
このQ&Aを見た人はこんなQ&Aも見ています
-
複数の数字の組み合わせの中から合計がAになる組み合わせを探す方法
Excel(エクセル)
-
エクセル 合計値に一番近い件数を出したい
Excel(エクセル)
-
エクセルで、幾つかの数値を合計が100になるように計算させる方法
Excel(エクセル)
-
-
4
エクセルVBAで、特定の数字になる組み合わせを知りたいのですが・・・
Excel(エクセル)
-
5
EXCELで数値が異なった数字を足して目標値に最も近い組み合わせを選び、かつその目標値を超えないよう
Excel(エクセル)
-
6
Excelで合計値を基にデータを均等に分ける
Excel(エクセル)
-
7
エクセルで特定の数字となる組み合わせを探したい
Excel(エクセル)
-
8
エクセルでの組み合わせ出力方法(計算含む)
Excel(エクセル)
-
9
数字の配分
Excel(エクセル)
-
10
エクセル2010で合計5000に近い数字の組み合わせを選ぶ
Excel(エクセル)
-
11
エクセルで重複しない組み合わせ出力方法
Excel(エクセル)
-
12
Wordでこのような三角が出てくるようになってしまったのですがどうやったら消せますか?
Word(ワード)
-
13
ナップザック問題?をエクセルにて解決したいです。
Visual Basic(VBA)
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
名簿の漢字名を関数で半角カナ...
-
Excelのテーブル上のセルの保護...
-
エクセルで休日の「休」という...
-
EXCELで縦の行全てに一括して文...
-
EXCEL 連動したドロップダウン...
-
エクセルでエンターを押すと隣...
-
Excelでセルを次の行の先頭の列...
-
エクセルの数式を等間隔にオー...
-
【エクセル】入力規則のプルダ...
-
指定した行に飛ぶ事って可能で...
-
エクセル上でエンターキーを押...
-
excelで左のセル項目にあわせた...
-
エクセルで決められた合計にな...
-
エクセルで行の一番上にセルに...
-
空白部分に連番の数字を記入し...
-
エクセル・真ん中の数字のみイ...
-
エクセルでプルダウン複数選択...
-
Excelで数値をgからkgへ(÷1000)
-
Excelで相対度数を求めたいので...
-
エクセルでデータを扱っている...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL 連動したドロップダウン...
-
エクセルで休日の「休」という...
-
名簿の漢字名を関数で半角カナ...
-
Excelのテーブル上のセルの保護...
-
EXCELで縦の行全てに一括して文...
-
Excelでセルを次の行の先頭の列...
-
エクセルでエンターを押すと隣...
-
【エクセル】入力規則のプルダ...
-
Excelで数値をgからkgへ(÷1000)
-
空白部分に連番の数字を記入し...
-
エクセルで行の一番上にセルに...
-
エクセルで空白に自動で文字を...
-
エクセルで決められた合計にな...
-
指定した行に飛ぶ事って可能で...
-
エクセルの数式を等間隔にオー...
-
エクセルで、複数の同一内容の...
-
エクセルで既存数値を税抜きに...
-
A1 B1 A2 B2 A3 B3 の順に入力...
-
一つのセル内でVLOOKUPで抽出し...
-
オートフィルを列すべて(一番...
おすすめ情報