![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
色々ネットで調べてみたんですが、当てはまるサイトがなかったので、この場をお借りしたいと思います。
金額がいくつかあってそれらを重複しないように足し算をします。
1 2 3
A 100 200 300
=(A1),(A2),(A3),(A1+A2),(A2+A3)
=100 ,200 ,300 , 300 ,500
それぞれ算出された値を次は「上限値」と比較して超えたものは「False」枠内に入ったものを「True」として、Trueのなかでさらに「上限額」に一番近い(True内での最大値)を出す。
上限額=400
今回の場合は(A2+A3)=500は超えてしまってるのでFalse、(A1),(A2),(A3),(A1+A2)の中で比較し、一番上限額に近い(A3),(A1+A2)が算出される。
このような関数もしくはプログラムが知りたいのですが、できそうでしょうか?
A 回答 (6件)
- 最新から表示
- 回答順に表示
No.6
- 回答日時:
>セル(A1~A6、D1~D6)を参照することは可能でしょうか?
離れたセルの範囲を指定すると言うことでしょうか?
隣接したセルならば
=MAX(IF(A1:B1000<=C$1,A1:B1000,0))
とでも指定すれば大丈夫ですが、離れていれば
=MAX(IF(A1:A6<=C$1,A1:A6,0))
=MAX(IF(D1:D6<=C$1,D1:D6,0)) と2つのセルに答えを出して大きい方
では、回答になりませんでしょうか。
ひとつセルで済ますなら
=MAX(MAX(IF(A1:A6<=C$1,A1:A6,0)),MAX(IF(D1:D6<=C$1,D1:D6,0)))
でCtrl+Shift+Enterで大丈夫では。
No.4
- 回答日時:
>式の中にC1が書かれてないのはどうしてでしょうか?
失礼しました。
別セルに =MAX(IF(B1:B6<=C$1,B1:B6,0))
でした。
B1~B6で400以下のものは、そのまま、以上は0にした結果を集計して
最大値の意味になります。
この回答への補足
またまた質問で申し訳ないのですが、数値が入っているセルがいまいちわからないです^^;
A B C
1 100 100 400
2 200 200
3 300 300
4 400
5 500
6 600
これはA1~A3、B1~B6、C1に値が入ってると考えています。
C1には上限値B1~B6には対象の数値(計算結果?)
A1~A3がなんの数値かを教えてくださいm(__)m
お手数おかけします。
No.3
- 回答日時:
同じ数字は複数回使用することはないのですよね?
全体がn個として、そのうちの一つの組合せ(=1個の値という意味です)を調べるのは、単純にループを用いればよいですよね。
さて、1個(上記)~n個(全部足したもの=一通りのみ)までの個数の組合せを網羅するためには、上のループを再帰的にしておいて、値をチェックした(m個の組合せをチェック)後に、ループのスタート値を「その時の添え字+1」とし、比較のための上限値を「その時の上限値-自分の値」にセットし直して呼び出すようにしておけば(m+1個以上の組合せをチェック)可能かと思われます。
(個々の値が正の値と決っている場合は、「上限値-自分の値」が正でない時には呼出しを省略することが可能です)
数値がランダムのままだと、とにかく全通り計算しなければなりませんが、最初に並べ替えておけば(例えば昇順)、加算して上限値を超えたらそのループは中断できますので(それ以降の値はさらに大きいので)、計算効率が上がると思われます。
随時、記録しておく必要があるのは、一つの値(それまでの最適値とその時の組合せも必要なのかも?)だけですので、チェックと記録の部分はさほど難しくはないでしょう。
No.2
- 回答日時:
>重複しないように足し算をします。
これは既に解決済みでエクセルでの話として?
A B C
1 100 100 400
2 200 200
3 300 300
4 400
5 500
6 600
とB列に足し算の値が入っている、C1に上限値が入れてあるとして
別セルに =MAX(IF(B1:B6<=B$10,B1:B6,0))
と入れて Ctrl+Shift+Enter で決定してください。
配列関数として認識します({関数}と{}で囲まれて表示されます)
B列の 400が表示されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Excel の判定式で正しく判定されない場合があります。 2 2022/05/31 14:43
- Excel(エクセル) エクセルVBA 複数行にまたがっている選択を判定するには 2 2023/05/21 21:54
- Excel(エクセル) マクロでコピーすると数式が表示される 1 2022/09/09 20:21
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Excel(エクセル) xlDownの使い分けについての質問です vbaでxlDownを使って一覧近い空白までのセルをコピー 3 2022/08/04 12:20
- 数学 線形代数の正規直行系についての問題がわからないです。 1 2022/07/16 11:20
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- Excel(エクセル) エクセル・セルに数式を入力してセル指定計算 2 2023/04/21 12:46
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで 自動的に◯や数字を...
-
【マクロ】2回実行したら、エ...
-
エクセルのツールバーから数値...
-
特定の文字列を含む、住所を抽...
-
Excel 2019 [オプション]の[リボンのユ...
-
祝日と土曜、日曜の合計をカウ...
-
EXCELの散布図で日付が1900年に...
-
マイクロソフトのPADを使ってい...
-
絶対参照
-
エクセルでCtrl+Tでテーブルの...
-
【マクロ】名前を保存する際に...
-
エクセルのクイックアクセスツ...
-
【マクロ】VLOOKUPにて参照元に...
-
Excel分数の表示について
-
【EXCEL】画像の黄色部分の抽出...
-
DATE関数で現在の年齢を出した...
-
Excelについて
-
マクロエクセルのブロック解除
-
Excelピボットテーブルの1行目
-
REGEXREPLACE関数について、
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
半角カタカナをヘボン式ローマ...
-
(マクロ)vlookupの元データを同...
-
エクセルで上位バイトのセルと...
-
exselの質問です
-
Excel 大小比較演算子による「...
-
Excel VBについての質問です。
-
エクセルの問題です。絶対値の...
-
非表示列の再表示に失敗
-
職場の人から聞かれており、こ...
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
ユーザー定義関数をアドイン登...
-
【マクロ】for next構文について
-
エクセルの日付を編集する
-
【マクロ】VLOOKUPにて参照元に...
-
exselで最小数で並び替える関数
-
libre 表計算ソフトの計算がう...
-
エクセルで表
-
エクセルの表で1年間の曜日を...
-
西暦和暦
おすすめ情報