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

Status
Niet open voor verdere reacties.

lottoman

Gebruiker
Lid geworden
11 mrt 2018
Berichten
6
Beste forumleden,

Weet er iemand of je bepaalde getallen kunt herleiden tot één getal? en hoe je het eventueel kan doen?

bv 1 - 10 - 19 -28 -37 -46 -55 zouden allemaal te herleiden zijn tot het getal 1


uitleg : 1=1 ; 10=1+0=1 ; 28=2+8=10=1+0=1 ; enz

Alvast bedankt
 
Een getal gedeeld door zichzelf is altijd 1.
Ik denk dat het wat meer uitleg behoeft m.b.t. je precieze bedoeling.
 
Geocaching puzzels... stapeltellen heet dat. Je telt net zo lang de afzonderlijke cijfers van het resultaat op totdat je 1 cijfer overhoudt. Alle getallen in je reeks zijn (per getal) opgeteld 10. En 1 + 0 = 1...

Ik heb nu geen pc ter beschikking, maar heb daar ooit een functie voor geschreven die ik vanavond wel ff kan posten.
 
Laatst bewerkt:
Alvast met formule.

In A1 het getal.
In B1 de formule.
Code:
=SOMPRODUCT(--(DEEL(TEKST(A1;"000000000");{1;2;3;4;5;6;7;8;9};1))*1)
Doortrekken naar rechts zover als nodig.
 
Laatst bewerkt:
Hierbij de functie die ik ooit had gemaakt toen ik nog fanatieker Geocaching puzzels zat op te lossen...

Code:
Function Getaltel(sGetal As String, Optional bDoortellen As Boolean = True) As Integer
'tel alle cijfers in een string bij elkaar op (hierbij is een getal de basis); letters worden genegeerd
'met de boolean op true wordt er doorgeteld totdat het resultaat 1 cijfer is
'vb: 5665 = 5+6+6+5 = 22 = 2+2 = 4
Dim i As Integer, iGeteld As Integer, iEindTot As Integer
Dim sSpatieloos As String

    sSpatieloos = Replace(sGetal, " ", "")

    For i = 1 To Len(sSpatieloos)
        If IsNumeric(Mid(sSpatieloos, i, 1)) Then iGeteld = iGeteld + Mid(sSpatieloos, i, 1)
    Next i

    If bDoortellen Then
        Do Until Len(CStr(iGeteld)) = 1
            For i = 1 To Len(CStr(iGeteld))
                iEindTot = iEindTot + Mid(iGeteld, i, 1)
            Next i
            iGeteld = iEindTot
            iEindTot = 0
        Loop
    End If

    Getaltel = iGeteld

End Function

Wellicht heb je er ook iets aan.
 
Beste forumleden, alvast bedankt voor de reacties.

GINGER, ik ken geen snars van de VBA-code, dus is dit moeilijk te begrijpen wat je programma doet, maar zeker ook bedankt

HSV, je formule werkt, maar bij het getal 37 krijg ik opnieuw een getal met 2 cijfers 3+7=10. Kan ik dan best een geneste functie maken om eerst het getal 37 te herleiden en dan controleren of resultaat groter is dan 9 en opnieuw uw formule toepassen? hoop dat het duidelijk is, Groeten
 
getallen herleiden opgelost

Beste leden

Bij deze laat ik weet dat het probleemis opgelost door de formule van HSV twee keer te laten lopen op mijn getallen.

Iedereen bedankt voor de reacties

Groeten

De lottoman
 
ik ken geen snars van de VBA-code

Bijleren is een deugd in een mensenleven. ;)

Klik op Alt + F11. De VBA editor (verder: VBE) wordt dan geopend. Aan de linkerkant van je venster zou een frame moeten zijn met de naam "project Explorer". Daar zie je ook de naam van je workbook tussen staan. Klik op die naam als je er onder hangend nog geen sheetnamen ziet (doe dit anders niet). Zorg er voor dat je workbooknaam geselecteerd is (blauw omkaderd). In de icoontjes balk aan de bovenkant van de VBE zie je naast het tweede knopje van links (naast die met het Excel logo) een driehoek-knopje. Klik deze open. Je krijgt dan 4 keuzes. Kies voor Module. Aan de rechterkant in het grote frame verschijnt een maagdelijk wit blad. Plak dáár de UDF functie van mij. Klik nu op dat eerste icoontje met het Excel logo om terug te keren naar je workbook.

Zet in cel A1 je te tellen waarde. In cel B1 zet je dan de UDF: =Getaltel(A1)
Et voila... ;)

P.s. om het je makkelijk te maken, heb ik het in de bijlage ook al voor je gedaan... :D En o ja... Een workbook met code moet je opslaan onder de extensie ".xlsm".
 

Bijlagen

  • Stapeltellen en Doortellen.xlsm
    19,5 KB · Weergaven: 51
Dag Ginger, bedankt voor de uitleg. ik ga het zeker eens bekijken en proberen ontleden.
Allezinds bedankt voor de moeite.

Groeten
De lottoman :)
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan