• 締切済み

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

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

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

みんなの回答

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.10

未解決終了したものを追いかけるような感じになりますが。カテゴリをエクセルではなく数学にして 一定数の価格の違う商品を袋に一定額(例えば10000円)以上詰め込み、袋の数をなるべく多くしたい(金額の増加単位が10円単位とか、最低価格と最高価格も記載すれば範囲が絞れます)その時に、各々の袋に入る商品がわかる という問題が数学的に解決できるのか、そのようなアルゴリズムがあるのかどうかを確認してみてはいかがでしょう。袋の数が増えれば1個の袋の金額は10000円に限りなく収束していくと思いますので、この部分に関しては何がしかの数学的解法があるような気がします。そこに「各々の袋に入る商品がわかる」の部分を加えた数学的解法があるのかは疑問なところではありますが。 アルゴリズムのカテゴリがないので数学ではなければプログラム系でもいいかもしれません。エクセルのマクロに応用することを考えたらVisual Basicが移行しやすいでしょう。

ao-b
質問者

お礼

わざわざありがとうございます。質問を終了させていただいたのは、(これ以上前に進みそうにないから、というのもありましたが、)実際にまとめなければいけない期限が来てしまったからです。ですので、もう解決すべきお題はありません。 ちなみにですが、結局以下の手順で、半分人力で解決しました。 1.合計金額から作れる袋の最大数を予想する。 2.各商品にランダムに袋の番号を振る。(番号は1から上記の最大数まで当てるように。) 3.同じ袋の番号がついた商品の合計金額が、その袋の金額である。 4.全ての袋の金額を参考にして、任意の2個の商品を入れ替える。 5.手順4を繰り返せば、いつかは全ての袋の金額が一定額以上になるかもしれない。 「予想」「参考」という言葉を用いたように、結局この部分はヒューリスティックでしたね。 しかも手順1で予想した最大数が誤っているかもしれないのが欠点でした。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.9

> 、「C列のセルにどのように1および2を入れても >『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』にならないこと」を証明したいです ちなみに、B列の値の合計が10000を超える場合、上記の条件に合致することは絶対にありえません。 また、10000以下の組み合わせがあるかないかを2個ずつ総当たりで加算して調べると書きましたが、過去の補足の例を見ると1個でも組み合わせと考えるみたいなので、取り下げです。実は総当たりでなくても、B列を昇順に並び替えて小さい方から調べたら即わかることでした。 とりあえず、その結果をもって結局何がしたいのかいまだ理解できません。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.8

皆さんからの回答は、おそらく、ao-bさんのご希望の処理と違った方向になっているように思いますので、ご希望の回答ではないかもしれませんが、あえてコメントします。 まず、前回の質問と関連する質問の場合は(経過を見ていると全く同じ質問をしているように思います)、以下のように前回の質問のリンクを付けて、これまでの経過をわかるようにして、回答者に無駄な回答をさせないようにしましょう。 http://questionbox.jp.msn.com/qa8712221.html これまでの経過を見ていると、質問者のご希望の処理は、B列にバラバラの数字が入力されていて、これらの数字の中からいくつか適当に組み合わせて10000を超える組み合わせをできる限りたくさん作成したいということではないでしょうか(A列やC列の説明が質問内容をわかりにくくしているように思います)。 この場合は、私がすでに回答したように、Excelで用意されている最良な方法はソルバーの機能を利用することになりますが、この場合でも一度にすべての組み合わせを提示させることはできません。 また、試行錯誤的に計算をするソルバーを利用する場合でも、当然のことですが、Excelが計算するための基準が必要です。 すなわち前回も回答したように、たとえばすべての数字の組み合わせの中で合計値が10000に最も近い数字を選ぶなどの計算の基準が必要となるわけです。 なお、今回のご質問では、このような基準がないので、ソルバーを利用した場合でも解を求めることができません。 ちなみに、200個ぐらいの数字で、計算の基準がなく単純に1~200個の数字の可能な組み合わせをすべて計算するようなプログラムを組んだとしても、計算回数が天文学的数字になるので、おそらくその計算に何時間もかかるのではないかと思います。

ao-b
質問者

お礼

分かりました。この題材で別に求めたいものができましたので、ここの質問は未解決終了にします。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.7

> ですからそれは、「C列に1および2の数値を適切に入れれば『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』になる(ことが、コンピュータを介さなくても明らかである)にもかかわらず、C列の全ての有効セルに1を入れただけで探索を止めてしまっている」点が不都合なのです。 だからこそ、「C列のセルにどのように1および2を入れても >『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』にならないこと」を証明したいです なのです。 10000以上で、個数は問わない組み合わせが最大何通りになるのかというのを求めて(求めなくても)、その組み合わせがどれになるのかを知りたいために、同じ組み合わせのものにたいしC列に同じ数値を振りたいということでしょうか。 で、組み合わせで10000以下になるとダメなので、まずそれを確かめたい(10000以上にならないことを証明というか確認になりますが)でしたら、単にB列の2個の全ての組み合わせでその2個の値を足して10000以下にならないことを確かめるということになりますが…。 1で止めたらダメということと、10000以上にならないことの証明との因果関係がそのようなことくらいしか思い浮かびません。

ao-b
質問者

お礼

何度も回答していただき、ありがとうございました。しかしNo.8様から「不可能」とのお答えを(二度も)いただきましたので、この質問は未解決終了とさせていただきます。尚、No.9へのお返事は省略させていただきます。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.6

> 『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』にならないこと」を証明したいです というのは「以下」だと思いますが… 条件がいまいち不明なので数式は適当に考えただけですので、間違っていて当然と言えば当然です(笑) 条件が以下となったり以上となったり理解できませんが、とりあえず以上としたら かなり元に戻ってのあなたの例をもとにお聞きしますが B列/C列 2000/1 3000/2 4000/3 5000/4← 6000/4← 7000/3 8000/2 9000/1 この例だと組み合わせはB列の2個のデータの組み合わせが10000以上でC列の数値を割り振っていますが、2個限定にするとB列が奇数の場合1個余りますよね。で、その1個が10000以下だとどうするのでしょう。 B列/C列 2000/1 3000/2 4000/3 5000/4 5000/? 6000/4 7000/3 8000/2 9000/1 で、組み合わせが2個以上でも10000以上になればいいということにすると B列/C列 2000/1 3000/1 4000/1 5000/1 6000/1 7000/1 8000/1 9000/1 で、いいわけですよね。 組み合わせが2個以上で10000以上になればそこでその組み合わせは終わる? B列/C列 2000/1 3000/2 4000/3 5000/4 5000/4 6000/4 7000/3 8000/2 9000/1 こんな感じ? もしかして B列の値を組み合わせてその合計が10000以上になれば次の組み合わせを探し、その合計が10000以上になれば次の組み合わせを探すというように次々と組み合わせを探していき、最後に10000以下の値が出現することを証明したいということですか。となれば最初の?の例で証明できたという結果になるのでしょうか。 とすればNo1さんの補足に書かれている > もしC列=1と2のどちらかでもB列のセル値の合計が10000未満であれば、C列への1,2の入力をやり直す とかNo4の補足 > 『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』にならないこと」を証明したいです という条件が合致しなくなりますよね…。 条件に矛盾がありそうでとりあえず理解できません。

ao-b
質問者

お礼

>2個限定にするとB列が奇数の場合1個余りますよね。で、その1個が10000以下だとどうするのでしょう 2個限定という条件はありませんので、考慮不要です。(私の示した具体例がたまたま2個ずつだっただけですが、具体例を出すと意図しない情報が伝わってしまうのはよくあることですね。) >で、組み合わせが2個以上でも10000以上になればいいということにすると(中略)で、いいわけですよね。 ですからそれは、「C列に1および2の数値を適切に入れれば『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』になる(ことが、コンピュータを介さなくても明らかである)にもかかわらず、C列の全ての有効セルに1を入れただけで探索を止めてしまっている」点が不都合なのです。 だからこそ、「C列のセルにどのように1および2を入れても >『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』にならないこと」を証明したいです なのです。 私はCが最大になるようにと書いているのですが、どうも回答者様はCを最小にしたいと思われているような気がするのですが・・・(そのせいで話がすれ違っているのではないかと思うのですが)いかがでしょうか。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.5

> 以上が、私の求めるところです。いかがでしょうか。 単純な話、B列の値段が10000以下になる組み合わせ(組み合わせじゃなく単体でよければC列の最大値は商品数分になりますから)が最低何通りあるかという話ですか。で、組み合わせは2個でもいいとか、2個以上で10000に近い数値になる組み合わせとかですか。 以下のような感じの事なら数学の問題になりそうですけど。 http://www.albert2005.co.jp/technology/OPT/OPTproblem.html とりあえず、違うかもしれないけど(あくまでも違うかもですよ) 10000に近い数値になる組み合わせなら、int(B列の値の総数/10000)+1でよさそうな気がするけど、違うかもしれない。 2個でもいいならIF(商品数/2<10000,1,int(商品数/2)+1)でよさそうな気もするけど、これも違うかもしれない。

ao-b
質問者

お礼

どうも混乱させてしまったようです。>B列の値段が10000以下 ではなく10000「以上」ですので。 リンク先も拝見しましたが、「・・・以下」「・・・以内」とあり、これはちょっと、私の場合の問題につなげられるようなところが見つかりません。あるいは、どのように応用できるのか、もう少し詳しく説明していただけないでしょうか。 ・「B列の値段の合計を10000で割った整数部分に1を足す」 最後の+1は書き間違いだと思うので無視しますが、これは私もすぐに思いつきました。しかし、例えば、「8000円の商品3個だけ」という場合、示していただいた式だと2となりますが、 8000/1 8000/1 8000/2 あるいは 8000/1 8000/2 8000/2 とするしかなく、これでは、C列=2(あるいは1)の行のB列の値の合計が8000となってしまうので、題意に合いません。 ・「商品数が19999以下ならば1であり、商品数が20000以上ならば商品数を2で割った整数部分に1を足す」 これは私がお示ししたC列=<4の例に反するので明らかに間違いなのですが・・・何と書き間違えられたのかもわかりません。 しかしかなり前進したような気がします。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.4

> ちょっと待ってください、今回の問題において、C列で扱える最大値が3であることを知りませんでした。 「たとえば3までだとしたら」で3と書いているだけで、誰も最大値は3だとは言ってません。また、「最大値を決めないならエクセルで扱える最大数です」と書いています。 あなたの書いた条件は B列の合計が10000以上でC列の最大値がより大きくなるように で、よろしいのでしょうか? > 既にA,B列に入力された行のうちいくつか行を適当に選びC列セルに1 を実行してみましょう。以下にあなたの示した例があります。C列はまだ入力されていない状態です。 B列/C列 2000/ 3000/ 4000/ 5000/ 6000/ 7000/ 8000/ 9000/ さて、ここで適当に8行選びC列に1を入力します。 B列/C列 2000/1 3000/1 4000/1 5000/1 6000/1 7000/1 8000/1 9000/1 B列の合計は10000以上ですからこれで作業が終了しました。このあと何も起こりません。 この動作で、あなたの条件と不一致なところがありますか?

ao-b
質問者

補足

分かりました、やっと一歩進んだ感じがします。 No.1様へのお礼の2に長々と書き続けてしまったことですが、例示においてB列の合計が10000以上だということになったら、次は「C列のうちの適当なセルの1を2に変えるとなると、どのように変えても、『C=1の行のB列の値の合計もC=2の行のB列の値の合計も10000以上』にならないこと」を証明したいです。今回の場合は、8000/2・9000/2に変えるとC=1の行のB列の値の合計は27000、C=2では17000となり反証されます。 ということは、「この場合、Cの最大値は2かもしれないが、1ということはない」と言えるわけです。 そして「C列のうちの適当なセルの値に1,2,3を入れると・・・」と続いていくことになります。 以上が、私の求めるところです。いかがでしょうか。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.3

回答した例示に難癖つけても(そもそも違うんだろうなぁと言ってるわけですから)、具体的に、どのような状態を想定してるのか例示していただかないと…申し訳ありませんが理解不能です。 バラバラであったとしても、条件が「B列の合計が10000以上でC列の最大値がより大きくなるように」ですので、C列に入れる数値の最大値が3までとしたら(最大値を決めないならエクセルで扱える最大数です) B列 C列 1000 3 2000 3 3000 3 4000 3 5000 3 とか B列 C列 6000 3 7000 3 8000 3 9000 3 と考えますが。

ao-b
質問者

補足

ちょっと待ってください、今回の問題において、C列で扱える最大値が3であることを知りませんでした。 例えば、 B列/C列 2000/1 3000/2 4000/3 5000/4← 6000/4← 7000/3 8000/2 9000/1 という風にC列に自動入力することはできないのでしょうか?できないのであれば今回の質問は終了します。

  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.2

C列の同じ数値の行のB列の合計が10000以上になるようにということでしょうか B列 C列 5000 1 5000 1 5000 2 5000 2 みたいなことになるようにC列に自動で数値を入れたいということなのかなぁと思ったけど、C列に同じ数値が入った行のB列の合計が10000以上でC列の最大値がより大きくなるようにだから、C列に入れる数値の最大値がわからないけど3までとしたら B列 C列 5000 3 5000 3 5000 3 5000 3 以下の行すべてC列は3 の状態でも正解になるので、C列はすべて同じ数値でオッケーなことになるから違うような…。 具体的に、どのような状態を想定してるのでしょうか。

ao-b
質問者

補足

例示いただいた「B列に5000が4つ」であれば、C列に1,2,3まで入力しようとするとどうしても(C列の値が同じ行の)B列の合計に10000未満のものができてしまうことが、自分であればコンピュータを介さなくてもすぐに分かります。 問題はB列の各値がまるでバラバラであることで、そのためC列に1から順に数値を入力しようとした場合どこまで増やせるかがすぐに掴めないのです。

  • usami33
  • ベストアンサー率36% (808/2210)
回答No.1

たぶん、貴方の説明だと、永遠に回答は得られないかと キチンと読み直しして、読み手が処理を連想できる質問にしないと・・・ 今の文章だとLookupの組み合わせで出来そうな気もするし、 VBAでトリガーを含む機能にすべきか判断付きません ※ちょっと拝見しただけでも、↓こんな感じですよ > C列に同じ数値が入った行のB列セルの合計が、 セル数なのか、セルの値なのか判りませんよね > C列に1以上の整数を1・2・3・・・と順に >(全てのC列の数値において)10000以上になるように、 1,2,3なのか10000以上なのか判らん > そのうえでC列の最大値がより大きくなるようにすることです。 C列の最大値が何より大きくなるの? C列の値なら、既に最大値とご自分で書いてますよね > 商品の内容(値段)によっては、 > 全て10000以上になる組み合わせ また10000が出たけど、これもC列なの、それとも今度は値段のB列 > A・B列への入力が今後増えていくので 末尾に足されるの、それとも行間に挿入されるの

ao-b
質問者

補足

なかなか難しいですね。 1.「C列に同じ数値が入った行のB列セルの「値の」合計が」です。 2.試行錯誤のような書き方をした方が良いならば、以下でいかがでしょうか。 「既にA,B列に入力された行のうちいくつか行を適当に選びC列セルに1と、残りの行のC列セルに2と入力していき、C列=1であるB列のセル値の合計もC列=2であるB列のセル値の合計も10000以上になればよい。もしC列=1と2のどちらかでもB列のセル値の合計が10000未満であれば、C列への1,2の入力をやり直す(行を選択し直す)。全てのC列=1,2入力パターンにおいてもB列のセル値の合計が10000未満のものができてしまうならば、全てのC列に1を入力して終了。またC列=1と2の両方のB列のセル値の合計が10000以上になる入力パターンが見つかったら、「いくつか行を適当に選びC列セルに1と、残りの行のうちいくつかに2と、残りに3と入力した場合、全てのC列=1,2,3入力パターンにおいてB列のセル値の合計が10000未満のものができてしまう」ことを証明しなければいけない。証明できたらそこで終了。反証できてしまったら「(一部略)C列=1,2,3,4・・・」で同様に入力パターンを探る。 以上ですがいかがでしょうか。 これで2・3・4番目の回答に変えます。 3.入力位置はどこでもよいのですが、末尾の方が楽と言えば楽です。が、意図をもって途中に入力する方が都合のよい方法を紹介していただけるのであればそれでも良いです。

関連するQ&A

  • エクセルで決められた合計になる組み合わせを作成

    エクセルを使用し、決められた合計になるような数値の組み合わせを表示するようにしたいのですが、どのようにしたらよいか皆さん教えて下さい。 例えば、 B列に 100・50・70・62・58・70・・・と数値が入力されています。 C1に300と入力しておきます。 300になる組み合わせはどれとどれ・・・なのかというものを作成したいです。 多数ある場合は、全ての組み合わせを表示したいです。 表示例として B3とB5とB15・・・を合わせると合計C1が300になる、又は298又は302になるという表示をしたいのですがどのようにしたらよいでしょうか。 A列にコードを入力しているので数値の重複はありません。 宜しくお願い致します。

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

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

  • 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のどのような機能を使えば、以上のようなことができるでしょうか。 宜しくお願いいたします。

  • 組合せVBA

    環境はExcel2002です A列に連番数字1から100が入力されていて B列の100行には数字のデータがあるとします ある目的の数値Xに一番近くなるB列の組合せをC列に表示したいのです…VBAで B列に表示するのはA列の連番です 『一番近くなる』の意味は2通りあって、両方の算出方法をご教示願います (1)目的の数値Xを絶対超えないで目的の数値Xに一番近くなる組合せ (2)目的の数値Xを必ず超えて目的の数値Xに一番近くなる組合せ

  • エクセルで組合せを求めたい

    A列B列にa~Zまでの任意一文字が5000行まで入力されているとします。 たとえば A1=a、B1=b A2=y、B2=z などと入力されていると仮定してください。5000行もあるので、A列B列が同じ組合せが出現します。 この組合せが同じ行を検索したいのですが、厄介な条件があって(a、b)の組合せと(b、a)は同じ組合せと見なしたいのです。 どなたかご教示下さい。

  • エクセルで複数の値の組み合わせによる判定

    エクセルで下記の様にA列には4種類の文字列、、B列には2種類の文字列、C列には8種類の文字列がランダムに入っています。 行は600列ほどあります。 A、B、Cの列の文字列の組み合わせによるパターン別に予め数値を設定しています。 例えば2A+A+い=3、2A+B+お=7 という風に割り当てる数値を決めています。 D列にはそのパターン別の決まった数値を表示したいのです。 存在する組み合わせは45種類です。(すべての組み合わせがあるわけじゃ無いので少し少ないです) D列に入れる式を教えて頂けないでしょうか? 宜しくお願い致します。 A列  B列   C列   D列 2A   A    い     3A   B    あ 3B   B    き   4A   A    え 3A   A    お 2A   B    く 4A   A    う 3B   B    か

  • エクセルVBA 条件付整数組合わせ表示方法

    整数の組み合わせを表示する方法をおしえてください。 1~6の整数をつかって A<B<C かつ D<E<F となるような数字の組み合わせを A列 B列 C列 D列 E列 F列 1 2 3 4 5 6 1 2 4 3 5 6 ・ ・ ・ となるように順番に表示していくには どうすればよいのでしょうか?

  • 計算式を教えてください。

    簡単に集計できる計算式があれば教えてください。 計算したい内容は毎日2種類の数値を入力しているのですがその数値には基準値があってその基準値を上回る部分だけを表示されるようにしたいのです。具体的には A列にはその日の商品「A」の実際の数値を入力 B列にはその日の商品「B」の実際の数値を入力 C列には商品「A」の数量-10ただし「A」「B」合計が20以下の場合は0 D列には商品「B」の数量-10ただし「A」「B」合計が20以下の場合は0 例えば、とある日の数量が商品「A」が12で商品「B」が10ならC列に2、D列に0とか、商品「A」が9で商品「B」が13ならC列に0、D列に2と自動的に表示されるといいのですが…IF関数でいろいろ試してみましたがギブアップです。どなたかこんな私に良きアドバイスをお願いいたします。

  • 2列の値が特定の組合せである個数

    下記のようにA列に商品名、C列に個数がずらっと並んでます。2000行程度あります。 A列 C列 商品A 30 商品B 70 商品A 65 商品C 21 商品A 30 「商品A、30個」の組合せの数 「商品B、30個」の組合せの数 「商品C、30個」の組合せの数 のように、全商品、30個限定でいくつあるかカウントしたいのです。上の例では2個になります。どんな関数を使えばいいでしょうか。 参考 C列が無くてA列だけの場合は、B1に =COUNTIF(A$1:A$2000, A1) と書いてズイっと下まで引っ張りました。重複はありますが、使用上問題ありません。

  • Excel2002 IF関数の組み合わせ

    初歩的な問題ですが、組み合わせ方が他のサイトに例が見つからなかったので質問します。 IF関数で、 D列に、『もしA列が○○なら、B列の数値をもってきなさい。そうでなければC列の数値を持ってきなさい。』 というような単純な数式が入っているとして、ここに別の条件をまた付け加えたくなったので、どうすればよいか 質問させて下さい。 内容は、上記の条件のあとに、『E列が△△なら、F列の数値を持ってきなさい。』 というものです。 式としては IF(A1="大阪",B1,C1) 追加したいのは IF(E1="国語",F1,C1) ということで、全く違う条件を追加したい場合はどのように組み合わせればよいでしょうか?

専門家に質問してみよう