Is dit mogelijk in Excel??

Pagina: 1
Acties:
  • 166 views sinds 30-01-2008
  • Reageer

  • Jivecar
  • Registratie: December 2001
  • Laatst online: 12-11-2025
Stel:
Je hebt een kolom met 100 getallen.
Je weet dat de som van x getallen € 200 bedraagt.
Kun je dan Excel laten uitzoeken welke getallen bij elkaar € 200 zijn?

Zal vrij intensief (en pc lomp) computerwerk zijn maar als het kan dan geeft dit praktische mogelijkheden.

Intel P4D-2800@2800, Asus P4P800-SE, 1024MB Corsair, Asus v9999/TD, Maxtor DiamondMax 10 250GB, Western Digital 600BB 60GB, Pioneer DVDR, HP 9150, Soundblaster Audigy. + Toshiba E400......


  • Helmet
  • Registratie: Januari 2002
  • Laatst online: 30-03 11:36
doelzoeker of doeloplosser dacht ik maar da's te lang geleden :)

Icons are overrated


  • Jivecar
  • Registratie: December 2001
  • Laatst online: 12-11-2025
Helmet schreef op 26 May 2003 @ 19:40:
doelzoeker of doeloplosser dacht ik maar da's te lang geleden :)
Met doeloplosser kun je bij mijn weten dit niet uitzoeken. De doeloplosser rekend met minder variabele.

In mijn vraagstuk is het niet bekend hoeveel getallen bij elkaar opgeteld het totaal bedrag vormt. Er zijn tig combinaties mogelijk maar excel zou deze theoretisch moeten kunnen uitrekenen.

Intel P4D-2800@2800, Asus P4P800-SE, 1024MB Corsair, Asus v9999/TD, Maxtor DiamondMax 10 250GB, Western Digital 600BB 60GB, Pioneer DVDR, HP 9150, Soundblaster Audigy. + Toshiba E400......


  • brokenp
  • Registratie: December 2001
  • Laatst online: 09:58
dit kan zeker, maar ik denk niet met standaardfuncties binnen Excel, hiervoor zal je een macro moeten schrijven. Hiervoor zal je in VBA moeten duiken, en de basis van programeren moeten leren. Of je moet toevallig iemand kennen die dit voor jouw wil doen...

  • Jivecar
  • Registratie: December 2001
  • Laatst online: 12-11-2025
ehm....... das minder......
Kan iig geen macro schrijven, ook visual basics zegt mij niets behalve de betekenis van de afkorting 8)7

Iemand anders misschien een betere / snellere oplossing ?

Intel P4D-2800@2800, Asus P4P800-SE, 1024MB Corsair, Asus v9999/TD, Maxtor DiamondMax 10 250GB, Western Digital 600BB 60GB, Pioneer DVDR, HP 9150, Soundblaster Audigy. + Toshiba E400......


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Jivecar schreef op 27 May 2003 @ 19:28:
Iemand anders misschien een betere / snellere oplossing ?
Behalve VBA niet nee. Maar is er maar 1 mogelijkheid dat er x getallen bij elkaar opgeteld 200 zijn? Of zijn er meerdere combinaties mogelijk?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Jivecar
  • Registratie: December 2001
  • Laatst online: 12-11-2025
RobIII schreef op 27 mei 2003 @ 19:31:
[...]

Behalve VBA niet nee. Maar is er maar 1 mogelijkheid dat er x getallen bij elkaar opgeteld 200 zijn? Of zijn er meerdere combinaties mogelijk?
Ik ga ervanuit dat er maar één combinatie is. Maar aan de andere kant kunnen dit er meer zijn. Het aantal is variabel; de som van de optelling vast.

Intel P4D-2800@2800, Asus P4P800-SE, 1024MB Corsair, Asus v9999/TD, Maxtor DiamondMax 10 250GB, Western Digital 600BB 60GB, Pioneer DVDR, HP 9150, Soundblaster Audigy. + Toshiba E400......


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Met een stukkie VBA moet je het dan wel redden... Zet je excel ding es online, dan zal ik kijken wat ik voor je kan doen...(Wordt wel waarschijnlijk morgen pas).

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 04-04 11:51
Dat wordt toch een vrij heftige berekening inderdaad. Moest je niet eerst alleen het eerste getal nemen, dan de tweede optellen en controleren, dan de derde tot je alle getallen hebt gehad en dan steeds eerst de eerste laten vervallen, en weer heel het rijtje doorgaan enzovoorts?

  • Dinictus208
  • Registratie: November 2000
  • Niet online

Dinictus208

Tele romeo

Probeer eens op mrexcel.com da's het heersende forum als het gaat om Excel en vooral VBA.
Misschien kom je mij ook nog tegen.

I could feel at the time There was no way of knowing Fallen leaves in the night Who can say where they're blowing As free as the wind And hopefully learning Why the sea on the tide Has no way of turning


  • CoRrRan
  • Registratie: Juli 2000
  • Laatst online: 04-03 17:36

CoRrRan

Don't Panic!!!

Niet dat het erg on-topic is, aangezien TS aangegeven heeft niet te kunnen programmeren in VB (of VBA), maar hier is nog een forum waar je mogelijkerwijs een antwoord kunt krijgen op je vraag over een oplossing m.b.t. VB:

vbCity.com

vbCity.com - forums

-- == Alta Alatis Patent == --


  • NoTimeRemains
  • Registratie: September 2001
  • Laatst online: 01:02

NoTimeRemains

I know

is het mogelijk om tijd van elkaar af te trekken dus ik begin om 17.00 te werken en stop om 02.30 dan wil ik die tijden van elkaar aftrekken zodat ik weet hoeveel uren het in totaal zijn...

This is the Way.


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
HIValicious schreef op 04 June 2003 @ 12:25:
is het mogelijk om tijd van elkaar af te trekken dus ik begin om 17.00 te werken en stop om 02.30 dan wil ik die tijden van elkaar aftrekken zodat ik weet hoeveel uren het in totaal zijn...
Daarvoor gebruik je het beste DateDiff("eenheid",start, stop) denk ik

voor eenheid kun je o.a (zie de help) de volgende waardes gebruiken:

n : minuten
h : uren
d : dagen

enz...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 04-04 11:51
Wat heeft deze vraag nu weer met dit topic te maken, het is dan misschien een beetje een algemene topictitel maar toch. Zou mijn techniekje niet zomaar in Excel te maken zijn met wat if statements of ben ik dan eigenlijk als in VBA bezig?

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
* RobIII ziet de meterslange if statements al voor zijn ogen duizelen

Knappe jongen die dat in excel zelf klaar krijgt (dus zonder VBA). Lijkt me niet dus ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Dinictus208
  • Registratie: November 2000
  • Niet online

Dinictus208

Tele romeo

RobIII schreef op 04 June 2003 @ 13:11:
[...]


Daarvoor gebruik je het beste DateDiff("eenheid",start, stop) denk ik

voor eenheid kun je o.a (zie de help) de volgende waardes gebruiken:

n : minuten
h : uren
d : dagen

enz...
Dan kan je beter je cellen in time format zetten. Kan je er gewoon mee rekenen.
Of gebruik de timevalue of datevalue functie.

I could feel at the time There was no way of knowing Fallen leaves in the night Who can say where they're blowing As free as the wind And hopefully learning Why the sea on the tide Has no way of turning


  • Jivecar
  • Registratie: December 2001
  • Laatst online: 12-11-2025
Heb nu geen excelsheet bij de hand; maar zal morgen een praktijkvoorbeeld online zetten.

Het is een grootboekuitdraai waarvan het onbekend is welke bedragen zijn overgeboekt maar wel bekend is welk totaalbedrag het is.

Intel P4D-2800@2800, Asus P4P800-SE, 1024MB Corsair, Asus v9999/TD, Maxtor DiamondMax 10 250GB, Western Digital 600BB 60GB, Pioneer DVDR, HP 9150, Soundblaster Audigy. + Toshiba E400......


Verwijderd

oplossing: De oplosser
die zit niet standaard in Excel, maar kun je wel erbij installeren

kunt zo'n dingen daar volgens mij mee berekenen

Anders idd VBE gaan proggen, dat lijkt me ook niet zo gruwelijk veel werk

  • KeeZ
  • Registratie: Februari 2001
  • Laatst online: 25-04-2022

KeeZ

Deze plek is te koop.

Verwijderd schreef op 04 juni 2003 @ 21:04:
oplossing: De oplosser
die zit niet standaard in Excel, maar kun je wel erbij installeren

kunt zo'n dingen daar volgens mij mee berekenen

Anders idd VBE gaan proggen, dat lijkt me ook niet zo gruwelijk veel werk
niet zo gruwelijk veel werk ?? dat zeg jij ;)

Ik heb net een kleine poging gedaan maar ik zou eerst een bubblesort routine maken die ervoor zorgt dat alle kolommen op grootte gesorteerd zijn en dan pas kijken naar welke getallen totaal 200 opleveren... maar dan alsnog kom je met giga iteraties, pittig klusje heb je voor ogen, iig eens kijken naar de oplossing van Hawks, misschien dat dat wat voor je oplevert...

Deze plek is te koop.


  • The Eagle
  • Registratie: Januari 2002
  • Laatst online: 12:28

The Eagle

I wear my sunglasses at night

Jivecar: Ik heb hier een tijd terug een topic geopend over min of meer het zelfde probleem, alleen dan in PW en dat werd afgedaan als scriptrequest. Enfin, wat er bij mij gebeurde wat dat de doorgeboekte grootboekjournalen / journaalregels niet overeenkwamen met de bedragen die op het register stonden. En alleen de journaalregels werden weergegeven, zonder sortering. Dit alles in PeopleSoft FIN 8. Ik weet niet of je die gebruikt?

Bij mij was het iig zo dat ik een rapport ter beschikking had dat de journaalregels uitdraaide voor de registers die in onbalans waren. Deze kon ik ook op de diverse chartfields (verdelingen, kostenplaatsen, lokaties, etc) sorteren. Dat maakte het nazoeken een stuk simpeler; misschien kun jij zoiets ook?

Al is het nieuws nog zo slecht, het wordt leuker als je het op zijn Brabants zegt :)


  • RedHead
  • Registratie: Februari 2001
  • Laatst online: 03-04 00:19
Jivecar schreef op 04 June 2003 @ 19:56:
Heb nu geen excelsheet bij de hand; maar zal morgen een praktijkvoorbeeld online zetten.

Het is een grootboekuitdraai waarvan het onbekend is welke bedragen zijn overgeboekt maar wel bekend is welk totaalbedrag het is.
Ben wel benieuwd naar dat praktijk voorbeeld.

Maar hier moet toch al een algoritme voor bestaan?
Daarna het programmeren in VBA is niet zo moeilijk (al kost het altijd meer tijd dan je denkt of wil :( )

  • Jivecar
  • Registratie: December 2001
  • Laatst online: 12-11-2025
The_Eagle schreef op 05 June 2003 @ 13:56:
Jivecar: Ik heb hier een tijd terug een topic geopend over min of meer het zelfde probleem, alleen dan in PW en dat werd afgedaan als scriptrequest. Enfin, wat er bij mij gebeurde wat dat de doorgeboekte grootboekjournalen / journaalregels niet overeenkwamen met de bedragen die op het register stonden. En alleen de journaalregels werden weergegeven, zonder sortering. Dit alles in PeopleSoft FIN 8. Ik weet niet of je die gebruikt?

Bij mij was het iig zo dat ik een rapport ter beschikking had dat de journaalregels uitdraaide voor de registers die in onbalans waren. Deze kon ik ook op de diverse chartfields (verdelingen, kostenplaatsen, lokaties, etc) sorteren. Dat maakte het nazoeken een stuk simpeler; misschien kun jij zoiets ook?
Scriprequest en dus een slotje |:(

Qua software ben ik afhankelijk van de financiele pakketten die clienten gebruiken; in de praktijk kom ik veel verschillende pakketten tegen de meest voorkomende zijn de pakketten van Centric of Decade.

Excel sheet komt nog....

Intel P4D-2800@2800, Asus P4P800-SE, 1024MB Corsair, Asus v9999/TD, Maxtor DiamondMax 10 250GB, Western Digital 600BB 60GB, Pioneer DVDR, HP 9150, Soundblaster Audigy. + Toshiba E400......


  • Witte
  • Registratie: Februari 2000
  • Laatst online: 29-01 15:02
This does the trick...

code:
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
46
47
48
49
50
51
52
53
54
Sub oplosser()
Dim aantal, eerste, laatste, doel, som, pointer As Long

Const getallenkolom = 1 'Kolom met getallen wordt kolom A
Const waardenkolom = 3 'Waardenkolom wordt kolom C
Const pointerkolom = 4 'Pointerkolom wordt kolom D

eerste = 1 'Eerste getal in rij
laatste = 100 ' laatste getal in rij
doel = 200 ' beoogd resultaat

'wis Waardenkolom en Pointerkolom
For aantal = eerste To laatste
  Cells(aantal, waardenkolom) = Null
  Cells(aantal, pointerkolom) = Null
Next

'bepaal startgetal
aantal = 1 'aantal geeft aantal waarden aan in oplossing
Cells(aantal, waardenkolom) = Cells(eerste, getallenkolom) 'waarde
Cells(aantal, pointerkolom) = eerste 'pointer
som = Cells(aantal, waardenkolom) 'startsom

Do While aantal > 0 And som <> doel
  
  If Cells(aantal, pointerkolom) = laatste Then
    'terugval nodig
    som = som - Cells(aantal, waardenkolom) 'verlaag de som
    Cells(aantal, waardenkolom) = Null 'zet laatste waarde op null
    Cells(aantal, pointerkolom) = Null 'zet laatste pointer op null
    aantal = aantal - 1 'de feitelijke terugval
    If aantal > 0 Then
      som = som - Cells(aantal, waardenkolom)
      pointer = Cells(aantal, pointerkolom) + 1
    End If
  Else
    If som > doel Then 'som is groter dan resultaat
      som = som - Cells(aantal, waardenkolom)
      pointer = Cells(aantal, pointerkolom) + 1
    Else 'ga niveau verder
      pointer = Cells(aantal, pointerkolom) + 1
      aantal = aantal + 1
    End If
  End If

  If aantal > 0 Then
    Cells(aantal, pointerkolom) = pointer
    Cells(aantal, waardenkolom) = Cells(pointer, getallenkolom) 'vul nieuwe waarde in
    som = som + Cells(aantal, waardenkolom) 'tel nieuwe waarde op bij som
  End If
      
Loop

End Sub


Dit probleem roept om een recursief algoritme, maar dat is uiteraard link met de stack-ruimte. Daarom maak ik voor mijn data-opslag gebruik van het werkblad.

[ Voor 9% gewijzigd door Witte op 10-06-2003 07:47 ]

Houdoe


  • Jivecar
  • Registratie: December 2001
  • Laatst online: 12-11-2025
@noline:
Ziet er goed uit; maar hoe kan ik dat toepassen in excel ?? ben op dit gebied echt een newbie.....

Overigens is de excelsheet nog niet online vanwege de gevoelige informatie die eerst moet worden ge-annoniemiseerd.

Intel P4D-2800@2800, Asus P4P800-SE, 1024MB Corsair, Asus v9999/TD, Maxtor DiamondMax 10 250GB, Western Digital 600BB 60GB, Pioneer DVDR, HP 9150, Soundblaster Audigy. + Toshiba E400......


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 04-04 11:51
Dit kun je niet rechtstreeks in excel zetten lijkt me maar in VBA.

  • Witte
  • Registratie: Februari 2000
  • Laatst online: 29-01 15:02
Is echt heel simpel: rechtermuisknopje op het tabblad 'bald1' en kies 'programmacode'. vervolgens plak je dit stukje vba erin en klaar is kees.

Houdoe

Pagina: 1