• ベストアンサー

エクセル関数についての質問です。

エクセルの関数の質問です。 A1からA10までのランダムな数字がはいっています。 B2に目的の数字を入力すると B3にA1からA10のどの数字をたせばよいかが表示されるような 関数はありますでしょうか? 因みに目的の数字とイコールではなく、目的の数字より小さい近似値 でいいんです。(もちろんイコールが最も望ましいのですが。) 宜しくご教授お願いします。

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

  • ベストアンサー
  • ensan8
  • ベストアンサー率45% (45/100)
回答No.3

A1からA10までの数字が例示のように1から10までの自然数であり、かつ解が重複を許さない2つの組み合わせの場合は数式は簡単に作れます。 1.B2が3未満の場合は不能(解は無い) 2.B2が19以上の場合、解は9と10 3.B2が3以上19未満の場合はint関数かrounddown関数で整数部をとります。とった整数部とその整数部とさらにそれをeven関数で処理したものを比較して同じなら偶数、異なっているなら奇数と判別します。  (1)偶数の場合:整数部を2で割った答えから1を引いた数と1を足した数の組み合わせが解  (2)奇数の場合:整数部を2で割った答えをroundup関数で小数点以下を切り上げた数とrounddown関数で小数点以下を切り下げた数の組み合わせが解 A1からA10に入る数が例のように連続した自然数ではない場合は全ての組み合わせのテーブル(45になります)に目的の数字との差を計算するセルを作り、min関数等で最小の組み合わせを探した上でvlookup関数等で元のテーブルから最小の組み合わせの数値を検索表示するなどの方法が考えられます。 あるいは、VBAが書ければfor next loop で探索することもできると思います。 いずれにせよ、連続した自然数ではない場合は単なる数式(関数)だけでは解決できないように思います。

RX-78-02
質問者

お礼

ご回答ありがとうございます。 作成したいと思っているものは、連続した自然数では ないので無理そうです・・ やはり人の手と頭でやるしかないようですね。 お手数かけました。

その他の回答 (2)

  • ensan8
  • ベストアンサー率45% (45/100)
回答No.2

補足の例について再度補足をお願いします。 A1からA10に1~10までの数字が入っており、B2の数値を仮に7.5とすると最小の近似値は7となります。 これを満たす組み合わせは重複を許さないとすると(1,6),(2,5),(3,4),(1,2,4)、と4通りあります。2つの値の組み合わせに限るとしても(1,6),(2,5),(3,4)と3通りあります。 重複を許す場合は(1,1,1,1,1,1,1)から始まって膨大な組み合わせになりますが組み合わせの選択基準はどのようにお考えでしょうか?

RX-78-02
質問者

補足

重複はしません。 組み合わせの選択基準は二つの値の差が最も小さいもの を選択したいのです。 宜しくお願いします。

  • nre40689
  • ベストアンサー率13% (6/46)
回答No.1

もっと具体的に数字を出して説明おねがいします。

RX-78-02
質問者

補足

例えばA1からA10に1から10までの数字を入力します。 B2に4.5と入力します。 B3にはA1とA3が解答として表示されるような 関数はないのでしょうか? 宜しくお願いします。

関連するQ&A