Tekstimuotoisen tiedon jako sarakkeisiin

Miten saisin yhdessä solussa olevan tiedon jaettua useampaan sarakkeeseen. Eli A1:ssä on 48 – 240 / 2400. Tarvisi saada 48, 240 ja 2400 omiin sarakkeisiin jollain kaavalla. - ja / merkkejä ei tarvita.

Kiitti vastauksesta
5453
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

tallenna txt muotoon ja sitten avaa exceliin. Ohjelma kyselee miten sarakejako tehdään...
vaihtoehtodot (muistaakseni) sarkain, pilkku, väli... ja omamerkki. Valitset välin, joten ne menee omiin sarakkeisiin...

Äänestä
  • Kiitti, kokeilen tätä. Eipä tullutkaan heti mieleen vaikkakin toi toiminto jotenkuten tuttu onkin :)

    Äänestä


Tämä on sekä helppo että opettavainen ongelma.
Perusideana on käyttää POIMI.TEKSTI(). Sille tarvitaan aloituskohta ja poimittavan merkkijonon pituus.
Aloituskohta voidaan määrätä funktiolla ETSI(). Esimerkiksi ETSI(2;A1) palauttaa 6. Myös funktio KÄY.LÄPI() on käyttökelpoinen.

Ongelman muodostavat nuo erikoismerkit – (150)tai - (45) ja /.
Vinoviivan paikka 10 löytyy ETSI(”/”;A1). (Lainausmerkit siitä Vaihto-2 näppäimestä)
Vaan se viheliäinen viiva jonka Excel näkee miinusmerkkinä teetpä mitä vain. Ei auta heittomerkkikään. Tosiasiassa Excel ei standardimerkistöllä osaa koko ajatusviivaa joten et voi näppäillä sitä suoraan.
Kopioi se olemassa oleva viiva ja liitä kaavaan ETSI(”–”;A1).

Jollei tämä palauta järjellistä paikkaa niin tarkasta merkin koodi.
Kaava =POIMI.TEKSTI(A1;4;1) antaa jonkinnäköisen viivan.
Kaava KOODI(POIMI.TEKSTI(A2;4;1)) kertoo totuuden, merkki on (minulla) 150. Eli Windows näppäimistöllä se kirjoitetaan Alt 0150.

Nyt tiedät miten viitata niihin erottajamerkkeihin.

Tilan puutteen vuoksi transponoituna kaavat näyttävät tältä:

DATA   48 – 240 / 2400   
paikka --   4   =ETSI("–";B$1)
paikka /   10   =ETSI("/";B$1)
ryhma1   48   =POIMI.TEKSTI(B$1;1;B$2-2)
ryhma2   240    =POIMI.TEKSTI(B$1;B$2 2;B$3-B$2-2)
ryhma3   2400   =POIMI.TEKSTI(B$1;B$3 2;PITUUS(B1))

Kun tuon kääntää oikein päin niin on helpompaa käsittää. Ja käytettävissä mielekkäällä tavalla.

Lopulliset kaavat voisivat tietysti sisältää nuo ETSI funktiot soluviittausten sijaan mutta on turhaa sotkea enempää. Ne paikka -sarakkeet kun voidaan piilottaa. Ja ovat apuna vianetsinnässä. Nimien käyttö ei ole koskaan väärin, niillä voi selkeyttää kaavoja.

Jos kyse on olemassa olevista tiedoista niin kehotan normalisoimaan ne erotusmerkit ja ennen kaikkea niiden edessä ja takana olevien välilyöntien määrät. Etsi-korvaa luovalla tavalla.

Jos tietoa on tuotu skannaamalla, HTML tai XML muodossa, käsitelty Wordilla tai muuten monimielisesti niin silmällä nähtävä välilyönti ei aina olekaan sama minkä kone näkee.

Lisää viivoista, väleistä ja paljon muuta Jukka Korpelalta.
http://www.cs.tut.fi/~jkorpela/suomi/viivat.html

Äänestä
  • Kiitti sinullekkin vastauksesta, kokeilen tuota yksinkertaisempaa ensin, Excel ei niin hyvin hanskassa

    Äänestä

Kommentoi aloitusta


Tumppu07 kirjoitti:

Miten saisin yhdessä solussa olevan tiedon jaettua useampaan sarakkeeseen. Eli A1:ssä on 48 – 240 / 2400. Tarvisi saada 48, 240 ja 2400 omiin sarakkeisiin jollain kaavalla. - ja / merkkejä ei tarvita.

Kiitti vastauksesta

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu