Kirjoittaja Aihe: LibreOffice miten teksti numeroksi sarakkeissa  (Luettu 450 kertaa)

Illu

  • Käyttäjä
  • Viestejä: 1157
    • Profiili
LibreOffice miten teksti numeroksi sarakkeissa
« : 20.12.25 - klo:12.59 »
Avoin data tarjoaa mahdollisuuden katsoa kuntien ostolaskuja. https://www.avoindata.fi/data/fi/group/alueet-ja-kaupungit

Sieltä saa valitsemansa kunnan ostolaskujen taulukon .csv-muodossa. Kiinnostavin on sarake ostoihin käytetyt eurot mutta se on tekstimuodossa. Hakemistenkaan jälkeen en ole löytänyt ratkaisua, jolla sarakkeen tekstin saisin numeroiksi, jotka voi järjestää sarakkeessa nousevasti/laskevasti. Ohjeita on englanninkielisinä eri vuosilta, mutta suomenkielisen asennuksen vastaavia funktioita en ole löytänyt tai saanut toimimaan.

Miten siis taulukkoa pitää käsitellä?

Ubuntu 24.04, LibreOfice 24.2.7.2

jarmala

  • Käyttäjä
  • Viestejä: 852
    • Profiili
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #1 : 20.12.25 - klo:13.35 »
Sieltä saa valitsemansa kunnan ostolaskujen taulukon .csv-muodossa. Kiinnostavin on sarake ostoihin käytetyt eurot mutta se on tekstimuodossa.

Eikö siinä csv:n tuontivaiheessa voi määritellä kyseistä saraketta numeroiksi?

Jollei, niin kerro taulukossa kyseisen sarakkeen solut 1,0:lla viereiseen sarakkeeseen (tai 1.0:lla, jos käytät desimaalipistettä).
Ubuntu 22.04 LTS, Gnome Flashback Metacity, Xeon E3-1245 V2, 16 GB
Ubuntu 22.04 LTS, KDE Plasma, Celeron N5105, 8 GB

Illu

  • Käyttäjä
  • Viestejä: 1157
    • Profiili
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #2 : 20.12.25 - klo:21.30 »
Ei voi mitenkään vaikuttaa latausmuotoa. Linkistä "Lataa" tulee vain "ostolaskut2024.csv". Siinä taulukossa eurot ovat tekstimuodossa, se piilossa oleva heittomerkki ennen numeroa. Miten teksti kerrotaan yhdellä ja saadaan numero? En siis osannut esimerkkisi mukaan.

qwertyy

  • Käyttäjä
  • Viestejä: 6164
    • Profiili
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #3 : 21.12.25 - klo:00.22 »
Varmaan käsitin jotain väärin, koska eihän tuossa tarvi tehdä muuta kuin valita kaikki sarakkeet ja muuttaa niiden formaatti? Näin se pitäisi anakin Officella mennä, enkä usko tuossa olevan mitään eroa toiminnassa.

JJK

  • Käyttäjä
  • Viestejä: 363
  • Ubuntu Mate 24.04
    • Profiili
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #4 : 21.12.25 - klo:08.33 »
Mulla noi ihan oikein. Voi laskea vaikka kaikki yhteen.

Eihän sulla tuonnissa valittuna täppä muunna tekstiksi?

Illu

  • Käyttäjä
  • Viestejä: 1157
    • Profiili
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #5 : 21.12.25 - klo:11.27 »
Oletettavasti minä olen se joka käsittää jotain väärin. Kiinnostuksen kohteena on Kustavin osatolaskut. Varsinais-Suomen pieni saaristokunta, jossa on pienin verotus ja suurin ostolaskujen osuus. Ylläoleva linkki ei anna vaihtoehtoja, minkälainen taulukko on ladattavissa.

LibreOffice Calc auki ja Tiedosto-Avaa tuottaa seuraavan näköisen tuontivalinnan (tulipa iso kuva).


Tuolla en saa aikaan saraketta, jota voisi järkevästi lajitella, toki se tekstikin jotenkin sorteeraantuu, mutta ei toivotulla tavalla.

SuperOscar

  • Käyttäjä
  • Viestejä: 4328
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #6 : 21.12.25 - klo:11.34 »
Ongelmana taitaa olla desimaalipiste, kun suomalainen lokaali olettaa desimaalipilkun.

Ratkaisuja on ainakin pari: joko aseta lokaalin sellaiseksi, jossa käytetään desimaalipistettä, tai sitten putkitat CSV:n ensin sopivan ohjelman kuten tr:n tai AWKin läpi, jolla voit muuttaa pisteen pilkuksi.
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: NixOS 25.05; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

Illu

  • Käyttäjä
  • Viestejä: 1157
    • Profiili
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #7 : 21.12.25 - klo:14.23 »
Kun osaaminen loppuu, niin pitää tehdä ruma ratkaisu. Poistin ladatusta taulukosta muut sarakkeet paitsi eurot ja laskuttajan. Kopioin sen ja tallensin Tekstimuokkaimeen. Sieltä korvasin pisteet pilkulla ja tallensin tekstimuotoisena. Avasin sen Calcilla ja siten sain lajiteltua tiedot.

Kiitos kullekin neuvoja tarjonneelle. En merkitse ratkaistuksi koska oikeakin tapa on.


SuperOscar

  • Käyttäjä
  • Viestejä: 4328
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #8 : 21.12.25 - klo:16.45 »
CSV-tiedoston sisältöä tarkemmin tuntematta on paha sanoa, mutta jokin tämmöinen voisi riittää:

Koodia: [Valitse]
tr . , < tiedosto.csv > korjattu_tiedosto.csv
Näin jollei pistettä käytetä tiedostossa missään muualla kuin lukujen sarakkeessa. Jos käytetään, pitää varmaan käyttää AWKia, esimerkiksi:

Koodia: [Valitse]
awk '{ sub("\\.", ",", $8); print }' tiedosto.csv > korjattu_tiedosto.csv
(olettaen, että ainoa korjattava sarake on kahdeksas vasemmalta lukien).
pöytäkone 1, kannettavat 1–3, NUC: Debian GNU/Linux 13;  pöytäkone 2: NixOS 25.05; RPi 1: FreeBSD 14.2-RELEASE; RPi 2: LibreELEC 12

nm

  • Käyttäjä
  • Viestejä: 16921
    • Profiili
Vs: LibreOffice miten teksti numeroksi sarakkeissa
« Vastaus #9 : 21.12.25 - klo:17.21 »
Kun osaaminen loppuu, niin pitää tehdä ruma ratkaisu. Poistin ladatusta taulukosta muut sarakkeet paitsi eurot ja laskuttajan. Kopioin sen ja tallensin Tekstimuokkaimeen. Sieltä korvasin pisteet pilkulla ja tallensin tekstimuotoisena. Avasin sen Calcilla ja siten sain lajiteltua tiedot.

Kiitos kullekin neuvoja tarjonneelle. En merkitse ratkaistuksi koska oikeakin tapa on.

Helpointa olisi asettaa tiedosto avaamisen yhteydessä lokaaliksi joku angloamerikkalainen, jossa desimaalierottimena on piste. LibreOfficen CSV-avausikkunassa on tälle valinta. Merkistö taitaa tuossa tiedostossa saattaisi olla ISO-8859-15, joka on muuten melkein sama kuin vanhempi ISO-8859-1, mutta euromerkki sisältyy versioon 15. Tässä kyseisessä aineistossa ei tosin ollut euromerkkejä. Päivämääräkentässä ei näemmä ollut mitään erottimia, ja päivämäärä on tyyppiä DDMMYYYY, joten se pitää vielä erikseen muotoilla jos tarvitaan oikea päivämäärä numeron sijaan.

CSV on melko vapaamuotoinen tiedostomuoto, jonka tulkitseminen vaatii usein pientä säätöä. Huonommassa tapauksessa rivit voivat olla myös monella tapaa rikki, jos välimerkkejä sisältäviä arvoja ei ole suojattu esimerkiksi lainausmerkeillä, tai jos lainausmerkkejä esiintyy sisäkkäin. Nykyisin CSV-tiedostojen tuonti ja tarvittavat muunnokset olisi oikeastaan paras toteuttaa LLM:llä. Raskaammat kielimallit suoriutuvat tehtävästä paremmin kuin ihminen keskimäärin, mutta kevyt lokaali mallikin auttaisi jo pitkälle.