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

Formule voor het omrekenen van decimalen

Status
Niet open voor verdere reacties.

NogGeenGuru

Gebruiker
Lid geworden
5 aug 2015
Berichten
130
Beste forum leden,

Ik heb een Excelsheet die decimalen omrekent naar 1 tot 9-tallige stelsels.
Excel beschikt over een functie voor het omrekenen naar enkele hiervan maar ik zoek een universele formule voor het omrekenen van alle getallen.

ik heb een formule geschreven. maar deze werkt alleen voor getallen van 0 t/m 9999.
de formule luidt als volgt:
Code:
=REST($B10;K$1)+10*REST(INTEGER($B10/K$1);K$1)+100*REST(INTEGER($B10/K$1/K$1);K$1)+1000*REST(INTEGER($B10/K$1/K$1/K$1);K$1)+10000*REST(INTEGER($B10/K$1/K$1/K$1/K$1);K$1)
hierin geldt: kolom B = decimaal getal, Kolom C t/m K = de uitwerking in het tallig stelsel (c =1, d =2 enz.)
(zie ook het bijgeleverde bestand)

zoals je ziet, nog al lang voor een beperkte formule...

een decimaal omrekenen werkt als volgt:
je deelt een decimaal getal door het aantal cijfers in het nieuwe stelsel.
en herhaalt dit totdat er alleen een rest overblijft.
De restwaardes worden vervolgens omgekeerd achterelkaar geschreven.

(even aan de hand van een voorbeeldje, dat maakt het makkelijker)
stel het 10-tallig getal 5864 naar een 7-tallig getal:

5864 / 7 = 837 met een rest van 5
837 / 7 = 119 met een rest van 4
119 / 7 = 17 met een rest van 0
17 / 7 = 2 met een rest van 3
2 / 7 = 0 met een rest van 2

deze restwaardes worden omgekeerd achterelkaar geschreven.
dus 5864 in 10-tallig stelsel = 23045 in 7-tallig stelsel.

Is hier ook een mooie formule op te maken?
 

Bijlagen

  • Stelselmatig omrekenen.xlsm
    35,7 KB · Weergaven: 45
hier een beginseltje:
Code:
Function Test(decimaalgetal, stelsel)
    If decimaalgetal = 0 Then Exit Function
    Test = Test(Int(decimaalgetal / stelsel), stelsel) & decimaalgetal Mod stelsel
End Function
zie voorbeeld (grijze cellen)

ps het is eenvoudig aan te passen zodat hij ook Letters gebruikt(als het stelsel groter is dan 10)
 

Bijlagen

  • van decimaal naar .xlsm
    13,7 KB · Weergaven: 40
Laatst bewerkt:
als je interesse hebt in de uitgebreidere versie die ook bvb de letters A tm Z gebruikt voor stelsels met grondtal groter dan 10 laat het dan weten.
 
In plaats van jouw formule zou je deze matrixformule eens kunnen proberen:
Code:
=SOM(10^(RIJ($1:$10)-1)*REST(INTEGER($B2/(D$1^(RIJ($1:$10)-1)));D$1))
Deze formule gaat veel verder dan de bovengrens van 9999 in jouw formule.
Net als jouw formule geeft dit alleen maar goede resultaten voor getalstelsels die niet groter zijn dan 10.
 
En anders heb ik nog een compleet werkende UDF voor je gemaakt....
 

Bijlagen

  • DecimaalNaarX-Stelsel.xlsm
    15 KB · Weergaven: 35
en deze werkt ook met stelsels groter dan 10:
 

Bijlagen

  • van decimaal naar ook met stelsels met grontal groter dan 10.xlsm
    14,7 KB · Weergaven: 30
REDHEAD, :D als je die laatste regel "Dec2Div = CLng(Dec2Div)" weg laat werkt hij ook als je het stelsel op 2 zet.

het heeft geen zin om er een decimaal getal van te maken.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan