Excel: Temukan subset angka yang menambah total yang diberikan?

Jawaban:

25

Itu mungkin dengan add-in Solver *. Langkah-langkah berikut ini berfungsi untuk saya di Excel 2007 dan 2010.

  1. Tentukan sel untuk menampung hasilnya (C1 untuk contoh ini) - ini adalah sel target, dan kolom yang dapat digunakan excel untuk pengerjaan awal (B1: B100 untuk contoh ini)
  2. Di sel target, masukkan rumus "= SUMPRODUCT (A1: A100, B1: B100)" (tidak ada tanda kutip). Ini akan menghitung jumlah A1 * B1 + A2 * B2 + ... dll
  3. Pilih Buka solver (tab Data, grup Analisis)
  4. Sel target harus jelas ($ C $ 1 untuk contoh ini)
  5. Untuk 'Equal To:' pilih 'Value of:' dan masukkan nilai yang diinginkan
  6. Dalam 'Dengan Mengubah Sel' masukkan "$ B $ 1: $ B $ 100" (tanpa tanda kutip, dan mungkin perlu menginisialisasi nilai-nilai ini ke 0 sendiri)
  7. Tambahkan batasan ke sel yang bisa diubah. Di pull-down, pilih 'bin' (Biner). Ini membatasi nilai sel-sel ini ke 0 (menghapus sel A yang sesuai dari jumlah) atau 1 (menambahkan sel A yang sesuai ke jumlah).
  8. Klik 'Selesaikan' dan tunggu. Angka-angka yang merupakan bagian dari himpunan bagian yang Anda cari akan memiliki 1 di kolom B.

Contoh


Jika pemecah membutuhkan waktu lama, Anda dapat membantunya dengan menghapus baris yang jelas tidak akan berfungsi (total dalam dolar, dan hanya satu baris yang memiliki nol sen)


Bonus: Anda dapat membuat excel secara otomatis menyorot sel yang Anda cari dengan menambahkan pemformatan bersyarat ke sel-sel itu. Pilih semua sel yang ingin Anda format dan dari (tab Beranda) >> (grup Gaya) >> Pemformatan bersyarat >> Aturan Baru pilih 'Gunakan rumus untuk menentukan sel mana yang akan diformat'. Dalam rumus, masukkan '= $ B1 = 1' (tanpa tanda kutip) yang akan bernilai true jika baris terkait dalam kolom B adalah 1. Untuk format, Anda dapat menambahkan apa pun yang Anda inginkan (tebal, miring, isian hijau, dll).

Cara mudah lain untuk menemukan baris penting adalah dengan mengurutkan kolom B Z-> A, dan semua angka 1 akan muncul ke atas.


* Add-in solver dapat diinstal dengan langkah-langkah ini

  1. Klik Tombol Microsoft Office, lalu klik Opsi Excel.
  2. Klik Add-in, dan kemudian di kotak Kelola, pilih Add-in Excel.
  3. Klik Pergi.
  4. Di kotak Add-in available, pilih kotak centang Solver Add-in, dan kemudian klik OK. (Jika Add-in Solver tidak tercantum dalam kotak Add-in yang tersedia, klik Browse untuk menemukan add-in.)
  5. Jika Anda diminta bahwa Add-in Solver saat ini tidak diinstal di komputer Anda, klik Ya untuk menginstalnya.
Nate Parsons
sumber
1
Di Excel 2013 Anda harus menghapus centang "Abaikan Integer Constraints" dari menu opsi. Kalau tidak, Anda mendapatkan nilai INT untuk 0 dan 1
Omar Shahine
1
Untuk membuat ini berfungsi dengan baik: 1. Rumus dalam Sel C1 harus menjadi sumPRODUCT (bukan hanya jumlah) 2. Sel-sel dalam Kolom B semua harus memiliki input nol di dalamnya.
Terima kasih! Bagi saya, langkah-langkah lama masih berfungsi, tapi saya lebih suka sumproduct karena tidak bergantung pada fitur formula array.
Nate Parsons
lagi pula untuk menemukan semua kombinasi ... walaupun ada satu solusi yang ditemukan oleh pemecah .. bagaimana menemukan solusi yang lain ??? array saya ada di sini: v = [1100, 1105, 11830, 14790, 2325, 2455, 2555, 2935, 3050, 3150, 3170, 3370, 3475, 350, 3530, 3590, 3680, 3745, 885, 9624] jumlah = 43029 ... solution1 = [350, 1100, 2325, 2455, 2555, 2935, 3150, 3745, 9624, 14790], solution2 = [350, 885, 1100, 1105, 2325, 2455, 2555, 3530, 3590, 3680 , 9624, 11830]
ihightower
2

Ada SumMatch Add-in Excel berbiaya rendah , yang akan menyorot subset angka yang menambahkan hingga jumlah target.

masukkan deskripsi gambar di sini

AlSoff
sumber
1
Halo AIsoft, temukan baik-baik. Mungkin lain kali Anda dapat menambahkan beberapa informasi.
nixda
@ kacang Apakah saya melakukan kesalahan? Saya tidak mengerti apa yang Anda maksud dengan AUD $ 30
nixda
@ kacang Ah ok, itu poin bagus.
nixda
6
Catatan untuk saya sendiri: AUD $ 30 = 30 Dolar AS Australia. Ini bukan referensi ke sel Excel [AUD30] dengan kolom tetap ....: D
nixda
1
Label harga adalah kelemahan, seperti juga kurangnya instruksi yang jelas. Ada lebih dari 1 kalimat + 1 gambar dari situs web produk, sungguh.
Nate Parsons