Sortowanie po dacie
Sortowanie po dacie
Nie mogę sobie poradzić z sortowaniem po dacie w pliku jak w załączniku.
Po zaimportowaniu z eBOK ENEA w kolumnie daty przed datą są znaki '
W podglądzie pliku csv nie ma nic takiego.
Czy jest jakiś sposób aby ręcznie nie trzeba było zmieniać każdej komórki ?
W załączonym pliku usunałem znak ' poprzedzający datę z pól
1.08.2023 oraz 2.06.2023
Z góry dziękuję za pomoc
Krzysztof
Po zaimportowaniu z eBOK ENEA w kolumnie daty przed datą są znaki '
W podglądzie pliku csv nie ma nic takiego.
Czy jest jakiś sposób aby ręcznie nie trzeba było zmieniać każdej komórki ?
W załączonym pliku usunałem znak ' poprzedzający datę z pól
1.08.2023 oraz 2.06.2023
Z góry dziękuję za pomoc
Krzysztof
- Załączniki
-
- date_sort.csv.zip
- (255 Bajtów) Pobrany 64 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
Re: Sortowanie po dacie
W csv są poprawne daty w formacie dd.mm.yyyy i jako takie się wczytują.
Pytanie, jak importujesz dane z ebok: przez kopiuj/wklej? Widocznie daty zostały zaimportowane jako teksty.
Użyj operacji Wklej specjalnie (Ctrl+Shift+V). Podczas importu zaznacz kolumnę z datami i okreś "Data [DMR]" jako jej typ. Patrz ilustracja niżej. Okienko pochodzi z LibreOffice 7.5.5 na Rocky Linux 8.8 + XFCE. W Twoim środowisku graficznym i w innej wersji oprogramowania może wyglądać trochę inaczej, ale funkcjonalność będzie analogiczna.
Pytanie, jak importujesz dane z ebok: przez kopiuj/wklej? Widocznie daty zostały zaimportowane jako teksty.
Użyj operacji Wklej specjalnie (Ctrl+Shift+V). Podczas importu zaznacz kolumnę z datami i okreś "Data [DMR]" jako jej typ. Patrz ilustracja niżej. Okienko pochodzi z LibreOffice 7.5.5 na Rocky Linux 8.8 + XFCE. W Twoim środowisku graficznym i w innej wersji oprogramowania może wyglądać trochę inaczej, ale funkcjonalność będzie analogiczna.
JJ
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (24.2|7.6) ∙ Python (3.12|3.11|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: Sortowanie po dacie
Dziękuję za pomoc.
Może ktoś się orientuje dlaczego po zaimportowaniu po zmianie formatu na typ: Data, nie działa sortowanie a jedynie przy zastosowaniu sposobu podanego w poście powyżej, tzn przy określeniu typu komórek jako data ?
Może ktoś się orientuje dlaczego po zaimportowaniu po zmianie formatu na typ: Data, nie działa sortowanie a jedynie przy zastosowaniu sposobu podanego w poście powyżej, tzn przy określeniu typu komórek jako data ?
- Załączniki
-
- eksport.resized.jpg (110.9 KiB) Przejrzano 1526 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
Re: Sortowanie po dacie
To już widać na twojej ilustracji.
W wierszu wprowadzania widać następujący wpis '19-01-2022 taki zapis oznacza, że w komórce jest tekst, tylko wygląda jak data, i przypisanie takiej komórce formatu Data nie zmieni tego zapisu na format daty. Musisz to zrobić samodzielnie. Znak apostrofu (') nie jest częścią tego tekstu, więc nie możesz go po prostu usunąć poleceniem "Znajdź i zamień".
W podpisie postu sygnalizujesz używanie Apache OpenOffice. W tym programie metoda przekształcenia tego zapisu na tekst jest trochę złożona, gdyż Calc nie pozwala na skopiowanie zakresu komórek i ponowne ich wklejenie z konwersją na datę, trzeba do tego użyć dokumentu pośredniego ale nie arkusza. Więc może to być Writer.
W wierszu wprowadzania widać następujący wpis '19-01-2022 taki zapis oznacza, że w komórce jest tekst, tylko wygląda jak data, i przypisanie takiej komórce formatu Data nie zmieni tego zapisu na format daty. Musisz to zrobić samodzielnie. Znak apostrofu (') nie jest częścią tego tekstu, więc nie możesz go po prostu usunąć poleceniem "Znajdź i zamień".
W podpisie postu sygnalizujesz używanie Apache OpenOffice. W tym programie metoda przekształcenia tego zapisu na tekst jest trochę złożona, gdyż Calc nie pozwala na skopiowanie zakresu komórek i ponowne ich wklejenie z konwersją na datę, trzeba do tego użyć dokumentu pośredniego ale nie arkusza. Więc może to być Writer.
- Skopiuj tekst z tymi datami.
- W dokumencie Writera wykonaj "Wklej specjalnie" wybierając "Niesformatowany tekst".
- Zaznacz ten tekst i ponownie skopiuj.
- Wróć do arkusza, wykonaj "Wklej specjalnie" znowu wybierz "Niesformatowany tekst"
- Teraz pojawi ci się okienko do przeprowadzenia konwersji, takie jaki załączył wcześniej @Jan_J.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Sortowanie po dacie
P.S. Sortowanie oczywiście działa tylko, że sortowane są teksty, a te porównywane są od lewej do prawej znak po znaku. To właśnie dlatego przed laty lansowano usilnie zapis w postaci rok-miesiąc-dzień, gdyż wówczas sortowanie porządkuje dane wg dat i w niektórych systemach informatycznych jest on stosowany do dzisiaj. Taka forma zapisu (z uwzględnieniem specyfiki kodowania) jest zastosowana np. w numerze PESEL. Arkusze kalkulacyjne nie przechowują dat jako teksty, tylko jako liczby, które odpowiadają ilości dni jakie upłynęły od określonego momentu, dzięki temu łatwo je posortować a formatowanie tych liczb nie ma wpływu na tę operację.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Sortowanie po dacie
Nie zwróciłem na to uwagi.
To jest chyba jakiś bug w LibreOffice 7.6.4.1 którego aktualnie używam.
Te apostrofy pojawiły się po wykonaniu konwersji typu komórek z formatu standard/liczba do formatu użytkownika DD-MM-YYYY
W predefiniowanych formatach daty nie ma szablonu DD-MM-YYYY.
Proszę o potwierdzenie u kogoś, kto ma Libreoffice.
Pozdrawiam
Krzysztof
Linux Mint 20.3/ LibreOffice 7.6.4.1
Re: Sortowanie po dacie
Musisz dokładniej opisać co i jak konwertowałeś. Jeśli miałeś komórki sformatowane jako liczba, to wystarczyło przypisać im format daty, tak jak na ilustracji. Musi to być format użytkownika, bo rzeczywiście formatu DD-MM-YYYY nie ma na liście predefiniowanych formatów. Niczego nie trzeba konwertować.
Konwertowanie, to zmiana sposobu zapisania danych. Formatowanie to sposób prezentowania danych.AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Sortowanie po dacie
Przed chwilą sprawdziłem.
Po ręcznym wypełnieniu komórek danymi w formacie DD-MM-YYYY i dokonaniu konwersji, lo calc dodaje apostrof na początku. Zatem jest to raczej bug który należy zgłosić do poprawienia.
Po ręcznym wypełnieniu komórek danymi w formacie DD-MM-YYYY i dokonaniu konwersji, lo calc dodaje apostrof na początku. Zatem jest to raczej bug który należy zgłosić do poprawienia.
- Załączniki
-
- oocalc.jpg (125 KiB) Przejrzano 1497 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
Re: Sortowanie po dacie
To nie jest bug. LIbreOffice (jak zresztą i Apache OpenOffice) przy wprowadzaniu danych automatycznie rozpoznaje typy liczbowe, z tym, że dotyczy to liczb całkowitych i dat (łącznie z czasem). LibreOffice, jako poprawny wpis, dający się przedstawić jako liczba daty, traktuje tylko dwa rodzaje ciągów znakowych, w postaci DD.MM.RRRR, lub RRRR-MM-DD. Ten pierwszy ciąg odpowiada systemowi zapisu daty w Polsce (ustawienia lokalne) i pozwala wpisać datę w krótszej postaci, np. D.M.RR, drugi jest zgodny z normą ISO 8601 i data zawsze musi być wprowadzona z czterema cyframi roku. Rozpoznana liczba daty jest formatowana formatem DD.MM.YYYY w pierwszym przypadku i YYYY-MM-DD w drugim. Każda inna postać wprowadzenia daty jest traktowana jako tekst. Dlatego powinieneś wpisywać swoje daty z kropką, wówczas program rozpozna datę, natomiast komórkom przypisz własne formatowanie.
Nieco inaczej jest w Apache OpenOffice, w nim oprogramowanie poprawnie interpretuje wpisy w postaci ciągów: RRRR-MM-DD, DD-MM-RRRR, DD/MM/RRRR i DD.MM.RRRR, i zawsze po wpisaniu jednego z tych ciągów liczba daty jest sformatowana do postaci DD.MM.YYYY.
Apostrof poprzedzający zapis liczbowy (widoczny tylko w wierszu wprowadzania) ma informować system, że ciąg, który wygląda jak liczba ma być traktowany jak tekst. Istnieje prawdopodobnie drobna różnica w funkcjonowaniu oprogramowania. W mojej wersji, Windowsowej, ciąg zakwalifikowany już jako tekst, nie jest poprzedzany znakiem apostrofu.
Moduł importu potrafi zinterpretować różne znaki rozdzielające poszczególne elementy daty i poprawnie przekształcić tekst do postaci liczby daty.
Komórki zawierające tekst można sformatować na dowolny format liczbowy, ale to nie spowoduje zmiany w wyświetlaniu zawartości dopóty, dopóki ta zawartość nie stanie się możliwa do wyświetlenia, czyli nie będzie liczbą.
Nieco inaczej jest w Apache OpenOffice, w nim oprogramowanie poprawnie interpretuje wpisy w postaci ciągów: RRRR-MM-DD, DD-MM-RRRR, DD/MM/RRRR i DD.MM.RRRR, i zawsze po wpisaniu jednego z tych ciągów liczba daty jest sformatowana do postaci DD.MM.YYYY.
Apostrof poprzedzający zapis liczbowy (widoczny tylko w wierszu wprowadzania) ma informować system, że ciąg, który wygląda jak liczba ma być traktowany jak tekst. Istnieje prawdopodobnie drobna różnica w funkcjonowaniu oprogramowania. W mojej wersji, Windowsowej, ciąg zakwalifikowany już jako tekst, nie jest poprzedzany znakiem apostrofu.
Moduł importu potrafi zinterpretować różne znaki rozdzielające poszczególne elementy daty i poprawnie przekształcić tekst do postaci liczby daty.
Komórki zawierające tekst można sformatować na dowolny format liczbowy, ale to nie spowoduje zmiany w wyświetlaniu zawartości dopóty, dopóki ta zawartość nie stanie się możliwa do wyświetlenia, czyli nie będzie liczbą.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Sortowanie po dacie
Chyba nie do końca Twoja teoria się zgadza z rzeczywistością bo w predefiniowanych szablonach dat jest wiele różnych formatów ale akurat zabrakło DD-MM-YYYY. Niedoróba jest taka że nie można dodać kolejnego własnego, rozpoznawanego jako format daty ale to chyba będę musiał zgłosić na forum libreoffice.
Swoją drogą zastanawia mnie zatem dlaczego tak duży bank jak SANTANDER nie trzyma się standardów ISO daty przy generowaniu wyciągów do formatu CSV.
Swoją drogą zastanawia mnie zatem dlaczego tak duży bank jak SANTANDER nie trzyma się standardów ISO daty przy generowaniu wyciągów do formatu CSV.
Linux Mint 20.3/ LibreOffice 7.6.4.1
Re: Sortowanie po dacie
Predefiniowane formaty dat nie mają nic wspólnego z automatyczną konwersją tekstu prezentującego datę na liczbę daty.
Wspomnianego przez ciebie formatu DD-MM-YYYY nie ma także w Apache OpenOffice. Nie jest to niedoróbka, bo oficjalny zapis dat w Polsce to DD.MM.RRRR i dlatego do tego formatu następuje przekonwertowanie daty podanej jako ciąg tekstowy. W Apache OpenOffice - zawsze, w LibreOffice tylko wówczas, gdy podany tekst jest wpisany w konwencji formatu obowiązującego w Polsce.
Autorzy Apache OpenOffice w swoim oprogramowaniu wbudowali system, który rozpoznaje także inne stosowane sposoby prezentacji daty, czyli z myślnikami, albo ukośnikami miedzy poszczególnymi elementami. Autorzy LibreOffice akurat tego nie zrobili. Nawiasem pisząc, szkoda że tego nie zrobili, bo przy wprowadzaniu dat znak myślnika jest także w bloku klawiatury numerycznej, co znacznie ułatwia wprowadzanie dat z takim separatorem dni i miesięcy, gdyż w polskiej lokalizacji klawiatury, klawisz kropki w bloku numerycznym wstawia przecinek, więc nie można go użyć. Ale to nie ma nic wspólnego z predefiniowanymi formatami. Ten algorytm przekształca po prostu tekst na liczbę daty i dopiero ona jest prezentowana przy pomocy formatowania.
Wspomnianego przez ciebie formatu DD-MM-YYYY nie ma także w Apache OpenOffice. Nie jest to niedoróbka, bo oficjalny zapis dat w Polsce to DD.MM.RRRR i dlatego do tego formatu następuje przekonwertowanie daty podanej jako ciąg tekstowy. W Apache OpenOffice - zawsze, w LibreOffice tylko wówczas, gdy podany tekst jest wpisany w konwencji formatu obowiązującego w Polsce.
Autorzy Apache OpenOffice w swoim oprogramowaniu wbudowali system, który rozpoznaje także inne stosowane sposoby prezentacji daty, czyli z myślnikami, albo ukośnikami miedzy poszczególnymi elementami. Autorzy LibreOffice akurat tego nie zrobili. Nawiasem pisząc, szkoda że tego nie zrobili, bo przy wprowadzaniu dat znak myślnika jest także w bloku klawiatury numerycznej, co znacznie ułatwia wprowadzanie dat z takim separatorem dni i miesięcy, gdyż w polskiej lokalizacji klawiatury, klawisz kropki w bloku numerycznym wstawia przecinek, więc nie można go użyć. Ale to nie ma nic wspólnego z predefiniowanymi formatami. Ten algorytm przekształca po prostu tekst na liczbę daty i dopiero ona jest prezentowana przy pomocy formatowania.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Sortowanie po dacie
Jaki był zatem cel implementacji predefiniowanych formatów dat, jeśli nie są one później wykorzystywane ?
Wykorzystywany jest natomiast jakiś wewnętrzny mechanizm konwersji.
Linux Mint 20.3/ LibreOffice 7.6.4.1
Re: Sortowanie po dacie
Predefiniowane formaty zdefiniowano po to, aby użytkownik nie musiał pisać "kodu" formatowania, tylko wybrał ten jaki mu odpowiada. Dotyczą one wartości znajdującej się w komórce. Jak napisałem, data z punktu wodzenia arkusza kalkulacyjnego, jest liczbą całkowitą mówiącą ile dni upłynęło od wybranej daty. W Calc-u można wybrać jedną z trzech możliwych dat, przy standardowym ustawieniu jest to 30.12.1899 roku. Względem tej daty, 17.02.2024 to liczba 45339. Trudno byłoby jednak wpisywać takie liczby, dlatego dodano moduły, które podczas wprowadzania znaków z klawiatury analizują wpisy i odpowiednio reagują. W przypadku daty konwertują je z postaci tekstowej na liczbę, liczbę umieszczają w komórce i wiedząc, że to właśnie data została przekonwertowana, ustalają dla komórki format daty zgodny z lokalizacją oprogramowania. W naszej wersji językowej te moduły rozpoznają także wpisy w postaci np. 1 maj 24, konwertując go na 1.05.2024, albo 23 luty (23.02.2024) lub luty 23 (1.02.2023).
Tak więc predefiniowane formaty nie służą (i nigdy nie służyły) temu aby definiować w jaki sposób można wpisywać datę.
Tak więc predefiniowane formaty nie służą (i nigdy nie służyły) temu aby definiować w jaki sposób można wpisywać datę.
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Sortowanie po dacie
Również nawiasem pisząc, w kwestii wprowadzania dat z separatorem (np. myślnikiem): taki format można dodać w ustawieniach.Jermor pisze: ↑sob lut 17, 2024 1:08 pm Autorzy Apache OpenOffice w swoim oprogramowaniu wbudowali system, który rozpoznaje także inne stosowane sposoby prezentacji daty, czyli z myślnikami, albo ukośnikami miedzy poszczególnymi elementami. Autorzy LibreOffice akurat tego nie zrobili. Nawiasem pisząc, szkoda że tego nie zrobili, bo przy wprowadzaniu dat znak myślnika jest także w bloku klawiatury numerycznej, co znacznie ułatwia wprowadzanie dat z takim separatorem dni i miesięcy, gdyż w polskiej lokalizacji klawiatury, klawisz kropki w bloku numerycznym wstawia przecinek, więc nie można go użyć.
Narzędzia ⟶ Opcje ⟶ Ustawienia języka ⟶ Języki ⟶ Akceptowane wzorce dat
OpenOffice 1.1.5 – 4.1.15
LibreOffice 3.3.0.4 – 24.8
Windows 7,10,11 64-bit
LibreOffice 3.3.0.4 – 24.8
Windows 7,10,11 64-bit
Re: Sortowanie po dacie
Pamiętałem, że gdzieś o tym czytałem, ale zafiksowałem się, że było to związane z opcjami dla Calc-a. Okazuje się, że z językiem.
Brawo @cwolan!
Brawo @cwolan!
AOO 4.1.15, LO 24.8.2 (x64) na Windows 10 64bit
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Ważne!
Jeśli twój problem został rozwiązany, wróć do swojego pierwszego postu, przejdź do edycji i dopisz [SOLVED] w temacie.
Inni, którzy mają podobny problem, będą wiedzieli, że istnieje jego rozwiązanie.
Re: Sortowanie po dacie
Dzięki !cwolan pisze: ↑sob lut 17, 2024 6:33 pm Również nawiasem pisząc, w kwestii wprowadzania dat z separatorem (np. myślnikiem): taki format można dodać w ustawieniach.
Narzędzia ⟶ Opcje ⟶ Ustawienia języka ⟶ Języki ⟶ Akceptowane wzorce dat
Działa przy ręcznym wprowadzaniu danych traktowanych jako format daty.
Automatycznie jest zmieniany format na D.M.Y
Niestety przy imporcie z CSV nie jest robiona konwersja i trzeba pamiętać
o ustawieniu typu danych na "data" dla wybranego zakresu danych.
Pozdrawiam
Krzysztof
- Załączniki
-
- eksport.jpg (103.87 KiB) Przejrzano 1445 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
Re: Sortowanie po dacie
Nie wiem, czy dobrze interpretuję sytuację przedstawioną w załączniku (komórka A6).
I co oznacza "nie jest robiona konwersja"?
Przykład z dwoma separatorami daty (zmodyfikowany plik "date_sort.csv").
Typ kolumny: "Standardowe", zaznaczone pole wyboru "Identyfikuj liczby specjalne".
LibreOffice rozpoznaje oba formaty daty.
⠀
OpenOffice 1.1.5 – 4.1.15
LibreOffice 3.3.0.4 – 24.8
Windows 7,10,11 64-bit
LibreOffice 3.3.0.4 – 24.8
Windows 7,10,11 64-bit