Avatar billede Butterfly Ekspert
01. september 2020 - 08:07 Der er 13 kommentarer og
1 løsning

Finde tal til summen

Hej
Er det muligt at finde hvilke tal der giver summen? Jeg har summen/differencen 8418
Jeg har en række tal (27), er det muligt at få markeret hvilke af disse tal der tilsammen kan give 8418?
Avatar billede madklub Guru
01. september 2020 - 11:41 #1
Avatar billede Jan K Ekspert
01. september 2020 - 13:40 #2
Du kan finde én løsning, men der kan være flere. Det kræver at du har Problemløser (Solver) tilføjelsesprogrammet installeret.

Hvis du har de 27 tal i A1 til A27 skal du bruge en hjælpekolonne, fx B1:B27.
I den celle, hvor du vil have dit bestemte resultat, skal du have en formel som denne:

=SUMPRODUKT(A1:A27;B1:B27)

Start nu problemløseren. Målsætningen skal være den celle, hvor du har SUMPPRODUKT formlen.  Vælg Til Værdi af og indtast den værdi, du ønsker at finde.

Tilføj en begrænsning. Her vælger du B!:B27 og begrænsningen wer, at de skal være binære. Så skal du klikke på Løs og bare vente. Når Problemløseren er færdiog har den sat 1-taller i B-kolonnen ud for de tal, der giver den ønskede sum og 0 ud for resten.

Så kan du bruge fx betinget formatering til at markere cellerne i A-kolonnen. Marker hele A-kolonnen og vælg Betinget formatering. Vælg Ny regel og Brug en formel til at bestemme. Formelen skal være =B1=1. Klik ok.
Avatar billede Jan K Ekspert
01. september 2020 - 13:41 #3
Skulle måske lige tilføje at B1:B27 skal være tomme, når du starter problemløser.
Avatar billede ebea Ekspert
01. september 2020 - 13:45 #4
Med en Formel (eller flere) er det en meget ressource krævende opgave at finde de kombinationer som kan finde et givent tal. Og afhængig af størrelsen på tallet, skal kombinationerne øges.

Men, du kan gøre det med værktøjet "Solver", eller "Problemløser", som findes i Excel som tilføjelses program.
Gå ind i "Filer", "indstillinger", og klik på "Tilføjelsesprogrammer". Der ser du nu en liste med mulige tilføjelses programmer. Marker "Tilføjelsesprogrammet Problemløser", og klik "Ok".

Vælg nu igen, "Filer", "indstillinger", og klik på "tilføjelsesprogrammer".
Nederst i den side der kommer frem, klikker du på knappen "Udfør", som ses til højre for "Excel-tilføjelsprogrammer".
Der popper nu en lille boks op, hvor du nu kan se at "Tilføjelsesprogrammet problemløser" vises. Sæt et flueben i boksen, og klik Ok.

Tilføjelsen findes nu under "Data" oppe i menulinjen.

Og i kombination med en lille formel: =SUMPRODUKT(C2:C24;A2:A24)
som fortæller Solver hvor data findes, og hvor den skal markere de tal som er brugt i kombinationen.
Jeg har uploadet en lille fil, som viser tallene der indgår, og hvilke tal som Solver har brugt (markeret med et 1 tal).

https://www.dropbox.com/scl/fi/l1x0h4mk5jg875zruahhd/tal-kombination.xlsx?dl=0&rlkey=m95yzdmn6mb3ye9sa9gav1g02
Avatar billede Jan K Ekspert
01. september 2020 - 17:04 #5
#4. Ret enige der 😀
Avatar billede ebea Ekspert
01. september 2020 - 17:46 #6
#5 - Ja det var den eneste løsning som nok kan køre! Har selv prøvet at lave et eks. med formler, men selvom jeg har en kraftig PC, med masser af Ram, og CPU med 8 kerner, så gik den i stå, da den skulle beregne tal op til 10.000!
Avatar billede Jan K Ekspert
01. september 2020 - 18:51 #7
#6 Også min erfaring, og generelt kan opgaven være forholdsvis uløselig, hvis alle mulige løsningrt, skal findes. Det var også derfor, jeg understregede at Problemløserne kun finder en blandt mange løsninger - selv om man kan "tvinge" den til at finde flere ved at ændre på betingelserne eller beregningsmetoden.
Avatar billede ebea Ekspert
01. september 2020 - 19:35 #8
#7 - I den fil jeg har uploadet i #4, kan alle tal op til 10.000 (testet) findes kombinationerne af, inden for 1 - 2 sekunder, med problemløseren.
Om så OP ønsker at bruge det, er en anden sag!
Avatar billede Jan K Ekspert
01. september 2020 - 22:13 #9
#8. Det ville være nemmere hvis vi vidste hvilke tal og hvilken sum. Så kunne man se, om det  overhovedet er muligt.
Avatar billede ebea Ekspert
01. september 2020 - 22:41 #10
#9 - Jeg ved ikke lige hvad du mener med "hvilke tal" og "hvilken sum".
Tallet du ønsker at finde, angives jo i Solver menuen, og der er jo ikke nogen decideret  sum, men det tal som kommer ud af Solver's gennemløb af de angivne beregningstal (i mit tilfælde i A kolonnen), og som i eksemplet, vises i B25. Og det tal er lig med det som man ønsker at finde kombinationer af, og sammenlagt (SUMPRODUKT formlen) af de kombinationer i A kolonnen, som Solver har brugt til at finde kombinationen med.
Jeg har i A kolonnen opstillet tal, som kan dække tal op til 10.000
Avatar billede Jan K Ekspert
01. september 2020 - 23:09 #11
#10  Det er jeg med på, men det jeg mente var, at det kommer jo an på hvilke 27 tal, som OP har i sin liste. Er det fx 1 til 27, kan han ikke finde nogen, der giver 8418. Din liste er jo opbygget, så det kan lade sig gøre.

Jeg har opfattet OP som om det er en given liste over tal, der skal vælges fra.
Avatar billede ebea Ekspert
02. september 2020 - 09:14 #12
#11 - ja, det er jeg også med på (OP's 27 tal). Men som udgangspunkt, så må vi gå ud fra, at de kan dække området op til 8414, som var tallet.
Min opstilling var for at vise OP hvordan tal stilles op ;-)
Avatar billede finb Ekspert
03. september 2020 - 14:52 #13
Sub Hit_8418

Dim Targett As Integer
Targett = 8418

Dim _
    Tal_01, Tal_02, Tal_03, Tal_04, Tal_05, Tal_06, Tal_07, Tal_08, Tal_09, Tal_10, _
    Tal_11, Tal_12, Tal_13, Tal_14, Tal_15, Tal_16, Tal_17, Tal_18, Tal_19, Tal_20, _
    Tal_21, Tal_22, Tal_23, Tal_24, Tal_25, Tal_26, Tal_27 _
As Integer
   
'Indsæt selv dine egne tal:

Tal_01 = 4
Tal_02 = 6
Tal_03 = 7
Tal_04 = 9
Tal_05 = 11
Tal_06 = 14
Tal_07 = 19
Tal_08 = 20
Tal_09 = 24
Tal_10 = 26
Tal_11 = 30
Tal_12 = 33
Tal_13 = 35
Tal_14 = 37
Tal_15 = 41
Tal_16 = 42
Tal_17 = 44
Tal_18 = 47
Tal_19 = 51
Tal_20 = 55
Tal_21 = 59
Tal_22 = 62
Tal_23 = 63
Tal_24 = 67
Tal_25 = 69
Tal_26 = 80
Tal_27 = 85

Dim _
    Multiplikator_01, Multiplikator_02, Multiplikator_03, Multiplikator_04, Multiplikator_05, Multiplikator_06, Multiplikator_07, Multiplikator_08, Multiplikator_09, Multiplikator_10, _
    Multiplikator_11, Multiplikator_12, Multiplikator_13, Multiplikator_14, Multiplikator_15, Multiplikator_16, Multiplikator_17, Multiplikator_18, Multiplikator_19, Multiplikator_20, _
    Multiplikator_21, Multiplikator_22, Multiplikator_23, Multiplikator_24, Multiplikator_25, Multiplikator_26, Multiplikator_27 _
As Integer

Dim _
    Produkt_01, Produkt_02, Produkt_03, Produkt_04, Produkt_05, Produkt_06, Produkt_07, Produkt_08, Produkt_09, Produkt_10, _
    Produkt_11, Produkt_12, Produkt_13, Produkt_14, Produkt_15, Produkt_16, Produkt_17, Produkt_18, Produkt_19, Produkt_20, _
    Produkt_21, Produkt_22, Produkt_23, Produkt_24, Produkt_25, Produkt_26, Produkt_27 _
As Integer

For Multiplikator_01 = 0 To 1
  Produkt_01 = Tal_01 * Multiplikator_01

For Multiplikator_02 = 0 To 1
  Produkt_02 = Tal_02 * Multiplikator_02

For Multiplikator_03 = 0 To 1
  Produkt_03 = Tal_03 * Multiplikator_03

For Multiplikator_04 = 0 To 1
  Produkt_04 = Tal_04 * Multiplikator_04

For Multiplikator_05 = 0 To 1
  Produkt_05 = Tal_05 * Multiplikator_05

For Multiplikator_06 = 0 To 1
  Produkt_06 = Tal_06 * Multiplikator_06

For Multiplikator_07 = 0 To 1
  Produkt_07 = Tal_07 * Multiplikator_07

For Multiplikator_08 = 0 To 1
  Produkt_08 = Tal_08 * Multiplikator_08

For Multiplikator_09 = 0 To 1
  Produkt_09 = Tal_09 * Multiplikator_09

For Multiplikator_10 = 0 To 1
  Produkt_10 = Tal_10 * Multiplikator_10

For Multiplikator_11 = 0 To 1
  Produkt_11 = Tal_11 * Multiplikator_11

For Multiplikator_12 = 0 To 1
  Produkt_12 = Tal_12 * Multiplikator_12

For Multiplikator_13 = 0 To 1
  Produkt_13 = Tal_13 * Multiplikator_13

For Multiplikator_14 = 0 To 1
  Produkt_14 = Tal_14 * Multiplikator_14

For Multiplikator_15 = 0 To 1
  Produkt_15 = Tal_15 * Multiplikator_15

For Multiplikator_16 = 0 To 1
  Produkt_16 = Tal_16 * Multiplikator_16

For Multiplikator_17 = 0 To 1
  Produkt_17 = Tal_17 * Multiplikator_17

For Multiplikator_18 = 0 To 1
  Produkt_18 = Tal_18 * Multiplikator_18

For Multiplikator_19 = 0 To 1
  Produkt_19 = Tal_19 * Multiplikator_19

For Multiplikator_20 = 0 To 1
  Produkt_20 = Tal_20 * Multiplikator_20

For Multiplikator_21 = 0 To 1
  Produkt_21 = Tal_21 * Multiplikator_21

For Multiplikator_22 = 0 To 1
  Produkt_22 = Tal_22 * Multiplikator_22

For Multiplikator_23 = 0 To 1
  Produkt_23 = Tal_23 * Multiplikator_23

For Multiplikator_24 = 0 To 1
  Produkt_24 = Tal_24 * Multiplikator_24

For Multiplikator_25 = 0 To 1
  Produkt_25 = Tal_25 * Multiplikator_25

For Multiplikator_26 = 0 To 1
  Produkt_26 = Tal_26 * Multiplikator_26

For Multiplikator_27 = 0 To 1
  Produkt_27 = Tal_27 * Multiplikator_27

If _
  Produkt_01 + Produkt_02 + Produkt_03 + Produkt_04 + Produkt_05 + Produkt_06 + Produkt_07 + Produkt_08 + Produkt_09 + Produkt_10 + _
  Produkt_11 + Produkt_12 + Produkt_13 + Produkt_14 + Produkt_15 + Produkt_16 + Produkt_17 + Produkt_18 + Produkt_19 + Produkt_20 + _
  Produkt_21 + Produkt_22 + Produkt_23 + Produkt_24 + Produkt_25 + Produkt_26 + Produkt_27 _
  = Targett _
Then _
  MsgBox "Targett er sum af: " & _
  Tal_01 & " - " & Tal_02 & " - " & Tal_03 & " - " & Tal_04 & " - " & Tal_05 & " - " & Tal_06 & " - " & Tal_07 & " - " & Tal_08 & " - " & Tal_09 & " - " & Tal_10 & " - " & _
  Tal_11 & " - " & Tal_12 & " - " & Tal_13 & " - " & Tal_14 & " - " & Tal_15 & " - " & Tal_16 & " - " & Tal_17 & " - " & Tal_18 & " - " & Tal_19 & " - " & Tal_20 & " - " & _
  Tal_21 & " - " & Tal_22 & " - " & Tal_23 & " - " & Tal_24 & " - " & Tal_25 & " - " & Tal_26 & " - " & Tal_27

                          Next Multiplikator_27
                          Next Multiplikator_26
                        Next Multiplikator_25
                        Next Multiplikator_24
                      Next Multiplikator_23
                      Next Multiplikator_22
                    Next Multiplikator_21
                    Next Multiplikator_20
                  Next Multiplikator_19
                  Next Multiplikator_18
                Next Multiplikator_17
                Next Multiplikator_16
              Next Multiplikator_15
              Next Multiplikator_14
            Next Multiplikator_13
            Next Multiplikator_12
          Next Multiplikator_11
          Next Multiplikator_10
        Next Multiplikator_09
        Next Multiplikator_08
      Next Multiplikator_07
      Next Multiplikator_06
    Next Multiplikator_05
    Next Multiplikator_04
  Next Multiplikator_03
  Next Multiplikator_02
Next Multiplikator_01

End Sub
Avatar billede Butterfly Ekspert
11. september 2020 - 08:41 #14
Mange tak for hjælpen og undskyld det sene svar.
Jeg medgiver det er for dårligt jeg ikke svarer jer hurtigt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester