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

124

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

    Takaisin ylös

    Luetuimmat keskustelut

    1. Mitä tapahtunut

      Poliiseja monta autoa+panssariauto Porista kpäähän päin tänään klo n.20 kuka hurjistunut ?
      Kankaanpää
      46
      5851
    2. Lakea konkurssiin. Asukkaat menettävät asuntonsa

      Kuntarahoitus on tänään jättänyt konkurssihakemuksen lakean kaikista kiinteistö osakeyhtiöistä. Kassa on tyhjä, kaikki
      Seinäjoki
      58
      3246
    3. Gallup: kaivattusi syntymävuosi

      Minä vuonna kaipaamasi henkilö on syntynyt?
      Ikävä
      184
      2701
    4. Nikkalassa vauhdilla nokka kohti taivasta

      Mitähän Darwin sanoisi näistä 4 suomalaisesta, jotka kävivät Haparandan puolella näyttämässä, kuinka Suomi auto kulkee t
      Tornio ja Haaparanta
      12
      2524
    5. mahdollista, että olet ollut iltavuorossa

      Ja kotiin päästyäsi tulit palstalle etsimään merkkiä minusta, jos kaipaat yhtään minua niin kuin minä sinua Ei mennyt k
      Ikävä
      13
      2219
    6. Missäpäin,,,

      Lapuaa tapettu ihminen viime yönä ? Hurjaa touhua nykymeno täällä...
      Lapua
      29
      2161
    7. törniöläiset kaaharit haaparannassa

      isäpapan autolla kaahatta 270 km/h metsään https://www.lapinkansa.fi/nsd-kaksi-suomalaista-kuoli-kolarissa-haaparannall/
      Tornio ja Haaparanta
      15
      1896
    8. Upea peppuisella naisella

      Upea peppuisella naisella on upea peppu.
      Ikävä
      16
      1596
    9. Mitähän ne katseet merkitsee

      Kun et saa sanaa suustasi.
      Ikävä
      148
      1379
    10. Sitä saa mitä tilaa Perussuomalaiset!

      https://yle.fi/a/74-20160212 SDP:n kannatus se vain nousee ja Keskusta on kolmantena. Kokoomus saanut pienen osan persu
      Maailman menoa
      270
      1247
    Aihe