Sortowanie po dacie

Użytkowanie arkusza kalkulacyjnego
kermu
Posty: 7
Rejestracja: sob lis 04, 2017 10:22 pm

Sortowanie po dacie

Post autor: kermu »

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
Załączniki
date_sort.csv.zip
(255 Bajtów) Pobrany 37 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Sortowanie po dacie

Post autor: Jan_J »

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.
calc_dialog_import.png
calc_dialog_import.png (57.46 KiB) Przejrzano 537 razy
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 (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
kermu
Posty: 7
Rejestracja: sob lis 04, 2017 10:22 pm

Re: Sortowanie po dacie

Post autor: kermu »

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 ?
Obrazek
Załączniki
eksport.resized.jpg
eksport.resized.jpg (110.9 KiB) Przejrzano 391 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Sortowanie po dacie

Post autor: Jermor »

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.
  • 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.
W oprogramowaniu LibreOffce można to zrobić za jednym podejściem bezpośrednio w Calcu. Po skopiowaniu komórek, należy wywołać polecenie "Wklej specjalnie" wybierając opcję "Niesformatowany tekst" a to otworzy od razu okno importu tekstu. Ten sposób wklejania ma swój własny skrót klawiaturowy CTRL+ALT+SHIFT+V.
AOO 4.1.15, LO 7.5.9 (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.
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Sortowanie po dacie

Post autor: Jermor »

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 7.5.9 (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.
kermu
Posty: 7
Rejestracja: sob lis 04, 2017 10:22 pm

Re: Sortowanie po dacie

Post autor: kermu »

Jermor pisze: czw lut 15, 2024 9:42 pm To już widać na twojej ilustracji.
W wierszu wprowadzania widać następujący wpis '19-01-2022
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
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Sortowanie po dacie

Post autor: Jermor »

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ć.
obraz_2024-02-15_230227577.png
obraz_2024-02-15_230227577.png (30.57 KiB) Przejrzano 377 razy
Konwertowanie, to zmiana sposobu zapisania danych. Formatowanie to sposób prezentowania danych.
AOO 4.1.15, LO 7.5.9 (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.
kermu
Posty: 7
Rejestracja: sob lis 04, 2017 10:22 pm

Re: Sortowanie po dacie

Post autor: kermu »

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.
Obrazek
Załączniki
oocalc.jpg
oocalc.jpg (125 KiB) Przejrzano 362 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Sortowanie po dacie

Post autor: Jermor »

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ą.
AOO 4.1.15, LO 7.5.9 (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.
kermu
Posty: 7
Rejestracja: sob lis 04, 2017 10:22 pm

Re: Sortowanie po dacie

Post autor: kermu »

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.
Linux Mint 20.3/ LibreOffice 7.6.4.1
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Sortowanie po dacie

Post autor: Jermor »

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.
AOO 4.1.15, LO 7.5.9 (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.
kermu
Posty: 7
Rejestracja: sob lis 04, 2017 10:22 pm

Re: Sortowanie po dacie

Post autor: kermu »

Jermor pisze: sob lut 17, 2024 1:08 pm Predefiniowane formaty dat nie mają nic wspólnego z automatyczną konwersją tekstu prezentującego datę na liczbę daty.
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
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Sortowanie po dacie

Post autor: Jermor »

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ę.
AOO 4.1.15, LO 7.5.9 (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.
cwolan
Posty: 54
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Sortowanie po dacie

Post autor: cwolan »

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ć.
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
OpenOffice 1.1.5 – 4.1.15
LibreOffice 3.3.0.4 – 7.6.6
Windows 7,10,11 64-bit
Awatar użytkownika
Jermor
Posty: 2259
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Sortowanie po dacie

Post autor: Jermor »

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!
AOO 4.1.15, LO 7.5.9 (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.
kermu
Posty: 7
Rejestracja: sob lis 04, 2017 10:22 pm

Re: Sortowanie po dacie

Post autor: kermu »

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
Dzięki !
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
eksport.jpg (103.87 KiB) Przejrzano 310 razy
Linux Mint 20.3/ LibreOffice 7.6.4.1
cwolan
Posty: 54
Rejestracja: pn sty 25, 2021 11:17 pm

Re: Sortowanie po dacie

Post autor: cwolan »

kermu pisze: sob lut 17, 2024 8:41 pm Niestety przy imporcie z CSV nie jest robiona konwersja i trzeba pamiętać
o ustawieniu typu danych na "data" dla wybranego zakresu danych.
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.
import.png
import.png (77.01 KiB) Przejrzano 297 razy
OpenOffice 1.1.5 – 4.1.15
LibreOffice 3.3.0.4 – 7.6.6
Windows 7,10,11 64-bit
ODPOWIEDZ