• ベストアンサー

Excelで、数字の組み合わせの合計が一定数になるパターンの抽出

Excelで、数字の組み合わせの合計が一定数になるパターンの抽出 たとえば、つぎの配列があるとします。 A(5){10,20,30,40,50}要素数が5つ1..5、{}は内容 このなかで二つ以上の組み合わせで和が60になる組み合わせを出したいとします 答えは パタン1:1,2,3  /* 10+20+30 */ パタン2:1,5 /* 10+50 */ パタン3:2,4 /* 20+40 */ 同じような処理をExcelの関数では実現できますでしょうか? また上記のような組み合わせのパタンの総数を求める公式はありますか? 初歩的な高等数学で恐縮です。

  • Yepes
  • お礼率94% (1652/1746)

質問者が選んだベストアンサー

  • ベストアンサー
  • mimeu
  • ベストアンサー率49% (39/79)
回答No.2

> 同じような処理をExcelの関数では実現できますでしょうか? VBA の既製の関数にはご質問のものはありません。 ただし、質問者さんご自身が Excel の VBA で その関数を作るのは簡単です。 リカージョンのお手本みたいなアルゴリズムでしょうね。

Yepes
質問者

お礼

ありがとうございます。 >リカージョンのお手本みたいなアルゴリズムでしょうね。 ちょっと調べてみます。VBAも慣れていないのでてこずりそうです。。

その他の回答 (1)

  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

補足をお願いします。 ここでは2つ以上を選ぶ組み合わせが何パターンあるか、 その中で基準値を超える組み合わせが何パターンか、 となりますが、公式で期待しているのは後者ですか。 例えば、 >A(5){10,20,30,40,50}要素数が5つ A(6){10,20,30,40,50,60}要素数が6つの場合、和は70(=中央値?)でしょうか。

Yepes
質問者

お礼

ありがとうございます。イメージでいうとこんなかんじです 処理1:ある表を参照 処理2:ある表からレコード組み合わせテーブルを作成        処理3:処理2の表を一件ずつ和を計算する /*ここから繰り返し処理 */      処理3-1:条件分岐 合計=1000千円ならリストへ追加 → 処理3-2へ進む                合計≠1000千円なら次の組み合わせを計算 → 処理3へ戻る      処理3-2:リストへ追加する → 処理3へ戻る 処理4:処理3-2で処理したリストを表示する

関連するQ&A

  • パターン抽出

    a = [1, 2, 3, 4, 5, 6, 7, 8, 9] b = [a, b, c, d] 上記みたいな配列があったとして1a, 1bみたいな組み合わせのすべてのパターンを取り出すアルゴリズムを考えています。 1配列内の数は不定、配列自体の数も不定という条件です。 たとえばここにc = [z, y, x]という配列が加わると 1az, 1ay, 1ax みたいな感じで抽出します。 ですが、あまりいい方法が浮かびません。再帰を使えばいいというのはわかるのですが数が不定というのが複雑でイメージがわきません。 いいパターン抽出のやりかたがあれば教えてください。 お願いします。

  • 合計が決まった数で、数の組み合わせを求めるには

     ちょっと数学的な問題を、パソコンで解きたいと思います。  合計が決まった数で、ある数の集まりの中からその和の組み合わせを求めたいのですが、何を使ってどのようにすればよいでしょうか。  ソフトは、Excel/Access/FileMakerがあります。  回答でなくても、自分ならこうやるよ、という意見も大歓迎です。  よろしくお願いします。 (例題) {2550,1210,90150,110223,17112,142816,87442,14650,1701413,11788,4460,24180}の中で総和が1949096になる数の組み合わせは?

  • Excelでの合計計算について

    初歩的な質問で申し訳ありません。 Excelでの数字の合計方法について教えてください。 Excelで以下の数を合計するとします。 10 10 -10 10 10 SUMで計算すると結果が「30」になるのですが、数学上間違いではないことは分かります。 ですが、うまく言えないのですが私が求める結果は「40」になってほしいのです。 合計からマイナスの値を引く?という方法になると思うのですが、これを実現する方法、または関数などを教えてください。 大変恐縮なのですが、大変な素人のため、多少詳しく教えていただけると幸甚です。

  • エクセルで組合せのパターンを表示したい

    12人から9人を選ぶ組合せのパターンをすべて表示させる 方法はないでしょうか?パターン数はCONBIN関数で220通り と求められました。この220通りを実際に表示させたいの です。エクセル上級者ではないので、簡単なマクロだと 助かりますが、いいアイデアがあれば教えてください。 よろしくお願いします。

  • エクセルで組み合わせの計算式を使いたい

    エクセルで以下のような計算式を(最適な組み合わせの抽出)をしたいのですが? 表の中にある様々な単価から2以上の合計が一定額となる組み合わせを抽出したい。 もっと具体的にいうと、私が作った買いたい本のリストの中から、2以上の組み合わせで1500円となる組み合わせをエクセルから抽出したいのです。 よろしくお願いします。

  • パターン数及びパターンを求めるには・・・

    はじめまして、こんにちは。 エクセルというか、数学的な質問になるかもしれませんが、困っておりまして お知恵をお借りできればと思い質問させていただきました。 問題が 【A】【B】【C】【D】【E】とあり、 それぞれの項目には0~12の数字が入ります。 A+B+C=12 かつ、A+D+E=12 になる条件の時、 そのパターン数、及びそのパターンを表示(一覧として出したい)するには どうしたらいいでしょうか・・・。 (A~Eにはもちろん同じ数字も入ります。) エクセルで挑戦しましたが、行き詰まってしまいました。 数学的な問題かもしれませんが、何かいい方法があれば・・・。 申し訳ありませんが、どうぞよろしくお願いいたします。

  • 指定した合計数と奇数&偶数の数字を抽出する。

    どなたかご存じでしたら回答をお願いします。 数字選択式宝くじの「ミニロト」の組合せをフリーソフトで作成&CSVデータに出力しています。 これをエクセルに取りこむと下記のようになります。 【作成されてエクセルに取りこんだCSVデータ】 01 03 05 07 12 01 03 05 07 15 01 03 05 12 15 01 03 07 12 15 01 05 07 12 15 03 05 07 12 15 ここから、「5つの数字の横合計の合計数が○○以上~○○未満で、奇数が○個、偶数が○個のデータを抽出する。」というのをエクセルでやりたいですがどうやればよいでしょうか? できれば1回の操作で結果が出るのがよいです。 上記例でいうと、「5つの数字の横合計の合計数が30以上~40未満で、奇数が4個、偶数が1個」と指定すれば下記抽出結果が得られる。 【抽出結果】 01 03 05 12 15 01 03 07 12 15 01 05 07 12 15 CSVデータは1個~169911個まであります。 CSVデータの中には奇数が0個で偶数が5個というのもあります。(その逆ももちろんあります。) エクセルの操作およびVBAでのソースを教えて下さい。 よろしくお願いします。

  • エクセルで異なる数字を同系のものとして扱うことはできますか

    皆さんの質問やその回答に感心するばかりの者です。        数字を羅列したデータ表があります。0~9が円状に配置されている考え方で、例えば1023と2134,3245・・・(実際には12桁ですが)は先頭の数字に同一数を加えた配列という意味で同一パターンということにしており、以前は自分でパターンA,B,,,,ZZZと隣接セルに入れていたのですがパターン数か多すぎてやめました。 12桁の数字をいれて検索したときに、同一数値ではなく同一パターンの有無とそれはどんな組み合わせかを抽出する方法はあるものでしょか。 具体的な方法をご教授いただいても理解が伴わないと思いますので、これを学習してみれば、のアウトラインをお願いしたいのですが。

  • 組み合わせの数についてなのですが

    初歩的な質問かもしれません 例えば6人の生徒をABCの3組に分ける組み合わせの数を求める場合 6c2×4c2×2c2 で求めますが 6c2は「6人から2人を選んでA組に入れる」 という計算 4c2は「4人から2人を選んでB組に入れる」という計算だと思います。 しかしこの4人は「6人から2人を選んだ時の組み合わせ」次第で、パターンが変わってくると思うのですが なぜ4c2だけでいいのでしょうか?

  • ■エクセル■複数のセルから一定の数を引くには

    エクセルで、選択した複数のセルから、 一定の数を足したり引いたりするにはどうすればよいのでしょうか? 大変初歩的な質問で申しわけありません。 ヘルプを見てもなかなか見つからず、緊急に知りたいので質問させて頂きました。 どなたかご回答よろしくお願い致します。

専門家に質問してみよう