Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10533 / 13644 ツリー ←次へ | 前へ→

【21249】複数の数値を3つの規定数に振り分ける DOG Tribe 05/1/17(月) 17:03 質問[未読]
【21251】Re:複数の数値を3つの規定数に振り分ける IROC 05/1/17(月) 17:37 回答[未読]
【21258】Re:複数の数値を3つの規定数に振り分ける DOG Tribe 05/1/17(月) 18:32 発言[未読]
【21259】Re:複数の数値を3つの規定数に振り分ける IROC 05/1/17(月) 18:38 回答[未読]
【21260】Re:複数の数値を3つの規定数に振り分ける DOG Tribe 05/1/17(月) 18:59 お礼[未読]
【21263】Re:複数の数値を3つの規定数に振り分ける でれすけ 05/1/17(月) 20:50 回答[未読]

【21249】複数の数値を3つの規定数に振り分ける
質問  DOG Tribe  - 05/1/17(月) 17:03 -

引用なし
パスワード
   初心者なものでひとつご教授をお願いします。
100,199,300,400,500
以上の五つの数値を200,600,700の3つの規定数に振り分けると
    199   100   300
   +     500   400
修正値  1    0    0
---------------------------
    200   600   700
の様に表示したいのですが…

【21251】Re:複数の数値を3つの規定数に振り分ける
回答  IROC  - 05/1/17(月) 17:37 -

引用なし
パスワード
   どこにデータがあって、どこに結果を表示するかなど、
もっと詳しく説明をお願い致します。
また条件は例の場合だけを考慮すればよいのでしょうか?
あと具体的にどこの処理が分からないですか?

【21258】Re:複数の数値を3つの規定数に振り分ける
発言  DOG Tribe  - 05/1/17(月) 18:32 -

引用なし
パスワード
   IROCさん早速のご返答ありがとうございます。
 具体的に申しますと、
セルA1〜A5の定数を各々足して、
セルB7〜D7の定数となり、かつ修正値が最小になるように
振り分け処理をしたいのですが、どのようにしたらよろしいでしょうか?

実行前
   A   B   C   D
 ┌───────────────┐
1│  100│   │   │   │
2│  199│    │   │   │
3│  300│   │   │   │
4│  400│   │   │   │
5│  500│   │   │   │
6│修正値│   │   │   │
7│合計 │  200│  600│  700│
 └───────────────┘

実行後
   A   B   C   D
 ┌───────────────┐
1│  100│   │  100│   │
2│  199│  199│   │   │
3│  300│   │   │  300│
4│  400│   │   │  400│
5│  500│   │  500│   │
6│修正値│   1│   0│   0│
7│合計 │  200│  600│  700│
 └───────────────┘

【21259】Re:複数の数値を3つの規定数に振り分ける
回答  IROC  - 05/1/17(月) 18:38 -

引用なし
パスワード
   VBAはそこそこ使えますが、この質問はVBAの問題というよりも、
ロジックを考えるのが大変なので、申し訳ありませんが遠慮させてください。

【21260】Re:複数の数値を3つの規定数に振り分ける
お礼  DOG Tribe  - 05/1/17(月) 18:59 -

引用なし
パスワード
   ややこしい質問ですいませんでした。

【21263】Re:複数の数値を3つの規定数に振り分ける
回答  でれすけ  - 05/1/17(月) 20:50 -

引用なし
パスワード
   こんばんは。
こんなのでどうでしょう。
いつも解が見つかるとは限りませんが。

Sub sample()

Range("A1") = 100
Range("A2") = 199
Range("A3") = 300
Range("A4") = 400
Range("A5") = 500

Range("B6") = 200
Range("C6") = 600
Range("D6") = 700

Range("B7:D7").FormulaR1C1 = "=SUMPRODUCT(R1C1:R5C1,R[-6]C:R[-2]C)"
Range("E1:E5").FormulaR1C1 = "=SUM(RC[-3]:RC[-1])"
Range("B8:D8").FormulaR1C1 = "=R[-2]C-R[-1]C"
Range("B9").FormulaR1C1 = "=SUM(R[-1]C:R[-1]C[2])"
Range("B10").FormulaR1C1 = "=SUM(R[-9]C:R[-5]C[2])"
 
SolverReset
SolverOk SetCell:="$B$9", MaxMinVal:=2, ByChange:="$B$1:$D$5"
SolverAdd CellRef:="$B$10", Relation:=2, FormulaText:=5
SolverAdd CellRef:="$B$8:$D$8", Relation:=3, FormulaText:=0
SolverAdd CellRef:="$E$1:$E$5", Relation:=2, FormulaText:=1
SolverAdd CellRef:="$B$1:$D$5", Relation:=4
SolverSolve UserFinish:=True

SolverReset
SolverOk SetCell:="$B$9", MaxMinVal:=2, ByChange:="$B$1:$D$5"
SolverAdd CellRef:="$B$10", Relation:=2, FormulaText:=5
SolverAdd CellRef:="$B$8:$D$8", Relation:=3, FormulaText:=0
SolverAdd CellRef:="$E$1:$E$5", Relation:=2, FormulaText:=1
SolverAdd CellRef:="$B$1:$D$5", Relation:=5
SolverSolve

End Sub

10533 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free