Excel meerdere bedragen moeten gelijk zijn aan een cel

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

  • proxsz
  • Registratie: Oktober 2015
  • Laatst online: 19-03-2023
Wat ik wil is dat excel de bedragen laat zien die gelijk zijn samen aan x getal
Iemand enig idee?

= € 941,64


€ 290,78
€ 56,00
€ 346,20
€ 225,55
€ 384,58
€ 221,95
€ 110,53
€ 343,80
€ 330,00
€ 279,55
€ 279,55
€ 314,78
€ 269,94
€ 262,42

Beste antwoord (via proxsz op 14-06-2019 09:33)


  • Dunka
  • Registratie: Augustus 2005
  • Laatst online: 19-09 11:23
Installeer de oplosser invoegtoepassing in Excel.

Dan zet je de bedragen in kolom A in Excel (bijv. range A2:A14). laat kolom B leeg als hulpkolom.

zet in cel B16 de formule =somproduct(A2:A14;B2:B14).

Ga dan naar het menu gegevens. Open de oplosser. Geef bij doelfunctie bepalen cel B16 in. Kies "naar waarde van" en geef je gewenste waarde in. Voeg randvoorwaarde in en kies als celverwijzing B2:B14 en randvoorwaarde binair.

Kies oplossen en gebruik voorwaardelijke opmaak om de rijen waar de waarde in de B kolom 1 is te markeren.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Bamisaus
  • Registratie: November 2014
  • Laatst online: 06:57
Je zou voorwaardelijke opmaak kunnen gebruiken als je alleen het uiterlijk van de cel wilt veranderen.
Als je ze middels een filter inzichtelijk wilt maken kun je het best de ALS formule gebruiken.

Acties:
  • 0 Henk 'm!

  • Paultje3181
  • Registratie: November 2002
  • Laatst online: 13:38
Volgens mij bedoeld TS dat als de bedragen optellen tot x bedrag dat ze dan gemarkeerd worden.

Dit ga je niet makkelijk geprogrammeerd krijgen. Alleen loopen via een macro gaat je hierbij helpen ben ik bang. Je begint bij A1 en gaat met een do while loop zoeken naar bedrag -A1. Bestaat deze niet, dan tel je A1+A2 op en zoek je naar het verschil met bedrag. Bestaat dit niet: A1+A3 etc. Ditzelfde met A2 en alle getallen in A. Als je geen match hebt, dan A1+A2 en loopen.

Je zou eventueel een aantal stappen uit kunnen sluiten door te kijken of A1+max(A2:A) < bedrag. Hierdoor weet je dat je meteen moet kijken naar A1+A2.
Ook een Vlookup naar het verschil kan helpen.

Genoeg opties iig. Maar wat het meest effectief is? Geen idee.
De cellen kleur je uiteindelijk met Range("A1").interior.colorindex=8(cyaan)
Zie https://docs.microsoft.co.../api/excel.range.interior

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Idd VBA en om het een beetje in de hand te houden is recursief programmeren wel het dingetje.
Hieronder een voorbeeld van een userdefinied function (kun je gewoon als functie in je werkblad opnemen) die als resultaat de optelsom weergeeft en ondertussen ook nog de gebruikte cellen groen kleurt:

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Option Explicit
Dim NumberToFind As Double
Dim RangeToSearch As Range

Public Function FindSum(Total As Double, Numbers As Range)
On Error GoTo nop
Dim result As String
Set RangeToSearch = Numbers
NumberToFind = Total
CalcSum 0, 1, result

If result > "" Then
    FindSum = result
Else
    FindSum = "Niet gevonden"
End If
Exit Function
nop:

FindSum = Err.Description
End Function

Private Function CalcSum(ByVal SubTotal As Double, ByVal row As Integer, result As String) As Boolean
Dim currentCell As Range
Dim i As Long
Dim sumFound As Boolean

For i = row To RangeToSearch.Rows.Count
    Set currentCell = RangeToSearch.Cells(i, 1)
    If SubTotal + currentCell.Value = NumberToFind Then
        sumFound = True
    ElseIf SubTotal + currentCell.Value < NumberToFind Then
      sumFound = CalcSum(ByVal SubTotal + currentCell.Value, ByVal i + 1, result)
    ' Else
    '    Exit Function   'dit kan als het zoekbereik in oplopende volgorde is gesorteerd, anders niet gebruiken
    End If
    If sumFound Then
        currentCell.Font.ColorIndex = 4
        result = result & currentCell.Value & " "
        CalcSum = True
        Exit Function
    End If
Next i

End Function

[ Voor 3% gewijzigd door Lustucru op 08-06-2019 13:46 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • Croga
  • Registratie: Oktober 2001
  • Laatst online: 30-09 08:29

Croga

The Unreasonable Man

Lustucru schreef op zaterdag 8 juni 2019 @ 13:43:
Idd VBA en om het een beetje in de hand te houden is recursief programmeren wel het dingetje.
Hieronder een voorbeeld van een userdefinied function (kun je gewoon als functie in je werkblad opnemen) die als resultaat de optelsom weergeeft en ondertussen ook nog de gebruikte cellen groen kleurt:
Ook die gaat niet tot het voorbeeld in de OP leiden....
Nog sterker; ik denk dat het verrekte moeilijk gaat worden daar wel aan te komen. De som kan namelijk uit een volledig random set van de getallen komen.

@TS welke logica zou je zelf gebruiken als je dit met de hand zou moeten doen? Ik zie namelijk geen enkele logica in de manier waarop het voorbeeld in de OP gemaakt is. En als je als mens er geen logica in kunt vinden, kun je het ook niet programmeren.

Acties:
  • 0 Henk 'm!

  • likewise
  • Registratie: Augustus 2000
  • Laatst online: 23-09 23:25
Je zou alle combinaties kunnen proberen. Met n getallen zijn het 2^n combinaties. Bovendien zijn er theoretisch meerdere combinaties mogelijk

=8

4
4
2
6
4

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Croga schreef op zaterdag 8 juni 2019 @ 13:49:
[...]

Ook die gaat niet tot het voorbeeld in de OP leiden....
En waarom dan wel niet?
Nog sterker; ik denk dat het verrekte moeilijk gaat worden daar wel aan te komen. De som kan namelijk uit een volledig random set van de getallen komen.
Nog sterker: ik postte er net een voorbeeld van. Wat roet in het eten kan gooien is dat float vergelijkingen wat problematisch zijn en dat er afgerond moet worden (of nog beter, met gehele getallen werken in de formules) maar verder zie ik geen probleem, mits de zoekset klein genoeg is voor een brute-force aanpak.

Btw: een oplossing is 314,78 110,53 225,55 290,78

[ Voor 4% gewijzigd door Lustucru op 09-06-2019 09:26 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • proxsz
  • Registratie: Oktober 2015
  • Laatst online: 19-03-2023
Cel A1 moet gelijk zijn aan een aantal cellen en die moeten idd een kleur geven. De getallen die bij elkaar moeten bestaan vaak uit een stuk of 10 getallen, die maar op een manier bij elkaar opgeteld uitkomen op cel a1. Deze staan op A3 t/m A13. Als ik de VBA kopieer en plak dan gebeurt er nog niks. Iemand nog enig idee?

Zelf probeerde ik idd de als formule. Maar dat werkte niet echt.

Hoor het graag.

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Het komt denk ik ietwat beledigend over als er mensen uitgebreide reacties plaatsen en je een paar dagen later alleen “het werkt niet” zegt. Weinig uitnodigend ;)

Waar loop je concreet vast in de code? Hoe roep je het aan?

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • proxsz
  • Registratie: Oktober 2015
  • Laatst online: 19-03-2023
Code doet niks, snap het ook niet helemaal.

Acties:
  • Beste antwoord
  • +1 Henk 'm!

  • Dunka
  • Registratie: Augustus 2005
  • Laatst online: 19-09 11:23
Installeer de oplosser invoegtoepassing in Excel.

Dan zet je de bedragen in kolom A in Excel (bijv. range A2:A14). laat kolom B leeg als hulpkolom.

zet in cel B16 de formule =somproduct(A2:A14;B2:B14).

Ga dan naar het menu gegevens. Open de oplosser. Geef bij doelfunctie bepalen cel B16 in. Kies "naar waarde van" en geef je gewenste waarde in. Voeg randvoorwaarde in en kies als celverwijzing B2:B14 en randvoorwaarde binair.

Kies oplossen en gebruik voorwaardelijke opmaak om de rijen waar de waarde in de B kolom 1 is te markeren.

Acties:
  • 0 Henk 'm!

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Dunka schreef op donderdag 13 juni 2019 @ 16:02:
Installeer de oplosser invoegtoepassing in Excel.
Is ook een mooie. :)

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Acties:
  • 0 Henk 'm!

  • proxsz
  • Registratie: Oktober 2015
  • Laatst online: 19-03-2023
Thank youu! Het is opgelost! Toppie
Pagina: 1