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

167

    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. Suomen kansa haluaa Antti Lindtmanista pääministerin

      Lindtman on miltei tuplasti suositumpi kuin etunimikaimansa Kaikkonen. Näin kertoo porvarimedian teettämä kysely. http
      Maailman menoa
      262
      4606
    2. Vain 21% kannattaa Lindtmania pääministeriksi

      se on selvästi vähemmän kuin puolueen kannatus, mites nyt noin?
      Maailman menoa
      132
      3003
    3. Miten löydän sinut

      Ja saan sanottua kaiken mitä haluan sinulle kertoa? Ja kuinka kuuntelisit minua sen hetken? Kuinka voin ilmaista sen mit
      Ikävä
      44
      2797
    4. Yöllinen autolla kaahari Heinolan seudulla

      Asukkaita häiriköivän nuoren herran autokaahaus keskustelu poistettu, onko jokin hyvävelijärjestelmä käytössä ?
      Heinola
      76
      1761
    5. Vaikea tilanne

      Hieman kolkuttaa omatuntoa, kun on osoittanut kiinnostusta väärää naista kohtaan. En ymmärrä miten toinen on voinut te
      Ikävä
      106
      1624
    6. Jouluksi miettimistä: kuka tai mikä valmistaa rahan?

      Nyt kun on ollut vääntöä rahasta ja eritoten sen vähyydestä, niin olisi syytä uida rahan alkulähteille, eli mistä se syn
      Maailman menoa
      28
      1493
    7. Milloin kaivatullasi

      .. on nimipäivä?
      Ikävä
      59
      1360
    8. Kehtaisitko näyttäytyä

      kaivattusi seurassa?
      Ikävä
      94
      1253
    9. Julkinen sektori on elänyt aivan liian leveästi yli varojensa!

      Viimeisen 15 vuoden aikana julkisen puolen palkat ovat nousseet n. 40%, kun taas yksitysellä sektorilla vain n. 20%. En
      Maailman menoa
      212
      1138
    10. Missä kunnassa kaivattusi asuu

      Kuinka tarkkaa uskalla sanoa?
      Ikävä
      47
      1129
    Aihe