数字の列(A1:A100 とします)があり、特定の合計になる数字のサブセットを見つける必要があります。
答え1
Solver アドイン* を使用すると可能です。次の手順は、Excel 2007 および 2010 で機能しました。
- 結果を保持するセルを指定します (この例では C1) - これはターゲット セルであり、Excel がスクラッチ作業に使用できる列です (この例では B1:B100)
- 対象セルに、数式「=SUMPRODUCT(A1:A100,B1:B100)」(引用符なし) を入力します。これにより、A1*B1+A2*B2+... などの合計が計算されます。
- ソルバーを開くを選択(データタブ、分析グループ)
- ターゲットセルは明らかであるべきである(この例では$C$1)
- 「等しい」の場合は「値:」を選択し、希望する値を入力します。
- 「セルの変更」に「$B$1:$B$100」と入力します(引用符なし。これらの値を自分で 0 に初期化する必要がある場合があります)。
- 変更可能なセルに制約を追加します。プルダウンで、「bin」(バイナリ) を選択します。これにより、これらのセルの値が 0 (対応する A セルを合計から削除) または 1 (対応する A セルを合計に追加) に制限されます。
- 「解決」をクリックして待ちます。探しているサブセットの一部である数字は、B列に1が表示されます。
ソルバーに長い時間がかかる場合は、明らかに機能しない行を削除することで解決できます (合計はドルで、1 行のみに 0 以外のセントがあります)
ボーナス: 条件付き書式をセルに追加することで、Excel で探しているセルを自動的に強調表示できます。書式設定するすべてのセルを選択し、(ホーム タブ)>>(スタイル グループ)>>条件付き書式>>新しいルールから「数式を使用して書式設定するセルを決定する」を選択します。数式に「=$B1=1」(引用符なし) と入力します。これは、B 列の対応する行が 1 の場合に true と評価されます。書式には、必要なものを追加できます (太字、斜体、緑の塗りつぶしなど)。
重要な行を見つけるもう一つの簡単な方法は、列 B を Z->A に並べ替えることです。これにより、すべての 1 が先頭に表示されます。
*ソルバーアドインは次の手順でインストールできます
- Microsoft Office ボタンをクリックし、[Excel のオプション] をクリックします。
- [アドイン] をクリックし、[管理] ボックスで [Excel アドイン] を選択します。
- 「実行」をクリックします。
- [使用可能なアドイン] ボックスで、[ソルバー アドイン] チェック ボックスをオンにし、[OK] をクリックします。([使用可能なアドイン] ボックスに [ソルバー アドイン] が表示されない場合は、[参照] をクリックしてアドインを探します。)
- ソルバー アドインが現在コンピューターにインストールされていないというメッセージが表示されたら、[はい] をクリックしてインストールします。
答え2
低価格のExcelアドインがありますサムマッチ、これにより、目標の合計に達する数字のサブセットが強調表示されます。