Solussa olevat tekstimuotoiset sekaluvut (kokonaisosa väli osoittaja / nimittäjä) desimaaliluvuksi?

Anonyymi

On taulukkoja joissa on mittoja sekalukuina, ne ovat muotoja : "2 1/4" tai "3/8" tai sitten vaan "16". Näistä pitäisi saada desimaalilukuja. Olen googlettanut ja yrittänyt väääntää formulaa ja VBA:ta monta tuntia. Löytyisikö valmista ratkaisua tähän?

3

158

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Vaihda solun formaatti yleiseksi. Kokonaan toinen juttu on jos luvut on kirjoitettu hipsu merkki edellä tekstiksi. Silloin ei auta kuin kahlata solu solulta poistamassa hipsut.

      • Anonyymi

        Avaukseni oli puutteellinen koska en oivaltanut että alla olevalla seikalla olsi merkitystä, mutta on. Datajoukko joka on copy-pastettu netistä, tekstinä, pitää sisällään seuraavan muotoista dataa:

        2 1/4"
        2 1/4 "
        3/8"
        3/8 "
        16"
        16 "

        Nuo saan siistittyä kaavalla::
        =TRIM(SUBSTITUTE(B20,CHAR(34),""))
        jonka tulokset ovat ne tekstinä olevat sekaluvut, joka pitäsi saada numeerisiksi.

        Kun kirjoitan tai copy-pastean soluun esim "1/8" ilman lainausmerkkejä niin solussa näkyy Enterin jälkeen "08-Jan" myöskin ilman lainausmerkkejä, sitten kun muutan tämän solun formaatiksi General niin solussa lukee ja jämäkästi on lukuarvo 44204 (joka on Excelin DateSerial).

        Hipsut muuten poistuu kaavalla:
        =IF(ISERR(SUBSTITUTE(A1,"\'","") 0), SUBSTITUTE(A1,"\'",""),SUBSTITUTE(A1,"\'","") 0)


      • Anonyymi
        Anonyymi kirjoitti:

        Avaukseni oli puutteellinen koska en oivaltanut että alla olevalla seikalla olsi merkitystä, mutta on. Datajoukko joka on copy-pastettu netistä, tekstinä, pitää sisällään seuraavan muotoista dataa:

        2 1/4"
        2 1/4 "
        3/8"
        3/8 "
        16"
        16 "

        Nuo saan siistittyä kaavalla::
        =TRIM(SUBSTITUTE(B20,CHAR(34),""))
        jonka tulokset ovat ne tekstinä olevat sekaluvut, joka pitäsi saada numeerisiksi.

        Kun kirjoitan tai copy-pastean soluun esim "1/8" ilman lainausmerkkejä niin solussa näkyy Enterin jälkeen "08-Jan" myöskin ilman lainausmerkkejä, sitten kun muutan tämän solun formaatiksi General niin solussa lukee ja jämäkästi on lukuarvo 44204 (joka on Excelin DateSerial).

        Hipsut muuten poistuu kaavalla:
        =IF(ISERR(SUBSTITUTE(A1,"\'","") 0), SUBSTITUTE(A1,"\'",""),SUBSTITUTE(A1,"\'","") 0)

        Puuh. Kun ensin siivoan A1:ssä olevan lähtödatan kaavalla B1:ssä:

        =TRIM(SUBSTITUTE(A1,CHAR(34),""))

        niin sitten User Defined Function:

        Option Explicit
        'Module code

        Function Eval(StringFormula As Range)
        Dim theString As String
        Application.Volatile
        theString = StringFormula.Text
        Eval = Evaluate(theString)
        StringFormula.NumberFormat = "General"
        End Function

        Mahdollistaa C1:ssä kaavan:

        =Eval(B1)

        Eval muodostaa (virheittä) numeerisen desimaaliluvun joko formulan tuottamasta tai copy-pastetusta tai käsin kirjoitetusta teksimuotoisesta sekaluvusta ja jos B1:ssä onkin valmiiksi desimaaliluku niin tuloksena on ko desimaaliluku. Jos edeltävien edessä on hipsu niin se poistuu.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Niin surullinen

      onnettomuus taas. Voimia ihan kaikille läheisille,kavereille ja kouluun 🙏
      Lapua
      229
      5111
    2. MIksi suurin osa persuista on alkoholisteja?

      Tätä jäin pohdiskelemaan....
      Maailman menoa
      40
      3405
    3. 35
      2918
    4. Kehutaan vaihteeksi Perussuomalaisia

      Perussuomalaiset ovat olleet melkoisen lokakampanjoinnin kohteena, vaikka ovat saaneet paljon hyvää aikaiseksi. Nyt on
      Maailman menoa
      141
      2793
    5. Paloautoko se oli kolarissa Juntusrannan risteyksessä?

      Oli kuva paloautosta nettijutussa.
      Suomussalmi
      25
      2448
    6. SDP ylivoimainen ykkönen

      En ole koskaan viitsinyt käydä äänestämässä, mutta nyt SDP:n etumatka on niin kutkuttava, että pakkohan se on vaivautua.
      Maailman menoa
      68
      2276
    7. Tiesitkö? Johannes Brotheruksen ex-isäpuoli on kuin onkin Mikko Kuustonen - Tästä on kyse!

      Tiesitkö? Ja hehän on kuin kaksi marjaa... Johannes Brotherus on KUUMAA-yhtyeen jäsen ja tänä syksynä mukana Vain elämää
      Suomalaiset julkkikset
      19
      2188
    8. Mitä tapahtuu?

      Mitä säpäkän risteyksessä on tapahtunut kun poliiseja, ambulansseja ja kopteri paikalla?
      Outokumpu
      31
      1820
    9. Roiskeläpät takaisin niin alkaa lasit kestämään

      "Tuulilaseja hajottava talvi-ilmiö on ehkä ratkennut" Tämän päivän autoissa kun on esimerkiksi vanhempaa autokalustoa s
      Yleistä autoilusta
      41
      1772
    10. Polttomoottoriauto on köyhän merkki

      Kun ei ole varaa ostaa sähköautoa, niin joutuu köyhän autoa käyttämään.
      Maailman menoa
      83
      1438
    Aihe