Excel: Znajdź podzbiór liczb, które dodają się do danej sumy?

Odpowiedzi:

25

Jest to możliwe dzięki dodatkowi Solver *. Poniższe kroki działały dla mnie w programach Excel 2007 i 2010.

  1. Wyznacz komórkę do przechowywania wyniku (C1 w tym przykładzie) - jest to komórka docelowa i kolumna, której program Excel może użyć do zarysowania (B1: B100 w tym przykładzie)
  2. W komórce docelowej wprowadź formułę „= SUMPRODUCT (A1: A100, B1: B100)” (bez cudzysłowów). To obliczy sumę A1 * B1 + A2 * B2 + ... itd
  3. Wybierz Otwórz solver (karta Dane, grupa Analiza)
  4. Komórka docelowa powinna być oczywista (w tym przykładzie $ C $ 1)
  5. W polu „Równe do” wybierz „Wartość:” i wprowadź żądaną wartość
  6. W polu „Zmieniając komórki” wpisz „$ B $ 1: $ B $ 100” (bez cudzysłowu i może być konieczne samodzielne zainicjowanie tych wartości na 0)
  7. Dodaj ograniczenie do komórek, które można zmienić. Z rozwijanego menu wybierz „bin” (binarny). Ogranicza to wartości tych komórek do 0 (usunięcie odpowiedniej komórki A z sumy) lub 1 (dodanie odpowiedniej komórki A do sumy).
  8. Kliknij „Rozwiąż” i poczekaj. Liczby, które są częścią poszukiwanego podzbioru, będą miały 1 w kolumnie B.

Przykład


Jeśli solver zajmuje dużo czasu, możesz pomóc, usuwając wiersze, które oczywiście nie będą działać (suma jest w dolarach, a tylko jeden wiersz ma niezerowe centy)


Premia: Możesz mieć program Excel automatycznie podświetlający poszukiwane komórki przez dodanie formatowania warunkowego do tych komórek. Wybierz wszystkie komórki, które chcesz sformatować, a następnie z (karta Strona główna) >> (Grupa stylów) >> Formatowanie warunkowe >> Nowa reguła wybierz „Użyj formuły, aby określić, które komórki sformatować”. W formule wpisz „= $ B1 = 1” (bez cudzysłowów), który będzie miał wartość true, jeśli odpowiadający mu wiersz w kolumnie B ma wartość 1. W tym formacie możesz dodać, co chcesz (pogrubienie, kursywa, zielone wypełnienie, itp).

Innym łatwym sposobem na znalezienie ważnych wierszy jest posortowanie kolumny B Z-> A, a wszystkie 1 zostaną przeniesione na górę.


* Dodatek solvera można zainstalować, wykonując poniższe czynności

  1. Kliknij przycisk Microsoft Office, a następnie kliknij Opcje programu Excel.
  2. Kliknij Dodatki, a następnie w polu Zarządzaj wybierz Dodatki Excel.
  3. Kliknij Idź.
  4. W polu Dostępne dodatki zaznacz pole wyboru Dodatek Solver, a następnie kliknij przycisk OK. (Jeśli dodatku Solver nie ma na liście w polu Dostępne dodatki, kliknij Przeglądaj, aby zlokalizować dodatek.)
  5. Jeśli zostanie wyświetlony monit, że dodatek Solver nie jest aktualnie zainstalowany na komputerze, kliknij przycisk Tak, aby go zainstalować.
Nate Parsons
źródło
1
W programie Excel 2013 musisz odznaczyć opcję „Ignoruj ​​ograniczenia całkowite” z menu opcji. W przeciwnym razie otrzymujesz wartości inne niż INT dla 0 i 1
Omar Shahine
1
Aby to działało poprawnie: 1. Formuła w komórce C1 powinna być sumPRODUCT (nie tylko suma) 2. Wszystkie komórki w kolumnie B powinny mieć w nich zero danych wejściowych.
Dzięki! Dla mnie stare kroki nadal działają, ale bardziej podoba mi się sumproduct, ponieważ nie zależy on od funkcji formuł tablicowych.
Nate Parsons
w każdym razie, aby znaleźć wszystkie kombinacje ... chociaż jest jedno rozwiązanie znalezione przez solver .. jak znaleźć inne rozwiązania? moja tablica jest tutaj: v = [1100, 1105, 11830, 14790, 2325, 2455, 2555, 2935, 3050, 3150, 3185, 3370, 3475, 350, 3530, 3590, 3680, 3745, 885, 9624] suma = 43029 ... rozwiązanie 1 = [350, 1100, 2325, 2455, 2555, 2935, 3150, 3745, 9624, 14790], rozwiązanie 2 = [350, 885, 1100, 1105, 2325, 2455, 2555, 3530, 3590, 3680 , 9624, 11830]
ihightower
2

Istnieje tani dodatek Excel SumMatch , który podświetli podzbiór liczb, które składają się na sumę docelową.

wprowadź opis zdjęcia tutaj

AlSoff
źródło
1
Cześć AIsoft, dobre znalezisko. Może następnym razem możesz dodać więcej informacji.
nixda,
@pnuts Czy popełniłem błąd? Nie rozumiem, co masz na myśli,
mówiąc o
@ orzechy Ah ok, to dobra uwaga.
nixda
6
Uwaga dla mnie: 30 AUD = 30 dolarów australijskich. To nie jest odniesienie do komórki Excela [AUD30] ze stałą kolumną ....: D
nixda
1
Cena jest wadą, podobnie jak brak jasnych instrukcji. Coś więcej niż 1 zdanie + 1 zdjęcie ze strony produktu, naprawdę.
Nate Parsons