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ć.

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


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.