Odwrócenie kolejności numeru zamówienia [Solved]
-
- Posty: 3
- Rejestracja: pn gru 02, 2019 1:50 pm
Odwrócenie kolejności numeru zamówienia [Solved]
Cześć,
Mam takie pytanie, jak zrobić taką rzecz:
Mam bazę danych zamówień w szyku NUMER/MIESIĄC/ROK ze względu na szyk nie jestem w stanie tego wysortować według daty.
Czy można odwrócić tą kolejność za pomocą jakiejś formuły by było ROK/MIESIĄC/NUMER?
Mam takie pytanie, jak zrobić taką rzecz:
Mam bazę danych zamówień w szyku NUMER/MIESIĄC/ROK ze względu na szyk nie jestem w stanie tego wysortować według daty.
Czy można odwrócić tą kolejność za pomocą jakiejś formuły by było ROK/MIESIĄC/NUMER?
Ostatnio zmieniony śr maja 19, 2021 12:45 pm przez Pariasenator, łącznie zmieniany 1 raz.
Apache Open Office 4.1.7
Windows 10
Windows 10
Re: Odwrócenie kolejności numeru zamówienia
Zakładając, że rok jest zawsze liczbą 4 cyfrową a miesiąc dwucyfrową, oraz że podany przez ciebie sposób numerowania wygląda tak: 9/03/2021 i wpisany jest do komórki A1, możesz utworzyć formułę następującą:
W Apache OpenOffice brak jest funkcji POŁĄCZ.TEKSTY(), więc utwórz formułę:
Kod: Zaznacz cały
=POŁĄCZ.TEKSTY("/";1;PRAWY(A1;4);LEWY(PRAWY(A1;7);2);LEWY(A1;DŁ(A1)-8))
Kod: Zaznacz cały
=PRAWY(A1;4)&"/"&LEWY(PRAWY(A1;7);2)&"/"&LEWY(A1;DŁ(A1)-8)
Ostatnio zmieniony śr maja 19, 2021 11:05 am przez Jermor, łącznie zmieniany 1 raz.
Powód: W Apache OpenOffice nie ma funkcji POŁĄCZ.TEKSTY()
Powód: W Apache OpenOffice nie ma funkcji POŁĄCZ.TEKSTY()
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.
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: Odwrócenie kolejności numeru zamówienia
@Jermor podał tobie rozwiązanie dla Libre, wykorzystując funkcję POŁĄCZ.TEKSTY(), której nie ma w OpenOffice.
W Open Office (dla podobnych założeń: cztero cyfrowy rok i dwucyfrowa data) możesz to zrobić w następujący sposób:
W Open Office (dla podobnych założeń: cztero cyfrowy rok i dwucyfrowa data) możesz to zrobić w następujący sposób:
Kod: Zaznacz cały
=ZŁĄCZ.TEKSTY(PRAWY(A1;4); MID(A1;ZNAJDŹ("/";A1);4); LEWY(A1;ZNAJDŹ("/";A1)-1))
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
-
- Posty: 3
- Rejestracja: pn gru 02, 2019 1:50 pm
Re: Odwrócenie kolejności numeru zamówienia
Dzięki, działa. ZamykamRafkus pisze:@Jermor podał tobie rozwiązanie dla Libre, wykorzystując funkcję POŁĄCZ.TEKSTY(), której nie ma w OpenOffice.
W Open Office (dla podobnych założeń: cztero cyfrowy rok i dwucyfrowa data) możesz to zrobić w następujący sposób:Kod: Zaznacz cały
=ZŁĄCZ.TEKSTY(PRAWY(A1;4); MID(A1;ZNAJDŹ("/";A1);4); LEWY(A1;ZNAJDŹ("/";A1)-1))
Apache Open Office 4.1.7
Windows 10
Windows 10
Re: Odwrócenie kolejności numeru zamówienia [Solved]
Mimo że @Pariasenator zamknął temat, chciałbym dodać jeszcze trzy grosze.
Pierwsza sprawa, to jednak wyższość LibreOffice nad Apache OpenOffice. W swojej pierwszej odpowiedzi skorzystałem z funkcji: POŁĄCZ.TEKSTY(), która występuje wyłącznie w LibreOffice Calc. Ta funkcja jak i rozwiązanie dla Apache OpenOffice wykorzystały inne funkcje programu Calc, które pozwalają na wyodrębnienie z tekstu źródłowego potrzebnych fragmentów i połączenie ich we wskazanej kolejności.
Rozwiązując to zagadnienie, można skorzystać z jeszcze jednej funkcji, której także nie ma w Apache OpenOffice, mianowicie funkcji REGEX(). Pozwala ona na wykonanie takiej zamiany kolejności elementów jedną funkcją. Postać jej dla tego zagadnienia to:
Funkcja wykorzystuje zdefiniowany "wzorzec" wyszukiwania tekstu stanowiący wyrażenie regularne. W tym przypadku takim wzorcem jest ciąg złożony z przynajmniej jednej cyfry, znaku ukośnika, dwóch cyfr, kolejnego znaku ukośnika i czterech kolejnych cyfr. We wzorcu zdefiniowano trzy grupy, z których wzorzec się składa. Funkcja ma zamienić znaleziony i odpowiadający temu wzorcowi ciąg grupami tego wzorca ustawionymi we wskazanej kolejności. Tutaj: grupa trzecia, grupa druga i grupa pierwsza.
Drugie rozwiązanie dotyczy sytuacji, gdy chcemy zastąpić ten sposób zapisu nowym. Wówczas nie są potrzebne żadne funkcje a sposób zadziała w każdej wersji programu Calc. Wystarczy skorzystać z operacji "Znajdź i zamień", wykorzystując takie same wyrażenia regularne, jakie zostały użyte w funkcji REGEX(). W polu "Znajdź" należałoby zatem wpisać ciąg: ([0-9]+)(/[0-9]{2}/)([0-9]{4}) a w polu "Zamień" ciąg: $3$2$1. Przed wykonaniem zamiany należy upewnić się, że zaznaczona jest opcja "Wyrażenia regularne".
Pierwsza sprawa, to jednak wyższość LibreOffice nad Apache OpenOffice. W swojej pierwszej odpowiedzi skorzystałem z funkcji: POŁĄCZ.TEKSTY(), która występuje wyłącznie w LibreOffice Calc. Ta funkcja jak i rozwiązanie dla Apache OpenOffice wykorzystały inne funkcje programu Calc, które pozwalają na wyodrębnienie z tekstu źródłowego potrzebnych fragmentów i połączenie ich we wskazanej kolejności.
Rozwiązując to zagadnienie, można skorzystać z jeszcze jednej funkcji, której także nie ma w Apache OpenOffice, mianowicie funkcji REGEX(). Pozwala ona na wykonanie takiej zamiany kolejności elementów jedną funkcją. Postać jej dla tego zagadnienia to:
Kod: Zaznacz cały
=REGEX(A1;"([0-9]+)(/[0-9]{2}/)([0-9]{4})";"$3$2$1")
Drugie rozwiązanie dotyczy sytuacji, gdy chcemy zastąpić ten sposób zapisu nowym. Wówczas nie są potrzebne żadne funkcje a sposób zadziała w każdej wersji programu Calc. Wystarczy skorzystać z operacji "Znajdź i zamień", wykorzystując takie same wyrażenia regularne, jakie zostały użyte w funkcji REGEX(). W polu "Znajdź" należałoby zatem wpisać ciąg: ([0-9]+)(/[0-9]{2}/)([0-9]{4}) a w polu "Zamień" ciąg: $3$2$1. Przed wykonaniem zamiany należy upewnić się, że zaznaczona jest opcja "Wyrażenia regularne".
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.
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: Odwrócenie kolejności numeru zamówienia [Solved]
Jest to dobry sposób, kiedy dane są wpisane jako wartości do komórek.Drugie rozwiązanie dotyczy sytuacji, gdy chcemy zastąpić ten sposób zapisu nowym. Wówczas nie są potrzebne żadne funkcje a sposób zadziała w każdej wersji programu Calc. Wystarczy skorzystać z operacji "Znajdź i zamień", wykorzystując takie same wyrażenia regularne, jakie zostały użyte w funkcji REGEX(). W polu "Znajdź" należałoby zatem wpisać ciąg: ([0-9]+)(/[0-9]{2}/)([0-9]{4}) a w polu "Zamień" ciąg: $3$2$1. Przed wykonaniem zamiany należy upewnić się, że zaznaczona jest opcja "Wyrażenia regularne".
W przypadku występowania formuł z wynikami datowymi sprawa wymaga ostrożności: jeśli niebacznie zaznaczymy „wyszukiwanie w wartościach” i „zamień wszystkie”, zawartość komórek z formułami o wynikach pasujących do wzorca zostanie zastąpiona wartościami STAŁYMI o postaci opisanej przez wzorzec zastępujący.
Taka zmiana nie jest w interesie zarządzającego skoroszytem. Nie ma potrzeby jej przeprowadzania, bo w przypadku formuł datowych wystarczyłaby zmiana formatu komórki. Ale same narzędzia są ostre i da się je zastosować na oślep; trzeba uważać, żeby czegoś nie uszkodzić.
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)