Excel: 指定された合計に加算される数値のサブセットを検索しますか?

Excel: 指定された合計に加算される数値のサブセットを検索しますか?

数字の列(A1:A100 とします)があり、特定の合計になる数字のサブセットを見つける必要があります。

答え1

Solver アドイン* を使用すると可能です。次の手順は、Excel 2007 および 2010 で機能しました。

  1. 結果を保持するセルを指定します (この例では C1) - これはターゲット セルであり、Excel がスクラッチ作業に使用できる列です (この例では B1:B100)
  2. 対象セルに、数式「=SUMPRODUCT(A1:A100,B1:B100)」(引用符なし) を入力します。これにより、A1*B1+A2*B2+... などの合計が計算されます。
  3. ソルバーを開くを選択(データタブ、分析グループ)
  4. ターゲットセルは明らかであるべきである(この例では$C$1)
  5. 「等しい」の場合は「値:」を選択し、希望する値を入力します。
  6. 「セルの変更」に「$B$1:$B$100」と入力します(引用符なし。これらの値を自分で 0 に初期化する必要がある場合があります)。
  7. 変更可能なセルに制約を追加します。プルダウンで、「bin」(バイナリ) を選択します。これにより、これらのセルの値が 0 (対応する A セルを合計から削除) または 1 (対応する A セルを合計に追加) に制限されます。
  8. 「解決」をクリックして待ちます。探しているサブセットの一部である数字は、B列に1が表示されます。

例


ソルバーに長い時間がかかる場合は、明らかに機能しない行を削除することで解決できます (合計はドルで、1 行のみに 0 以外のセントがあります)


ボーナス: 条件付き書式をセルに追加することで、Excel で探しているセルを自動的に強調表示できます。書式設定するすべてのセルを選択し、(ホーム タブ)>>(スタイル グループ)>>条件付き書式>>新しいルールから「数式を使用して書式設定するセルを決定する」を選択します。数式に「=$B1=1」(引用符なし) と入力します。これは、B 列の対応する行が 1 の場合に true と評価されます。書式には、必要なものを追加できます (太字、斜体、緑の塗りつぶしなど)。

重要な行を見つけるもう一つの簡単な方法は、列 B を Z->A に並べ替えることです。これにより、すべての 1 が先頭に表示されます。


*ソルバーアドインは次の手順でインストールできます

  1. Microsoft Office ボタンをクリックし、[Excel のオプション] をクリックします。
  2. [アドイン] をクリックし、[管理] ボックスで [Excel アドイン] を選択します。
  3. 「実行」をクリックします。
  4. [使用可能なアドイン] ボックスで、[ソルバー アドイン] チェック ボックスをオンにし、[OK] をクリックします。([使用可能なアドイン] ボックスに [ソルバー アドイン] が表示されない場合は、[参照] をクリックしてアドインを探します。)
  5. ソルバー アドインが現在コンピューターにインストールされていないというメッセージが表示されたら、[はい] をクリックしてインストールします。

答え2

低価格のExcelアドインがありますサムマッチ、これにより、目標の合計に達する数字のサブセットが強調表示されます。

ここに画像の説明を入力してください

関連情報