Často kladené otázky - Calc
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Jak převést text na numerická data
Může se stát, že data vložená ze schránky nebo importovaná z CSV nebo zadaná do buňky, která již byla naformátována jako Text, sice vizuálně vypadají jako číslo nebo datum, ale jsou typu Text, takže nemohou být použita pro výpočty. Obsah buňky mající textový obsah, který je poté (později) formátován jako číslo, v tomto případě ve Vstupním řádku předchází úvodní apostrof: ' , který není součástí obsahu buňky a naznačuje, že obsah by bylo možné interpretovat jako číslo, kdyby to nebyl text. V důsledku toho mohou aritmetické výpočty zahrnující takové buňky způsobit chybu#VALUE!, nebo je buňka ignorována funkcemi, které pracují s číselnou sekvencí rozsahu, např. SUM(). Chcete-li převést takový číselný text na numerická data, postupujte následovně, za předpokladu, že text lze skutečně konvertovat, tj. že používá oddělovače (desetinných míst, dat, ...) vašeho místního nastavení. Všimněte si, že pouze změna formátů čísel nezmění obsah; hodnoty řetězce musí být znovu zadány, aby byly převedeny, což dělají následující metody.
Najít a nahradit text čísla
- označte rozsah buněk obsahující data, která mají být konvertována
- stiskněte Ctrl+M nebo klikněte pravým tlačítkem na označený rozsah pro zobrazení kontextové nabídky a vyberte Vymazat přímé formátování
- pokud vaše umístění nevyužívá oddělovač(e), které jsou potřebné ke konverzi textu na čísla, použijte dočasně číselný formát jiného umístění, které požadované oddělovače využívá, např. Angličtina (USA) pro znak . (oddělovač desetinných míst); později můžete po konverzi použít požadovaný konečný číselný formát vašeho umístění. Můžete také vyměnit oddělovač desetinných míst podle následujícího příkladu.
- stiskněte Ctrl+H nebo vyberte z nabídky Úpravy -> Najít a nahradit
- zadejte Najít: .+
- zadejte Nahradit: $0
- v části Ostatní možnosti zatrhněte
- Pouze v současném výběru
- Regulární výrazy
- klikněte na Nahradit vše
Tím se obsah buňky znovu zadá, v podstatě jako by byl zadán z klávesnice, a je detekován jako číslo/datum/čas.
Najít a nahradit jiným oddělovačem desetinných míst
Pokud číslo nebylo rozpoznáno, protože vaše umístění používá jiný oddělovač desetinných míst než pro data, např. čárku , místo tečky pro data . (a vstupní řádek proto nezobrazuje předponu apostrofu '), pak
- označte rozsah buněk obsahující data, která mají být konvertována
- stiskněte Ctrl+M nebo klikněte pravým tlačítkem na označený rozsah pro zobrazení kontextové nabídky a vyberte Vymazat přímé formátování
- stiskněte Ctrl+H nebo vyberte z nabídky Úpravy -> Najít a nahradit
- zadejte Najít: .
- zadejte Nahradit: ,
- v části Ostatní možnosti
- zatrhněte Pouze v současném výběru
- zrušte zatržení u pole Regulární výrazy
- klikněte na Nahradit vše
Poznámka: samozřejmě to takto nefunguje, pokud čísla obsahují mix oddělovačů skupin a desetinných míst a jejich nahrazením by vznikly identické oddělovače.
Najít a nahradit nesprávné pořadí datumu
Pokud jste vložili nebo importovali data v jiném pořadí Měsíc/Den/Rok, například 06/28/2021, než je vaše národní prostředí, které používá pořadí Den/Měsíc/rok, například 28/06 /2021 a/nebo některá data jako 06/01/2021 byla rozpoznána, ale poskytla nesprávné datum a jiná jako 06/28/2021 nikoli, pak
- nestiskněte Ctrl+M a neprovádějte výmaz formátů čísel/dat ve vybraných buňkách, ponechte všechny formáty data nedotčené, ale pokud existují buňky naformátované na Text, změňte tyto a pouze ty na Obecné
- označte oblast buněk obsahující data k převodu
- stiskněte Ctrl+H nebo z nabídky vyberte Upravit -> Najít a nahradit
- zadejte Najít: (\d+)/(\d+)/(\d+)
- zadejte Nahradit: $2/$1/$3
- pod Další možnosti aktivujte
- Pouze aktuální výběr
- Regulární výrazy
- klikněte na Nahradit vše
Vysvětlení regulárního výrazu Najít:
- (\d+) skupina číslic, měsíc
- / oddělovač data
- (\d+) skupina číslic, den v měsíci
- / oddělovač data
- (\d+) skupina číslic, rok
Vysvětlení výrazu Nahradit:
- $2 druhá skupina, skupina číslic, den v měsíci
- / oddělovač data
- $1 první skupina, skupina číslic, měsíc
- / oddělovač data
- $3 třetí skupina, skupina číslic, rok
Zdroj textu a cílové národní prostředí mohou mít jiné požadavky týkající se pořadí dne, měsíce, roku a oddělovače data; pak se přizpůsobí.
To replace to the international YYYY-MM-DD ISO 8601 date format that is understood in every locale use (assuming the original Month/Day/Year order from above)
- Replace: $3-$1-$2
or if the year was only two digits then prefix the century because otherwise the result would be ambiguous and not result in an ISO date, like
- Replace: 20$3-$1-$2
Find & Replace wrong date order with month names
If you pasted or imported dates that contain month names, for example April 1, 2021 and your locale uses a different day/month order, for example 1 April 2021, or even different names in a different language, then
- mark the cell range containing the data to convert
- press Ctrl+M or right click on the marked range to get the context menu and select Clear Direct Formatting
- if your locale does not use the month names that are required for the text to be converted to date then temporarily apply a date format of a locale that uses the desired names; you can then later after the conversion apply the desired final date format of your (default) locale.
- press Ctrl+H or choose Edit -> Find & Replace from the menu
- enter Find: ([\p{Letter}]+)\s+(\d+).*\s+(\d+)
- enter Replace: $2 $1 $3
- under Other options activate
- Current selection only
- Regular expressions
- hit Replace All
Explanation of the Find regular expression:
- ([\p{Letter}]+) a group of Unicode letter characters, month
- \s+ at least one whitespace character
- (\d+) a group of digits, day of month
- .* any character, 0 or more, matches the comma in the example
- \s+ at least one whitespace character
- (\d+) a group of digits, year
Explanation of the Replace expression:
- $2 the second group, group of digits, day of month
- one space
- $1 the first group, group of letters, month
- one space
- $3 the third group, group of digits, year
The target locale may have other requirements regarding order of day,month,year; then adapt.
Rozšíření CT2N - Convert Text To Number
Pokud tuto funkci potřebujete častěji nebo chcete data konvertovat pomocí oddělovačů odlišných od vašeho umístění, nainstalujte si rozšíření CT2N - Convert Text To Number (and dates).
Import CSV
Pokud jsou vaše data výsledkem importu souboru CSV, možná jste si nevšimli, že v dialogovém oknu importu můžete vybrat umístění importu, aby odpovídalo umístění dat. To pomáhá rozpoznávat oddělovače desetinných míst a skupin, symboly měny a názvy dnů a měsíců v datech, čímž získáte správná numerická data. Některá data a měnové formáty jsou také rozpoznány, pouze pokud je zatržena možnost Detekce speciálních čísel (což pak opět může konvertovat text na čísla v případech, ve kterých to není žádoucí).
Převod pomocí Text do sloupců
Další možností je použít
▸ :