エクセルでの入札計算式を教えてください

このQ&Aのポイント
  • エクセルでの入札計算式について教えてください。入札数が決まっていて、安い順に入札数を割り当てる場合、同じ金額の入札がある場合は如何すれば良いですか?
  • ビジネスゲームでのメーカーへの入札をエクセルで計算したいです。入札数が決まっており、安い順に入札数を割り当てる場合、同じ金額の入札が複数ある場合はどうすれば良いですか?
  • エクセルでの入札計算式について教えてください。入札数が決まっている場合、安い順に入札数を割り振る方法と、同じ金額の入札がある場合の問題解決方法を教えてください。
回答を見る
  • ベストアンサー

エクセルの関数について教えてください

このたび 仕事関係で「ビジネスゲーム」なるものをやることになりまして その際 「メーカーへの入札」を擬似的に行います 私は 進行役として参加します 例えば メーカーが希望する入札数は100個と決まっていて 10社ほどのチームが その100個をとるために 50個100円とか 50個90円とか 40個90円とかで入札をかけてくるわけです 上記の場合は 90円で入札した会社から全部 100円で入札した会社から10個とすれば問題ありませんが 問題は 例えば 残りの20個に3社で同じ金額 10個 20個 30個と入札してきた場合です この場合 按分をして 3個 7個 10個 としなければなりませんよね これを 簡単に 計算できる式があれば 教えてください まとめると ・相手が希望する入札数が決まっている ・安く入札してきた会社から 希望数をとっていく ・同じ金額で 希望入札数を越える場合は 按分する 以上です よろしくお願いします

  • bab
  • お礼率100% (19/19)

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

  • ベストアンサー
  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

ざっと書いてみましたが、以下のような感じ: Option Explicit Function sum_array(a As Variant) As Long Dim k As Variant sum_array = 0 For Each k In a sum_array = sum_array + k Next End Function Public Sub distribute(ByVal num_item As Long, orders_list As Variant) Dim it As Variant, unitprice As Long, orders As Variant, sum_order As Long Dim allot_ratio As Double For Each it In orders_list unitprice = it(0) orders = it(1) sum_order = sum_array(orders) If sum_order > num_item Then allot_ratio = CDbl(num_item) / sum_order sum_order = num_item Dim k As Long For k = UBound(orders) To LBound(orders) Step -1 orders(k) = Int(orders(k) * allot_ratio + 0.5) If orders(k) < 1 Then orders(k) = sum_order sum_order = sum_order - orders(k) Next sum_order = sum_array(orders) End If Debug.Print unitprice; "円 数量="; Join(orders, ", ") num_item = num_item - sum_order If num_item <= 0 Then Exit For Next End Sub Public Sub test() Dim OrderList As Variant OrderList = Array(Array(50, Array(20, 80)), Array(100, Array(10, 20, 30))) distribute 100, OrderList End Sub 実行すると、次のような出力が得られます: test 50 円 数量=20, 60 100 円 数量=3, 7, 10 ここでは、入札に関する情報を、 [単価、入札数のリスト] の配列で表現してます(サブルーチンdistributeの第2引数)。 実用上は入札者の名前とかを保持するために、別途クラスを作って、データを表現するようにしたほうが良いと思いますが、サンプルなので手を抜いてます。 あと、案分するところの境界値テストが甘いかも。

bab
質問者

お礼

ありがとうございました 早速 やってみようと思います まだまだエクセルは勉強することがたくさんありそうです

関連するQ&A

  • 助けて下さい~!!エクセルの関数です!!

    お世話になってます。 急ぎなのですごく困ってます。 仕事で運送業者の早見表を作成しています。 作成途中でつまづいてしまいました。 どなたか助けて下さい。(・_・;) 状況は下記の通りです。 掲載の画像を見て頂きたいのですが、 まず、A、B、Cと3社の運送会社があります。 各3社の運送業者料金リスト3枚から数字を抽出して1番安い業者及び金額を出したいと思っています。 掲載画像の関数の通り、1番安い業者及び金額を出すという関数の設定まではなんとか出来ました。 ここまでは問題ないのですが、新たに下記の条件を追加しなければならなくなりました。 (追加条件) A社については代引き発送に対応していない為、代引き発送の場合はB社かC社を選ばなければなりません。 掲載画像の代引きの表示を「有」と入力したら「運送業者」と「金額」の欄にA社以外のB社又はC社 の「金額」が表示される様にしたいと思っています。 運送業者の表示までは完了してます。 宜しくお願い致します。((+_+))

  • エクセル 関数について

    弁当表4/1~4/30の関数を変更したいのでご指導ください。 A社、B社、C社から選択できます。 社員が毎日、A,B,C,✖を記載しています。 3社とも500円ですが 4月8日~C社のみ550円に値上がりします。 社員それぞれの合計欄にはABCのそれぞれの個数✖金額を集計しています。 Cの場合のみ C×個数×500円(4/1~4/5)+C×個数×550円(4/8~30)としたいのです。 ご指導宜しくお願い致します。

  • 困ってます。。エクセル関数(初歩的)ヨロシクです。

    お世話になってます。 急ぎなのですごく困ってます。 仕事で運送業者の早見表を作成しています。 作成途中でつまづいてしまいました。 どなたか助けて下さい。(・_・;) 状況は下記の通りです。 掲載の画像を見て頂きたいのですが、 まず、A、B、Cと3社の運送会社があります。 各3社の運送業者料金リスト3枚から数字を抽出して1番安い業者及び金額を出したいと思っています。 掲載画像の関数の通り、1番安い業者及び金額を出すという関数の設定まではなんとか出来ました。 ここまでは問題ないのですが、新たに下記の条件を追加しなければならなくなりました。 (追加条件) A社、B社、C社の3社が同じ金額になる場合が有ります。 また、A社とB社、A社とC社、B社とC社が同じ金額になる場合が有ります。 この同じ金額になる各ケースではB社<A社<C社の優先順位で運送業者名が表示 されるように設定したいと思っています。 何度調べても解決しませんでした。 宜しくお願い致します。

  • 困ってます。。エクセル関数(初歩的)ヨロシクです。

    お世話になってます。 急ぎなのですごく困ってます。 仕事で運送業者の早見表を作成しています。 作成途中でつまづいてしまいました。 どなたか助けて下さい。(・_・;) 状況は下記の通りです。 掲載の画像を見て頂きたいのですが、 まず、A、B、Cと3社の運送会社があります。 各3社の運送業者料金リスト3枚から数字を抽出して1番安い業者及び金額を出したいと思っています。 掲載画像の関数の通り、1番安い業者及び金額を出すという関数の設定まではなんとか出来ました。 ここまでは問題ないのですが、新たに下記の条件を追加しなければならなくなりました。 (追加条件) A社については代引き発送に対応していない為、代引き発送の場合はB社かC社を選ばなければなりません。 掲載画像の代引きの表示を「有」と入力したら「運送業者」と「金額」の欄にA社以外のB社又はC社 が表示される様にしたいと思っています。 宜しくお願い致します。((+_+))

  • 楽天オークションで、たとえ入札があったとしても、出品者の希望最低金額に

    楽天オークションで、たとえ入札があったとしても、出品者の希望最低金額に達するまで出品を続けるにはどのようにすればいいのですか? 1円から始めたいのですが、余りにも入札金額が低い場合お売りしたくないので。

  • エクセル関数で。。。

    会社で経理を勉強し始めました。約100名が社員としております。うち10数名は給料振込みではなく、現金手渡しになっています。 毎月、手渡す分の給料を「金種別」にしてエクセル関数を利用しながら、必要な書く金主の金額を出しています。 そこで質問なのですが、例えば、 手渡し金額100,000 個人道具代 28,500 残     71,500となる場合、一万円は何枚か、千円は何枚か、など 金額を入れたセルから、自動的に金種の枚数を表す関数などはありますでしょうか。 もし、ご存知の方がいらっしゃったら是非教えてください。分かりにくい文章で申し訳ありません。よろしくお願いします!

  • 関数

    ある地域にはケーブルテレビ会社が1社しかいないとします。 ケーブルテレビの世帯ごとの受信料がp円であるとき、受信世帯数は x=10000-2pで表されるとしよう。一方、x世帯に受信させるためのケーブル テレビ会社の費用はc=1000000+1000x円で表されるとしよう。 (1)ケーブルテレビ会社の収入を受信世帯数xの関数として表せ。 ↑ この問題で収入πとして π=px-(1000000+1000x) と考えましたが、これでいいのでしょうか?

  • 初歩的なエクセルの関数ですがお願します。

    お世話になってます。 急ぎなのですごく困ってます。 仕事で運送業者の早見表を作成しています。 作成途中でつまづいてしまいました。 どなたか助けて下さい。(・_・;) 状況は下記の通りです。 掲載の画像を見て頂きたいのですが、 まず、A、B、Cと3社の運送会社があります。 各3社の運送業者料金リスト3枚から数字を抽出して1番安い業者及び金額を出したいと思っています。 掲載画像の関数の通り、1番安い業者及び金額を出すという関数の設定まではなんとか出来ました。 ここまでは問題ないのですが、新たに下記の条件を追加しなければならなくなりました。 (追加条件) A社については代引き発送に対応していない為、代引き発送の場合はB社かC社を選ばなければなりません。 掲載画像の代引きの表示を「有」と入力したら「運送業者」と「金額」の欄にA社以外のB社又はC社 の「金額」が表示される様にしたいと思っています。 運送業者の表示までは完了してます。 宜しくお願い致します。((+_+))

  • エクセルの関数

    初心者的な質問で申し訳ないのですが、教えてください。 会社で振込するのにエクセルで一覧表を作成しているのですが、 振り込み金額によって手数料が金額によって変動するので それを関数にして自動的に手数料が表示されるようにしたいと 思います。 例えば A1のセルに 100,000円と入力したら  B1セルに 735円と自動的に表示。 また、A1セルに 10,000円と入力した場合は B1セルには 525円と自動的に表示。 振込手数料は30000円以上で×××円       30000円未満で○○○円となっているので それを関数にできれば思っています。 アバウトな文章で申し訳ございませんが、お分かりになる方が いましたら教えてください。

  • 落札希望価格(初心者)

    少し前にもこの質問がありましたが 私、初心者で落札専門です。 EX 希望価格  5000円 最低入札価格  1000円 だったとき 4000円で入札 それを上回る入札がなく しかし出品者がどうしても売りたい場合 出品者は希望価格を途中で 下げれるのでしょうか。 または、下げなくても 4000円でしゃ-ないか。で 最高入札者を落札者とできるのでしょうか。 落札希望価格が5000円で 1円スタートでも1円で入札しているのを見て 不思議に思いました。もしかして 希望価格は相場によって下げれるのかと

専門家に質問してみよう