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?
Solussa olevat tekstimuotoiset sekaluvut (kokonaisosa väli osoittaja / nimittäjä) desimaaliluvuksi?
3
109
Vastaukset
- 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
Pienimäki ei anna haastatteluja
medialle Ähtärin kunnan velka sotkuista, kertovat luotettavat lähteet.173938- 373731
- 223150
- 881951
En tiedä mitä ajatella
Petaatko perjantaille jotain. Ei meidän kannata minun sydän on viety. Se joka sen vei ei ole mieheni, etkä se ole sinä.361782voitaisiinko unohtaa se sotku?
Olisiko mahdollista aloittaa puhtaalta pöydältä vielä? Ikävä sua ****161669Hyviä vinkkejä täällä
Eli kaivattua vain kädestä kiinni ja jos vastustelee niin sanoo, että hei beibi beibi nyt mennään vaan. Näin he elivät e171647Naisten ulkonäkö, jos miehiä ei olisi?
Mä meinasin ensiksi, että en aloittaisi tätä keskustelua, ainan nyt, mutta huomasin tossa toisessa ketjussa, että tämä s2451609Myös lähellä keskustaa oleva Marttaliitto jättää lihan pois tilaisuuksistaan ja suosituksistaan.
Marttaliitossa siirrytään terveellisempään ruokavalioon ja ihmiselle tarpeeton liha jätetään pois, ympäristö ja luonto k1921159Jee! Palsta toimii jälleen!
Viestiarkisto näkyy ja kaikki pelittää. Tätä on odotettu, vaikka ei tässä mitään odotettavaa ole ollut.201099