• 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.

Getallen in 1 cel los van elkaar berekenen

Status
Niet open voor verdere reacties.

mrceriel

Gebruiker
Lid geworden
11 apr 2007
Berichten
12
Hallo,

Ik heb een vraag over een bepaalde berekening in Excel, hoe dit voor elkaar te krijgen.

Ik heb bijvoorbeeld het getal 12345678 in één veld staan (bijv. in A1)
Nu wil ik dat elk getal apart vermenigvuldigd wordt met een ander getal en de uitkomst ook weer in een andere cel komt te staan.

Ik wil 1x9, 2x8, 3x7 etc. hebben. Dus de vraag is, hoe kan ik Excel deze berekeningen laten maken, zonder elk getal (van de '12345678 in 'A1') in een aparte cel te zetten. Is dit een hele lastige code of relatief eenvoudig? Bedankt alvast voor eventuele tips.
 
Wat zijn de 2de getallen waarmee vermenigvuldigd moet worden?
 
Volgens mij deze
Code:
:=SOM(LINKS(A1;1)*RECHTS(A1;1);DEEL(A1;2;1)*DEEL(A1;LENGTE(A1)-1;1);DEEL(A1;3;1)*DEEL(A1;LENGTE(A1)-2;1);DEEL(A1;4;1)*DEEL(A1;LENGTE(A1)-3;1))
 
Rob,

wat als je een getal van 30 cijfers hebt? Of meer? :shocked:

Wigi
 
Wim,

Gewoon doortikken tot het gaatje ;)
 
@ Wigi: Da's eigenlijk even voor het voorbeeld.
Het is uiteindelijk om een bepaalde code te berekenen logarhytmisch.

@rdg1314
Thanks! Ik ben al een stuk verder. maar nu telt ie in een cel de getallen bij elkaar op. dus 1+2+3+4 etc. Ik wil 1*9, 2*8 en de uitkomsten in aparte cellen. dus 9 in bijv. B2 & 16 in B3. Dit omdat ik uiteindelijk die acht uitkomsten bij elkaar op moet tellen.
 
@ Wigi: Da's eigenlijk even voor het voorbeeld.
Het is uiteindelijk om een bepaalde code te berekenen logarhytmisch.

@rdg1314
Thanks! Ik ben al een stuk verder. maar nu telt ie in een cel de getallen bij elkaar op. dus 1+2+3+4 etc. Ik wil 1*9, 2*8 en de uitkomsten in aparte cellen. dus 9 in bijv. B2 & 16 in B3. Dit omdat ik uiteindelijk die acht uitkomsten bij elkaar op moet tellen.

8 uitkomsten? Van welke bewerkingen?

En het tellen gaat ook in 1 (weliswaar complexe) formule. Je hebt geen hulpcellen en geen VBA code nodig.
 
Probeer dit al eens uit:

Code:
=ALS(IS.EVEN(LENGTE(A1));SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&LENGTE(A1)/2));1)*DEEL(A1;LENGTE(A1)+1-RIJ(INDIRECT("1:"&LENGTE(A1)/2));1));"Oneven aantal getallen")

Opgelet: geavanceerde Excel functies... ;)
 
8 uitkomsten? Van welke bewerkingen?

En het tellen gaat ook in 1 (weliswaar complexe) formule. Je hebt geen hulpcellen en geen VBA code nodig.


Zo, die is idd redelijk geavanceerd.

Ik zal even uitleggen waar ik het voor nodig heb, dan is het misschien iets duidelijker met de uitkomsten. Ik ben geen reken- en Excelwonder, dat voorop, maar ik zal proberen het zo duidelijk mogelijk uit te leggen.

Het is uiteindelijk om een check digit te kunnen achterhalen van een programma dat draait onder Unix en voor artikelnummers een soort van verificatie-code genereerd. Deze code wordt met een bepaald algorithme berekend.

Nu willen bepaalde medewerkers deze artikel-verificatiecodes in excel kunnen verifieren.
Dus ik zet nu dat algorithme in Excel. Dit is de formule:

Stel, het artikelnummer is 25685984.
Positie 1 moet met 9 worden vermenigvuldigd, positie 2 met 8 positie 3 met 7 enz.
Deze waarden worden opgeteld: In dit geval 241.
Dit delen door 11, dus 21. (afgerond naar beneden)
Dit getal +1, dus 22.
Dat keer 11 = 242.
Het oude getal dat voor 11 werd gedeeld, wordt van het nieuwe getal afgehaald. Dus 242 - 241 = 1.
In dit geval is de check digit van artikelnummer 25685984 dus 1.

Dit ben ik in Excel aan het zetten. Nu lukt het me wel als ik elk getal (van het artikelnummer) apart in een andere cel zet, (dus 2 in A1, 5 in B1, 6 in C1 etc) maar dat is voor degenen die het gaan gebruiken een beetje lastig; het is makkelijker om in een keer het artikelnummer in te typen zonder te tab'ben tussen de getallen. vandaar dat dus bovenstaand 'euvel'. Misschien is er overigens wel een hele andere oplossing mogelijk. Zal cool zijn als iemand een oplossing had.
 
Laatst bewerkt:
Als je het in 1 keer wilt:

Code:
=(INTEGER(SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1)*DEEL(A1;LENGTE(A1)+1-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1))/11)+1)*11-SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1)*DEEL(A1;LENGTE(A1)+1-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1))

Wigi
 
Als je het in 1 keer wilt:

Code:
=(INTEGER(SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1)*DEEL(A1;LENGTE(A1)+1-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1))/11)+1)*11-SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1)*DEEL(A1;LENGTE(A1)+1-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1)/2)));1))

Wigi

Dit is werkelijk ongelofelijk. Een Excel-genie mag ik wel stellen.
Je hebt me echt ontzettend geholpen. Heel erg bedankt!
 
Nu heb ik het helemaal begrepen.

Dit doet het wel:

Code:
=(INTEGER(SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))));1)*(10-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))))))/11)+1)*11-SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))));1)*(10-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))))))

Wel staat de 10 er nog "hard" in. Wat betekent dat het altijd van 10 blijft aftrekken, ook als het getal in A1 maar pakweg 4 cijfers heeft.

Wat er in het eerste deel van de Somproduct gebeurt, is elk getal uit A1 eruit lichten. In het tweede deel van de Somproduct wordt dat dan vermenigvuldigd met 10-1, 10-2, 10-3, enz. net als in jouw berekening hierboven.

Vraag is nu: hoe bepaal ik die 10? Het aantal getallen in A1, plus 1?

Wigi
 
Nu heb ik het helemaal begrepen.

Dit doet het wel:

Code:
=(INTEGER(SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))));1)*(10-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))))))/11)+1)*11-SOMPRODUCT(DEEL(A1;RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))));1)*(10-RIJ(INDIRECT("1:"&INTEGER(LENGTE(A1))))))

Wel staat de 10 er nog "hard" in. Wat betekent dat het altijd van 10 blijft aftrekken, ook als het getal in A1 maar pakweg 4 cijfers heeft.

Wat er in het eerste deel van de Somproduct gebeurt, is elk getal uit A1 eruit lichten. In het tweede deel van de Somproduct wordt dat dan vermenigvuldigd met 10-1, 10-2, 10-3, enz. net als in jouw berekening hierboven.

Vraag is nu: hoe bepaal ik die 10? Het aantal getallen in A1, plus 1?

Wigi


Thanks, echt top! Ja hij werkt inderdaad super.
Ik weet niet of er in de code nog een mogelijkheid zit om, mocht de uitkomst hoger zijn dan 9, deze standaard op 0 te zetten?
 
Thanks, echt top! Ja hij werkt inderdaad super.
Ik weet niet of er in de code nog een mogelijkheid zit om, mocht de uitkomst hoger zijn dan 9, deze standaard op 0 te zetten?

Dat kan uiteraard, maar besef dan wel dat de formule nog eens (meer dan) dubbel zo lang wordt...
 
Dat kan uiteraard, maar besef dan wel dat de formule nog eens (meer dan) dubbel zo lang wordt...

Ja precies, dat is ook niet echt handig idd. Lastig.
Ik zat te denken aan weer een andere cel aanspreken die sowieso de check digit laat zien en dan een soort van (ik weet het niet hoor) if <getal> higher than 9 than... code bevat. Maar dat kan dan waarschijnlijk niet?
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan