Faq/Calc/Numerieke tekst converteren naar numerieke gegevens
TDF LibreOffice Document Liberation Project Blogs gemeenschap Weblate Nextcloud Redmine Ask LibreOffice Doneren
Converteren van numerieke tekst naar numerieke gegevens
Bij het kopiëren via het klembord, het importeren uit een CSV-bestand of gewone invoer in een cel dat al het type Tekst heeft, kan het gebeuren dat het veld niet bruikbaar is voor berekeningen In de cel kan een ' aanhalingsteken staan dat geen onderdeel is van de inhoud en aangeeft dat de inhoud numeriek is als het niet als tekst was opgemaakt. Bij berekeningen kun je bij zulke velden een #VALUE! fout krijgen of wordt de cel genegeerd in functies, als die functie een getal verwacht. Je kunt deze tekst converteren naar een getal (die inhoud moet dan wel de komma en de punt gebruiken die voor je taal gelden). Er wordt alleen de opmaak aangepast, niet de inhoud.
Vinden en vervangen numerieke tekst
- selecteer de cellen die geconverteerd moeten worden
- Ctrl + M of rechtsklik op de selectie en kies Directe opmaak wissen
- als je taal niet de scheidingstekens gebruikt die nodig zijn voor de getallen, kies dan even een taal die wel die scheidingstekens heeft zoals in de tekst voorkomen (de punt en de komma)
- Ctrl+H of ▸
vul bij Zoeken in: .+'
- vul bij Vervangen in: $0
- vink bij Andere opties aan:
- Alleen huidige selectie
- Reguliere expressie
- Alles vervangen
Hierdoor lijkt het alsof de inhoud van de geselecteerde cellen opnieuw wordt ingevoerd vanaf het toetsenbord, de numerieke velden/datum/tijd wordt herkend.
Zoeken en vervangen met ander scheidingsteken voor decimalen
Als een getal niet wordt herkent door een ander scheidingsteken (tekst, instellingen) dan bevat het geheimzinnige extra verborgen veldje niet het aanhalingsteken.
Dit gaat als boven, maar op het dialoogvenster zijn de acties:
- Zoek: . punt
- Vervangen: , komma
- Andere opties
- vink aan Alleen huidige selectie
- vink uit Reguliere expressie
- Alles vervangen
Als de invoer niet eenduidig is (getallen met verschillende notities voor de scheidstekens), dan wordt het handwerk.
Zoeken en vervangen, aanpassen datum
Als je nu datums hebt in een andere volgorde dan je instellingen, bij voorbeeld 06/28/2021 in plaats van 28/06/2021 (bij datums als 06/01/2021 valt dat niet op) dan
- Gebruik nu NIET Ctrl+M,je wilt nu niet de directe opmaak wissen als ze als een datum zijn opgemaakt. Als de invoer als tekst is opgemaakt dan kun je alleen die omzetten naar Standaard (categorie:Alle)
- selecteer de te converteren cellen
- Ctrl+H of
- Zoeken: (\d+)/(\d+)/(\d+)
- Vervangen: $2/$1/$3
- bij Andere opties aanvinken
- Alleen huidige selectie
- Reguliere expressie
- Alles vervangen
▸
Uitleg bij Zoeken:
- (\d+) aantal cijfers, maand
- / scheidingsteken
- (\d+) aantal cijfers, dag
- / scheidingsteken
- (\d+) aantal cijfers, jaar
Uitleg bij Vervangen:
- $2 de eerste groep, de dag
- / scheidingteken
- $1 de eerste groep, maand
- / scheidingsteken
- $3 de derde groep, jaar
Pas je bewerkingen aan als de invoer of de uitvoer in een andere volgorde is (of je een ander scheidingsteken hebt in de invoer of wilt in de uitvoer), het gaat hier om het idee, dat je de invoer kunt splitsen en in een andere volgorde kunt zetten.
Om het internationale YYYY-MM-DD ISO 8601 datumformaat dat in alle talen kan worden gebruikt (aanname met de originele Maand/Dag/Jaar volgorde)
- Vervang: $3-$1-$2
of als het jaar maar 2 cijfers is, voeg dan de eeuw vooraan toe, anders is het resultaat dubbelzinnig en geeft het geen ISO datum, als
- Vervang: 20$3-$1-$2
Zoeken en Vervangen, met maandnamen
En als de invoer nu eens in formaat is April 1, 2021 en je wilt hebben 1 April 2021 of de maand moet nog vertaald worden?
- selecteer de te converteren cellen
- Ctrl M of rechtsklik op de selectie en kies Directe opmaak wissen
- als je taal niet de gebruikte maandnamen heeft, kies dan even een taal die dat wel heeft
- Ctrl H of
- Zoeken: ([\p{Letter}]+)\s+(\d+).*\s+(\d+)
- Vervangen: $2 $1 $3
- bij Andere opties vink aan
- Alleen huidige selectie
- Reguliere expressie
- Alles vervangen
▸
Uitleg bij Zoeken:
- ([\p{Letter}]+) een groep Unicode letters, maand
- \s+ minstens 1 spatie
- (\d+) een groep cijfers, dag
- .* willekeurig teken, 0 of meer, staat hier voor de komma
- \s+ minstens 1 spatie
- (\d+) een groep cijfers, jaar
Uitleg bij Vervangen:
- $2 de eerste groep, de dag
- " " 1 spatie
- $1 de eerste groep, maand
- " " 1 spatie
- $3 de derde groep, jaar
Pas je bewerkingen aan als de volgorde anders moet.
CT2N - Extensie voor het omzetten van tekst naar getal
Als je denkt dat je zulke bewerkingen vaker moet doen, probeer dan de extensie CT2N eens uit.
CSV Importeren
Als je uit een CSV-bestand importeert dan is er een optie om de locale even te zetten om die past bij de gebruikte opmaak van de getallen en datums (en valuta) in het invoerbestand. Hierdoor wordt een groot deel van de omzetting om te komen tot numerieke gegevens al gedaan. De optie Detecteer speciale getallen moet dan wel gekozen worden bij het importeren. Elke omzetting kan tot ongewilde omzettingen leiden, maar hier is de kans wat groter dan bij handmatige omzettingen omdat daar telkens de te converteren cellen geselecteerd worden.
Converteren met 'Tekst naar kolommen'
Je kunt ook
▸ proberen: