[SOLVED]zamiana na liczbę daty wczytanej jako tekst

Użytkowanie arkusza kalkulacyjnego
kosmal
Posty: 52
Rejestracja: pt sie 28, 2009 9:27 am

[SOLVED]zamiana na liczbę daty wczytanej jako tekst

Post autor: kosmal »

Zaimportowałem plik dbf do arkusza. Wszystkie pola są tekstowe.
Mam dwie kolumny z datami w formatach YYYY.MM.DD i YYYY.MM. Funkcja data.wartość przyjmuje tylko argument w formacie "YYYY-MM-DD", gdy wpiszę w innym formacie lub podam adres mojej komórki dostaję błąd 502. Różnica dwóch komórek daje: #ARG!Jakiej funkcji użyć aby przekształcić te dane do postaci liczbowej albo jak namówić libreoffice aby przyjął datę w innym formacie niż YYYY-MM-DD?
Pozdrawiam
Andrzej
Ostatnio zmieniony pn lis 02, 2015 8:26 am przez kosmal, łącznie zmieniany 1 raz.
LibreOffice 6.3.1.2 Debian buster, Windows 10
Jan_J
Posty: 4579
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: zamiana na liczbę daty wczytanej jako tekst

Post autor: Jan_J »

Czy użycie automatycznej zamiany fraz w obszarze kolumny jest wykluczone? jeśli był to jednokrotny import, nie ma prostszej metody.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
kosmal
Posty: 52
Rejestracja: pt sie 28, 2009 9:27 am

Re: zamiana na liczbę daty wczytanej jako tekst

Post autor: kosmal »

Udało mi się to zmienić za pomocą funcji tekstowej łącząc poszczególne fragmenty daty w odpowiedniej kolejności i na takich komórkach funkcje daty działają.
Przy otwieraniu pliku dbf mogę wybrać kodowanie i nic więcej. Jak dokonać automatycznej zamiany fraz w obszarze kolumny i użyć najprostszej metody?
Mam jeszcze trochę tych plików do przeliczenia.
Pozdrawiam
Andrzej
LibreOffice 6.3.1.2 Debian buster, Windows 10
Jan_J
Posty: 4579
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: zamiana na liczbę daty wczytanej jako tekst

Post autor: Jan_J »

No bo z pól typu DATE w dbf powstaje komórka z wartością daty liczbową, nie tekstową. A na liczbie funkcja DATA.WARTOŚĆ() daje błąd 502. Sprawdziłem obie rzeczy.

Dbanie o poprawny typ danych jest pożądane. DATA.WARTOŚĆ(liczba) to masło maślane. Stąd błąd zamiast wyniku. Cóż, że tekstowe 12 + liczbowe 1 daje 13, albo że pobieranie tekstu z daty pamiętanej jako liczba się udaje? arkusze kalkulacyjne nie są niestety konsekwentne w rozróżnianiu typów.

Nie rozumiem też, dlaczego funkcja TEKST() pozwala formatować argument liczbowy, a funkcja DATA.WARTOŚĆ() nie pozwala wymusić przyjęcia danego formatu argumentu.

Myślę, że masz asekurancką procedurę, która zakłada, że data jest tekstem. Albo przejętą z Excela, gdzie nie zdziwiłbym się, gdyby działała i na tekstach, i na liczbach.

Spróbuj warunkowo
= jeżeli( i(komórka<> ""); T(komórka)=""); komórka; data.wartość(komórka))

PS. Zamiana fraz tylko w edycji arkusza, nie podczas importu.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ