• 締切済み

この場合の「最小値」を求めたい

今回の質問と同じ題材(異なる内容)のものをExcelカテゴリで投稿させていただいていましたが、また内容の異なる質問をさせていただきます。 ・・・ 多数の商品があります。今後また商品が増えていくため、最終的な総数・値段の合計は分かりません。現在の個数・値段は分かります。 これらの商品を袋に詰めていくのですが、1つの袋につき合計一万円以上となるように詰めていきます。だからといって、全商品の合計が一万円以上だから1つの袋に詰めてお終い、というわけではありません。 例えば「全商品(5個以上)の値段の合計が五万五千円で、上手に袋詰めすれば一万円以上の袋が5つ作れる」のであればそのようにしたいです。逆に「全商品(5個以上)の値段の合計が五万五千円で、5つの袋にどのように詰めても、1つは一万円未満の袋になってしまう」こともありえます。そのときは4つの袋に詰めて4つとも一万円以上の袋にできれば良いのですが、それでも駄目なら袋3つ・・・と、とにかく一万円以上の袋は多ければ多いほど良いわけです。 ・・・ そこで、「もう1つ商品を追加し、上手に袋詰めし直したら一万円以上の袋をさらにもう1つ作れたとする」と、最低でも何円の商品を追加すれば良いか?その額を求めたいです。 ・・・ 一応、Excelデータとして、A列に商品名、B列に値段が打ち込まれているので、上記の額がD1セルに自動的に表示されるようにしたいです。また冒頭にもあるように、今後データに打ち込む商品は増えていくので、その都度D1セルの表示が変わっていくものが良いです。 以上、宜しくお願いいたします。

  • ao-b
  • お礼率74% (230/307)

みんなの回答

  • ki073
  • ベストアンサー率77% (491/634)
回答No.1

整数(線形)計画法のソルバーを使うことで簡単に求められます。 Excelにも有るようですが、ちょっと荷が重いかも知れません。 Excelのソルバーを使ったことが有りませんので、こちらは他の方にお任せするとして、 GLPKという無料で使えるソフトがあり、そちらで良ければ書き込んでください。

ao-b
質問者

補足

回答ありがとうございます。「ソルバー」「GLPK」というものを調べてみたのですが、これは特定言語でプログラミングする必要があるようですね。ちょっと今回は緊急なので、できそうにありません。 というか、今回に関しては詰め替えを繰り返して自力で試行錯誤、解決しました。 質問のお題がなくなってしまいましたので、締め切らせていただきたいと思います。 ありがとうございました。

関連するQ&A

  • Excelで数値が自動的に入力されるようにしたい

    この質問は4カ月ほど前に投稿させていただいたものと同じ内容で、当時解決につながる様なアイデアをいただけなかったのですが、また必要が出てきたため再び投稿させていただくものです。 様々な値段の様々な商品があり、今後も増えていきます。 これらの商品を袋詰めしていくのですが、1つの袋に商品の値段の合計が1万円以上になるように詰めていきます。かつ、使う袋の数は多ければ多いほど良いです。 例えば、全商品の値段の合計が4万5千円だとして、その内訳が1千円・2千円・3千円・・・・9千円の(たまたま千円の倍数の)9個だとしたら、ちょうど1万円の袋が4つ出来、5千円の商品が余ります。その5千円の商品は適当にどれかの袋に加えるとして、とにかく1万円以上の袋が最大で4つ作れるということになります。逆に、3つの袋に分けるような詰め方は、上記の「使う袋の数は多ければ多いほど良い」に反するため、不適当です。 このような条件を満たすような商品の各袋ごとへの分け方をExcelで求めたいです。 A列に商品名、B列に値段を入力します。 C列に袋の番号(ダミー)が自動入力されるようにしたいのです。 上記の例だと B1セルに1000と入力すればC1セルに1(または0または表示なし)と、 B2セルに2000と入力すればC2セルに1(または0または表示なし)と、 ・・・ B4セルに4000と入力すればC1~C4セルに1と、 ・・・ B6セルに6000と入力したときに、例えば、C1=C3=C6=1、C2=C4=C5=2、というように、自動的に変更されるようにしたいです。なお、C列のセルに同じ数値が入る組み合わせは複数パターンがあると思いますが、1パターンだけ出れば大丈夫です。 逆に、B6セルに6000と入力してもC列のセルが全て1が自動入力されてしまったら、これは「2つの袋にどのように商品を詰め分けても、必ず1万円未満の袋が出来てしまう」ことを意味するので、不適当となります。 Excelのどのような機能を使えば、以上のようなことができるでしょうか。 宜しくお願いいたします。

  • Excel:組み合わせを上手に選ぶ方法

    手元のExcelデータには、A列に商品名、B列に値段が入力されています。 これらの商品をいくつかのグループに分けて袋詰めするのですが、全ての袋を一定額(例えば10000円)以上にしつつ、袋の数をなるべく多くしたいです。 そこで、Excel上でその最大の袋の数と組み合わせを瞬時に計算できないかと考えています。 アルゴリズムとしては、例えば、袋の数が「商品数-1」個のときに全ての袋を一定額以上にできるか、もし全ての商品の組み合わせについて一定額以上という条件を達成できなければ袋の数を「商品数-2」個・・・としていくことを考えましたが、とてつもなく面倒そうです。 しかも、入力される商品はまだ増えていくので、その都度簡単に計算し直せる方がいいです。 以上の条件で、Excelを活用できるようなアイデアをいただければと思います。 宜しくお願いいたします。

  • 効率よく補数を求める方法について

    さまざまな値段のついた数多くの商品を袋詰めするのですが、1つの袋に詰める商品の値段の合計が全ての袋について1万円以上になるようにしつつ、袋の数をできる限り多くしたい、という前提です。 例えば、8000円の商品が7個あるとした場合(合計56000円)、袋を3つ用意して、ある袋に3個、別の袋に2個、また別の袋に2個入れることで条件を満たします。 もし4つの袋に分けようとすると、どうしても8000円の商品1個だけしか入らない袋ができてしまうため、上記の「全ての袋について1万円以上」という条件を満たしません。 また、2つの袋に分ける方法は、「袋の数をできる限り多くしたい」という条件に合いません。 よって、この場合は袋を3つ用意するのが最適解となります。 その上で、袋をもう1つ増やすために商品を1個追加するとしたら、最低何円の商品を追加すればよいか求めたいです。 上記の例だと、2000円の商品を追加すれば3袋から4袋に増やせることが感覚的に分かっていただけると思います。あるいは、「8000円の商品7個と1999円以下の商品1個を用いて、1万円以上の組み合わせを4組作ることはできないだろう」と。 しかし、現在手元にあるデータはキリのいい数字ばかりでなく、しかも1つずつの商品はもっと安い値段なので、感覚的に捉える事ができず、だからといって「1円追加したら・・・2円追加したら・・・」とアルゴリズム的にやっていく気にもなれません。 そこで、今回の質問は以下のようになります。 「1万円以下の商品が複数あり、それら全てを上手に袋に詰め分けることで、全ての袋を1万円以上にしつつ、袋の数を最大にできたという前提で、 最低で何円の商品を1個追加すれば、袋をさらに1つ増やせるか」 この「何円」の部分を素早く求めたいのです。 ちなみに、この質問は以前から投稿させていただいている問題の一部で、先日も同様の質問をさせていただいていたのですが、いただいた回答が「袋の数を最大にできていない前提」でのアイデアだったため、参考にならないと判断せざるを得ませんでした。 以上、宜しくお願いいたします。

  • この問題の計算方法・公式について悩んでいます。

    まず、この質問を投稿するまでExcelカテゴリで質問させていただいていたのですが、「計算方法が分からないのでExcelでどう処理したらいいのかわからない」というような内容の回答をいただいてしまったため、一旦打ち切ってこちらで質問させていただくことにした次第です。 宜しくお願いいたします。 様々な商品があります。1円以上9999円以下で、個数は今後増えていくため決まっていません。 これらの商品を袋詰めしていくのですが、1つの袋に商品の値段の合計が1万円以上になるようにしたいです。かつ、使う袋の数は多ければ多いほど良いです。 例えば・・・ 1000、2000、3000、4000、5000、6000円の6個(21000円)の場合、1000+3000+6000=10000、2000+4000+5000=11000で2袋作れます。1000+2000+3000+4000=10000、5000+6000=11000でも同じく2袋となります。袋の数が最大であれば、商品の袋への分配パターンは特にこだわりません。 8000円5個(40000円)の場合は2袋となります。3袋に分配しようとするとどうしても8000円(1万円未満)の袋が出来てしまうためです。 1000、2000、3000、・・・、8000、9000円の9個(45000円)の場合、ちょうど10000円の袋が4つ、余った5000円の商品は適当にどれかの袋に加えるとして、とにかく4袋作ることができます。これを3袋に詰めるようなやり方は上記の「使う袋の数は多ければ多いほど良い」に反します。 例をあげるときりが無いのでこのくらいにしますが、今回皆様のお知恵をお借りしたいのは、 1.ある時点で手元にある商品を上手に袋分けしたら、最大でいくつの袋を作れるか。 2.袋の数が最大になるように商品をどう分ければよいか(1パターン分かればよい)。 3.また、もう1つ商品を追加して袋の数をさらに増やせるのであれば、最低いくらの商品を追加すればよいか。 以上3点です。 何かあれば補足します。宜しくお願いいたします。

  • エクセルの集計方法

    下のようなデーターがあるときのエクセルのうまい集計方法があれば教えてください。 1)データーは4列2000行くらいあります。 2)A列には商品名、B列には売上件数、C列には売上金額、D列には利益が各々記入されています。 3)毎月データーが追加されていくのですが、同じ商品名のデーターもかなり追加されます。 4)同じ商品名のデーターはB列・C列・D列を合計値に置き換えていきたいのです。 5)たとえばA列の商品名・カメラにはB・C・D列とも1月から8月の合計である、12件・12万円・2万円がすでに入力されています。 ここに9月分のデーターとして3件・5万円・1万円が追加されたとき、商品名カメラの行は15件・17万円・3万円に置き換えたいのです。 現在手作業でやっていますが、段々商品が増えてきており、手間がかかるようになっています。 うまい方法があればご教示ください。

  • エクセルで2つのセルの合計から最小値検索

    エクセルで2つのセルの合計の一番小さい合計のものが どの区分か、その値はどれかを検索したいのですが、 前にことらで質問して回答していただいたものを参考に 考えてみたのですが、INDEX、MATCHと組み合わせてもうまく検索 できませんでした... 分かる方おられましたら、どうか教えていただきたいです よろしくお願いします。 データはB2~X4まではいっていて、(実際にはもっとたくさん行があります) Y列には、3行目と4行目の商品の列の合計の一番小さいものの 区分を表示したく、 Z列にはその値を表示したいのですが、 欲をいえば合計の行を追加しなくてもY列Z列に表示させることは 可能でしょうか?      B列  C列  D列  E列    X列     Y列   Z列 2行目 区分  1区分,2区分,10区分、、、5区分    3行目 りんご1  3  、 15 、 20 、、、1     5区分    1 4行目 りんご2 15  、 10 、 6  、、、12    5区分   12 よろしくお願いします。

  • この場合の計算式を教えてください。

    図のように、「元データ」から「班別合計」を作りたいのですが、 元データのA列が班別合計のA列と同じで、 かつ、元データのB列が班別合計のB列と同じで、 かつ、元データのC列が班別合計のC列と同じ場合、 班別合計のD列に各班の合計額が出るようにしたいです。 班別合計のD列(黄色に塗った列)に入る計算式を教えてください。 (ちなみに、1つのBookに「元データ」というSheetと「班別合計」というSheetを入れてあります。) よろしくお願いします<(._.*)>

  • 組み合わせを上手に選ぶ(内容を変えて再投稿)

    手元のExcelデータには、A列に商品名、B列に値段が入力されています。 ここでC列に1以上の整数を1・2・3・・・と順に、以下の条件に合うように自動的に入力したいです。 条件とは、C列に同じ数値が入った行のB列セルの合計が、(全てのC列の数値において)10000以上になるように、そのうえでC列の最大値がより大きくなるようにすることです。 商品の内容(値段)によっては、全て10000以上になる組み合わせ方が複数存在することもありますが、任意の1種類だけC列に自動入力できれば良いです。 但し、A・B列への入力が今後増えていくので、その都度C列の自動入力をし直せるものがよいです。 以上の内容で、Excelを上手に使うアイデアを紹介していただければと思います。

  • SUMIFS関数でOR条件を使いたい場合の関数

    Excel2010を使用しています。 家計簿を作成しているのですが、SUMIFS関数でOR条件を使用したい場合どのように書けばよいでしょうか。 図は、明細と合計欄です。 ピンクのセルが円、それ以外はドルです。 合計欄のように、円とドルをそれぞれ分けて項目毎の合計額を出したいです。 セルE21のように、円の場合は「MUFJ」「ゆうちょ」ですので、MUFJとゆうちょのSUMIFS関数合計値を足しています。 これを、1行にまとめたいのですが、適切な関数はないでしょうか? SUMIFSではOR条件が使えないようですので・・・・・・ 明細行に円・ドルの列を追加すれば簡単なのですが、明細行の列はこれ以上増やしたくないので、できれば数式のほうで処理できればと思っています。 よろしくお願いいたします。

  • 【エクセル2002】別シートの数値を桁ごとに別々のセルに振り分けたい。

    お世話になります。 別シートで合計値を出した数値を参照し、指定のセルにその数値を桁ごとに分解して表示させたいのですが、うまくいきません。おそらく、IF関数、ISERROR関数、MATCH関数あたりを組み合わせるのだろうと思いますが、教えていただけないでしょうか 目的は、金種内訳票を作りたいのですが、票の規格により、各桁ごとに個別の升目(セル)に入力しなくてはならないためです。 【基礎データとなるシート】 ROUNDDOWN関数を使って金種別の金額を出し、SUM関数を使って合計値を出しています。その合計欄を参照したいと思っています。 シート名-------------差込データ (総合計について) 合計値のセル---------差込データ!の列Gの下のほうの行にありますが、最終行ではありません。同じ行の列Bに「合計」と項目見出しが入っています。 合計値の桁数---------4桁から8桁の間で毎回変動します。 (各金種について) 列Qの金種別合計額が入る行に、項目見出しとして「金種別合計額」と入っています。 1万円の金種別合計額------列R 5千円の金種別合計額------列S 1千円の金種別合計額------列T (※2千円は求めていません) 5百円の金種別合計額------列U 1百円の金種別合計額------列V 5十円の金種別合計額------列W 1十円の金種別合計額------列X 5円の金種別合計額--------列Y 1円の金種別合計額--------列Z 【差込先(表示させる)シート】 シート名-------------金種連絡票 各列の金額桁数 列Hは億の単位で、列Iは1千万円の単位です。順次、セルが右に移るごとに一桁下がります。 例えば、123,456,789円(1億2,345万6,789円)の場合 ・HIJKLMNOP(列) ・123456789  と、各セルに表示させたいのです。 また、金額が少ない場合は、数字が入らないセルは空欄にしたいのです。 例えば、56,789円(5万6,789円)の場合 ・HIJKLMNOP(列) ・    56789  このように、桁数に対応する各セルに表示させたいのです。 (総合計額を表示させるセル) セル範囲 セルH9からセルP9までのセルに右詰で表示させたいのです。      1億円の桁がセルH9で、順次桁が下がり、1円の桁がP9です。 (各金種額表示させるセル) 1万円はセルH10からセルL10までが計算により表示させる範囲で、ゼロ下4桁はシートに入力しておきます。 小額の金種は、各一行下に同じように表示します。  ※合計額の変動部分だけ計算により表示させたいです。 例えば、1万円の場合は、下のゼロ4つは計算でなく、シートにあらかじめ0を入れておきたいのです。これは、規定の様式でもあり、書体を変えて見やすくするという意味もあります。(金種の枚数ではなく、金額です) 1万円の金種別合計額 セルH10からセルL10までのセルに1万円単位の金額のみ右詰で表示させたいのです。下4桁(セルM10からセルP10までのセル)にはゼロが入っています。 5千円の金種別合計額 セルH11からセルM11までのセルに5千円単位の金額のみ右詰で表示させたいのです。下3桁(セルN11からセルP11までのセル)にはゼロが入っています。 1千円の金種別合計額  セルH13からセルM13までのセルに1千円単位の金額のみ右詰で表示させたいのです。下3桁(セルN13からセルP13までのセル)にはゼロが入っています。 (※本当は行12に2千円の項目があるのですが、2千円札は使わないので省略します) 5百円の金種別合計額 セルH14からセルN14までのセルに5百円単位の金額のみ右詰で表示させたいのです。下2桁(セルN14からセルP14までのセル)にはゼロが入っています。 1百円の金種別合計額 セルH15からセルN15までのセルに1百円単位の金額のみ右詰で表示させたいのです。下2桁(セルN15からセルP15までのセル)にはゼロが入っています。 5十円の金種別合計額 セルH16からセルO16までのセルに5十円単位の金額のみ右詰で表示させたいのです。下1桁(セルP16のセル)にはゼロが入っています。 1十円の金種別合計額 セルH17からセルO17までのセルに1十円単位の金額のみ右詰で表示させたいのです。下1桁(セルP17のセル)にはゼロが入っています。 5円の金種別合計額 セルH18からセルP18までのセルに5円単位の金額のみ右詰で表示させたいのです。 1円の金種別合計額 セルH19からセルP19までのセルに1円単位の金額のみ右詰で表示させたいのです。 すみません。もちろん、全部の桁について教えていただこうなどとは思っていません。総合計の欄の表示方法が分かれば、後は当てはめて出来ると思います。 念のため、これからやりたいことを列記させていただきました。 どうか、よろしくお願いします。