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

102

    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. Olet taitava

      monessa asiassa. Myös siinä, miten veit sydämeni. Äkkiarvaamatta, pikkuhiljaa. Yhtäkkiä huomasin että minusta puuttuu jo
      Ikävä
      74
      7514
    2. Sinällään hauska miten jostakin

      jaksetaan juoruta vaikka mitä. Jakorasia yms. Raukkamaista toimintaa. Annetaan jokaisen elää rauhassa eikä levitellä per
      Ikävä
      58
      3183
    3. Mikä ihme sai sut käyttäytymään

      Niin helvetin törkeästi mua kohtaan, jos kerta olet ihastunut?
      Ikävä
      37
      2446
    4. Miten voit manipuloida katsojalukuja?

      Palstatrolli ja väsynyttä sontaa palstalle suoltava Varmakkakkiainen on viime aikoina vedonnot siihen, että hänen ketjuj
      Ateismi
      7
      2080
    5. Osuuspankki Kuhmo!

      Ei pysty pitämään yhtä Otto pankkiautomaattia toiminnassa Ksupermarketin kanssa,20 vuotta sitten Kuhmossa oli neljä auto
      Kuhmo
      33
      2012
    6. Voi helvetti

      Mihin olet mut ajanut.
      Ikävä
      20
      1938
    7. Tiedät etten tiedä

      Mitä pitäisi tehdä.
      Ikävä
      13
      1887
    8. Rakkaalleni!

      Halusin tulla kertomaan, että sinua ajattelen ja ikävöin vaikka olen sukuloimassa. Meinasin herkistyä, kun tykkään sinus
      Tunteet
      15
      1663
    9. Työttömyys kasvaa

      Onneksi persujen kannatus ei kasva.
      Perussuomalaiset
      53
      1595
    10. hyvää yötä.

      toivottavasti sulla oli kiva jouluaatto. 🤍
      Ikävä
      18
      1579
    Aihe