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

170

    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. Trump muka öljyn takia Venezuelaan? Pelkää mustamaalausta

      Kertokaapa mistä tuollainen uutisankka on saanut alkunsta? Näyttäkääpä ne alkuperäiset lähteet, minä en löytänyt mitään
      Maailman menoa
      104
      5253
    2. Kun Arman Alizad puolusti hiihtäjä Vilma Nissilää sanomalla

      "älä välitä sekopäistä Vilma", ja kun siitä kerrottiin täällä, niin sekopäinen mukasuvaitsevainen teki siitä valituksen
      Maailman menoa
      55
      3359
    3. Venezuela on hyvä esimerkki vasemmistolaisten pahuudesta

      Jokainen tietää, että Venezuelassa on pitkään ollut Chavezin ja Maduron vasemmistohallinto. Maan talous on romuttunut,
      Maailman menoa
      74
      2720
    4. Ei tule uni

      Kuten epäilin. Onneksi viime yön sain ihan hyvin nukutuksi. Tiesin kyllä, ettei tästä mitään tänään tule.
      Ikävä
      62
      1378
    5. Miksi juuri Venezuela?

      Kaikista maailman valtioista Trump otti silmätikukseen Venezuelan. Mutta minkä ihmeen takia? Kyseessä on kuitenkin vähäp
      Maailman menoa
      304
      1288
    6. Miksei Trump ole kiinnostunut Suomen valloittamisesta?

      Täällähän on enemmän turvetta kuin Norjalla öljyä. Eikö Ttump ole turvenuija?
      Maailman menoa
      26
      1233
    7. Jos mies olet oikeasti...?

      Kiinnostunut... Pyydä mut kunnolla treffeille ja laita itsesi likoon. En voi antaa sydäntä jos sinä olet epävarma ja eh
      Ikävä
      112
      1106
    8. Tiedän, että olet luonnevikainen

      Haluaisin vain todeta olleeni väärässä tässä asiassa.
      Ikävä
      46
      1050
    9. Martinalta vahva viesti

      "Suuret unelmat venyttävät sinua, pelottavat vähän ja vievät mukavuusalueen ulkopuolelle. Juuri siellä kasvu tapahtuu. J
      Kotimaiset julkkisjuorut
      232
      1043
    10. Toivon sulle silti hyvää

      Väärinkäsityksiä tapahtuu, mutta nyt on uusi vuosi ja uudet kujeet.
      Ikävä
      41
      1036
    Aihe