• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

[Excel 2007] Formule werkt niet bij tweede variabele

Status
Niet open voor verdere reacties.

tijmen_4real

Gebruiker
Lid geworden
20 apr 2005
Berichten
338
Hoi,

Voor het werk op mijn afdeling heb ik een sheet gemaakt met hierin de planning.
Veel van deze gegevens moest ik zelf nog uitrekenen. Nu probeer ik het één en ander door Excel te laten uitrekenen (waar het voor bedoeld is, toch?)
Zie hieronder een deel van de sheet.

ps1.png

Ik wil aan dit stukje het volgende doen:
- Als er caps worden ingevuld, dan wordt voor de berekening van de totale hoeveelheid kilo's van een order de volgende code gebruikt:

Code:
=AFRONDEN.BOVEN(ALS(VIND.ALLES("caps";D3);((LINKS(D3;VIND.ALLES(" caps";D3)-1)*G3)/1000000););1)

Dit werkt prima. Maar nu wil ik het zo maken dat Excel zelf ziet of er caps of kg. in kolom D staan, en aan de hand van dit verschil wel of geen calculatie maakt:
- Als er caps staat, dan wordt dit aantal vermedigvuldigd met het aantal mg. per capsule, zodat je de totale hoeveelheid kilo's van een order krijgt in kolom E
- Als er kg. staat, dan wordt alleen deze de tekst " kg." verwijderd en dit getal overgenomen in kolom E
Om dit te bereiken heb ik de volgende code geprobeerd:

Code:
=AFRONDEN.BOVEN(ALS(VIND.ALLES("caps";D3);((LINKS(D3;VIND.ALLES(" caps";D3)-1)*G3)/1000000);LINKS(D3;VIND.ALLES(" kg";D3)-1));1)

Maar deze code geeft, ongeacht de gekozen cel, #WAARDE. Wanneer ik echter in de 'waarde-als-onwaar' de tekst vervang (ter controle) door " caps", dan werkt de code goed. Hoe kan het nou zo zijn dat de tekst " kg." roet in de code gooit? En, nog belangrijker, hoe los ik dit op??

Bij voorbaat dank voor de hulp.
Met vriendelijke groet,

Tijmen
 
Als "caps" niet gevonden wordt, dan levert VIND.ALLES #WAARDE! op.
De oplossing is om ISGETAL() om de conditie heen te zetten.
Code:
=AFRONDEN.BOVEN(ALS(ISGETAL(VIND.ALLES("caps";D3));((LINKS(D3;VIND.ALLES(" caps";D3)-1)*G3)/1000000);LINKS(D3;VIND.ALLES(" kg";D3)-1));1)
 
of:
Code:
=ALS(RECHTS(D3;4)="caps";AFRONDEN.BOVEN((LINKS(D3;VIND.ALLES("caps";D3)-1)*G3)/1000000;1);LINKS(D3;VIND.ALLES("kg";D3;1)-1))
 
Laatst bewerkt:
Als "caps" niet gevonden wordt, dan levert VIND.ALLES #WAARDE! op.
De oplossing is om ISGETAL() om de conditie heen te zetten.
Code:
=AFRONDEN.BOVEN(ALS(ISGETAL(VIND.ALLES("caps";D3));((LINKS(D3;VIND.ALLES(" caps";D3)-1)*G3)/1000000);LINKS(D3;VIND.ALLES(" kg";D3)-1));1)

Ik krijg hiermee de melding dat er teveel argumenten gebruikt worden....


of:
Code:
=ALS(RECHTS(D3;4)="caps";AFRONDEN.BOVEN((LINKS(D3;VIND.ALLES("caps";D3)-1)*G3)/1000000;1);LINKS(D3;VIND.ALLES("kg";D3;1)-1))

Dit werkt prima, hartelijk dank!
 
Mooi dat het werkt.
Kun je dit draadje gelijk op opgelost zetten.
 
Wees slim zet geen twee soorten gegevens (hoeveelheid en maat) in 1 cel; gebruik daarvoor aparte kolommen. Bespaart een hoop exotische Excelfunkties.
 
Laatst bewerkt:
Hoi,

Even de vraag weer veranderd in 'niet opgelost', want een aanvullende optie zorgt voor een probleem.

De code die ik kreeg om dus per regel het aantal kilo's van een order te berekenen werkt prima, en is als volgt:
Code:
=AFRONDEN.BOVEN(ALS(ISGETAL(VIND.ALLES("caps";D3));((LINKS(D3;VIND.ALLES(" caps";D3)-1)*G3)/1000000);LINKS(D3;VIND.ALLES(" kg";D3)-1));1)

Ik heb rij 3 t/m 21 die dus orders bevatten. Door middel van:
Code:
SOM(D3:D21
wil ik het totaal aantal kilo's laten optellen. Dit wordt vermeld in de rode tekst onder de orders (zie printscreen)
Het resultaat is dat de kilo's van de berekende caps-orders (wat capsules worden) worden opgeteld, maar die van de orders kg's (wat tabletten worden) niet.
Dit heb ik zowel afzonderlijk (caps/kg's) als samen geprobeerd.

Het resultaat is dat alleen de orders waarin caps vermeld staan worden meegeteld in de som.
Is het nu zo dat de data die voortkomt uit de code geen 'echt' getal oplevert?

Wil iemand mij alsjeblieft helpen mee/aan een oplossing?
Bij voorbaat dank en met vriendelijke groet,

Tijmen
 
Je vermoeden klopt: het resultaat van LINKS is tekst; om hier een getal van te maken, kun je er een berekening voor zetten, zoals -- of 0+ of 1*
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan