Czy istnieje sposób, w jaki mogę podać liczbę, a program Excel obliczy składniki składające się na tę liczbę z ograniczonego podzbioru (bez przekraczania podanej liczby)
np. Podzbiór: (1,25, 2,5,, 5,10,20)
i biorąc pod uwagę liczbę (25), Excel napisałby 20 + 5 (lub 20,5)
17 -> 10 + 5 + 1,25 (najbliższa kombinacja, która nie przekracza 17)
35 -> 20 + 10 + 5 = 35
36 -> 20 + 10 + 5 = 35
37 -> 20 + 10 + 5 + 1,25 = 36,25
38 -> 20 + 10 + 5 + 2,5 = 37,5
39 -> 20 + 10 + 5 + 2,5 + 1,25 = 38,75
i tak dalej
Odpowiedzi:
To była świetna zabawa!
Gdzieś w swoim skoroszycie (sugeruję inną kartę), utwórz tabelę składników, w tym zero : Tak po prostu zacznij od słowa „Składniki”, następnie dodaj swoje liczby poniżej, a następnie wybierz „Wstaw tabelę” ze wstążki. Pamiętaj, aby podać zero i zmienić nazwę tabeli zgodnie z podświetleniem. Ta tabela komponentów będzie musiała być w porządku rosnącym, ale jej utworzenie oznacza, że dostaniesz ten przydatny mały przycisk sortowania / filtrowania. :-)
Następnie, gdzie indziej w swoim skoroszycie, utwórz główny stół. Dodaj tylko pierwszą kolumnę i wszystkie nagłówki kolumn, a następnie ponownie wybierz Wstaw tabelę. Zredagowałem format liczb w stylu Normalnym, aby
General;General;
wartości zerowe były wyświetlane tak, jakby były puste.Kolumny:
Numer - twój numer
C1 -
=VLOOKUP([@Number],Components,1)
C2 do C10 -
=VLOOKUP([@Number]-SUM(OFFSET([@C1],0,0,1,COLUMN()-COLUMN([@C1]))),Components,1)
CSum -
=SUM([@[C1]:[C10]])
W tabeli
[@ColumnName]
odnosi się do komórki „ColumnName” w bieżącym wierszu. Dlatego w mojej wersji formułaCOLUMN([@C1])
ocenia na 3, ponieważ znajduje się w kolumnie C.Tak więc, dla podświetlonej komórki na powyższym obrazie, formuła
=VLOOKUP([@Number]-SUM(OFFSET([@C1],0,0,1,COLUMN()-COLUMN([@C1]))),Components,1)
rozwiązuje do
=VLOOKUP(**35**-SUM(OFFSET(C4,0,0,1,**6** - **3**)),Components,1)
rozwiązuje do
=VLOOKUP(35-SUM(**C4:E4**),Components,1)
rozwiązuje do
=VLOOKUP(35-**35**,Components,1)
I tak funkcja WYSZUKAJ.PIONOWO szuka największej liczby w komponentach, która jest równa pierwszemu argumentowi (0), i zwraca wynik 0. Jest on wyświetlany zgodnie z niestandardowym formatowaniem,
Custom;Custom;
tak aby zero było puste.(Cóż, pieprzyć. „**” oczywiście nie jest dosłownie częścią tego, co rozwiązuje formuła, ale jest to moja nieudana próba pogrubienia zmienionych części. Jeśli ktoś wie, jak uzyskać efekt, strzelałem bo proszę to naprawić.)
źródło