No.3ベストアンサー
- 回答日時:
いわゆる「ナップザック問題」と呼ばれる種類の問題になると思います。
14個を選択する/しないなら、総当りしても16384個ですから、力技でも行けるかも。
画像を参考に、
1行目にデータの数値を横並び。
2行目に0~13の固定値を右から
3行目に2の0乗~2の13乗(8192)の固定値を右から
A列に0~16383の固定値
で、
B4:O16387の範囲に、
B4:=MOD(INT($A4/B$3),2)
をコピペして2進数の各桁の値を
P4:P16387の範囲に、
P4:=SUMPRODUCT($B$1:$O$1,B4:O4)
をコピペして、2進数の各桁のビットとデータの数値の積和
で、全16384通りの計算が行われるので、A4:末尾を選択して並べ替えすると、
合計が30002となる、
1515
2748
2195
680
7142
305
667
9950
4800
が確認できるとか。
--
もっと数値の数が増えると、この方法では厳しいので、
ナップザック問題をExcelで解く
http://www.geocities.co.jp/SiliconValley-Oakland …
みたいなプログラムで解くような事になります。
条件が違うのでプログラムはそのまま使えませんが、似た質問。
エクセルで、「袋詰め問題」を解きたい - Excel(エクセル) 解決済 | 教えて!goo
https://oshiete.goo.ne.jp/qa/1255891.html
この回答へのお礼
お礼日時:2017/06/12 13:32
例では14個の数値を示しましたが、その時によって個数は変動します。
だいたい20個前後。
それを30000とか、一定の数値以上で最小のもの、との条件に当てはまる計算式を作れないかな、と安易に考えていました。
ナップザック問題というんですね。
ちょっと勉強してみます。
No.4
- 回答日時:
こんにちは
すでに、ANo3様が回答を出されていらっしゃいますが、エクセルにはソルバー機能があるので(私も使ったことはありませんが)、試しにやってみました。
https://support.office.com/ja-jp/article/%E3%82% …
(リボンのデータタブのソルバーです。ない場合はアドオンで追加する必要があります)
添付図のB列が0か1の値を取るものとして、E1に目的とする値を
=SUMPRODUCT(A1:A14,B1:B14)
として計算させています。
ソルバーの条件として、最小値を求めるものとして
E1 <= 30000
B列を0か1にするために
B1:B14 = 整数
B1:B14 <= 1
B1:B14 >= 0
の条件設定をしています。
解法を「エボリューショナリー」として実行すると、ANo3様の回答と同じものが得られます。(解答が出るまでに何十秒かかかります。)
しかしながら、「GRG 非線形」(←こちらが一般的ではないかと思われますが)として実行すると正しい解答は得られませんでした。(近いものにはなりますが)
エクセル本体の機能なので利用できれば簡単かと考えたのですが、私が使ったことがないのと、内部の計算方法や各種設定もちゃんとわかっていないので、何とも言えませんが正しい使い方をしていないのかもしれません。
こんな方法もあるよというご参考までに。
No.2
- 回答日時:
ちょっと突き放しすぎるのも気が引けるのでアドバイス。
選択するセルの数が最大になる場合と最小になる場合を考慮する必要がある。
1
2
3
4
5
6
7
8
9
の、合計が15になる組み合わせを考えるとき、
1,2,3,4,5で15
6,9で15
7,8で15
8,9で15
のような組み合わせができる。
(ほかにもあるけどね)
こういった点も考慮する必要があるので、演算がめんどくさいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) Excel2019 列と列(2列)の数値の重複を調べたい 1 2023/05/11 13:35
- Excel(エクセル) Excelで、行に複数の数字が入力されているセルが複数の列存在し、行を跨いでセル内の数値を並び替える 5 2022/06/17 18:03
- Visual Basic(VBA) ExcelのVBAを使い、複数シートの同一箇所を、同一条件にて一括でソルバーを回す方法について 1 2022/04/23 11:49
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Excel(エクセル) 一つのセルに複数の関数を入力する方法 4 2022/09/30 13:42
- Excel(エクセル) エクセル 条件に合う日付に入力された時間数の合計したい 4 2022/06/17 22:18
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Excel(エクセル) Excel 特定セルの数値を参照したセルの0表示が空白にならないのはどうしてか? 3 2022/04/28 22:23
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
Microsoft1Officeの互換ソフト...
-
Excel ピボットテーブルで日付...
-
エクセル関数を教えてください
-
【マクロ】その時、その時で変...
-
【マクロ】読取専用のファイル...
-
LOOKUP関数を使えばいいのでし...
-
エクセル 白黒印刷で白線を印刷...
-
【関数】先頭だけにある、半角...
-
【関数】適切な文字数の数字を...
-
Excelのチェックボックスの使い...
-
エクセルでの作業計算方法について
-
Excelのpivotについて質問です
-
WPS OFFICEでの縦書きについて
-
時間によってファイル名が変わ...
-
エクセルのセルに同じ大きさの...
-
Aというブックの1というシート...
-
エクセルの順位別一覧表の自動...
-
西暦や和暦の表示をyyyymmdd表...
-
【マクロ】エクセルにかいてあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel 2019 のピボットテーブル...
-
[関数得意な方]教えて下さい・...
-
Excelにてある膨大なデータを管...
-
[関数について]わかる方教えて...
-
Excel初心者です。 詳しい方、...
-
excelの不要な行の削除ができな...
-
エクセル関数に詳しい方教えて...
-
INDIRECTを使わず excelで複数...
-
[オートフィルタ]で抽出された...
-
エクセルの神よ、ご回答を! エ...
-
エクセル関数に詳しい方、教え...
-
各ページの1番上の表示について
-
Excelで写真のような表を作った...
-
エクセルで不等号記号(≠)が上に...
-
数学 Tan(θ)-1/Cos(θ)について...
-
Excel 2019 は、SPILL機能があ...
-
Excelで全角を半角にしたいので...
-
条件付き書式を教えてください
-
Excel フィルターを掛けた状態...
-
[オートフィルタ]の適用範囲の...
おすすめ情報