Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zmiana kolejności daty w komórce

aurora23 13 Cze 2013 11:33 3423 8
  • #1 13 Cze 2013 11:33
    aurora23
    Poziom 10  

    Witam,

    mam pewną zagwozdkę.

    w jednej z komórek pobieram datę z kalendarza (data przypisana do komórki LinkedCell) z sąsiedniego zeszytu w następujący sposób:

    Kod: vb
    Zaloguj się, aby zobaczyć kod


    No i elegancko przepisuje mi się data do odpowiedniej komórki.
    Problem w tym, że format kalnedarza to dd-mm-rrrr (i tak ma zostać) powinien zostać odwrócony podczas przepisania wartości do drugiego arkusza (na rrrr-mm-dd)

    Myślałam o tym, żeby wartość w docelowej komórce potraktować jako ciąg i odwrócić kolejność elementów poprzez inwersję, jednak jedyny kod jaki udało mi się wymyślić to:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    a on odwraca wartość xyz na zyx, a przy mojej dacie jest to nieskuteczne.

    Będę wdzięczna za wszelkie wskazówki.
    Pozdrawiam

    0 8
  • #2 13 Cze 2013 11:57
    adamas_nt
    Moderator Programowanie

    Sformatuj komórkę w arkuszu lub w makro

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    -1
  • #3 13 Cze 2013 12:02
    marcinj12
    Poziom 40  

    Zdaje się, że kiedyś, w Excelu 2003, były problemy z takim zapisem daty (dd-mm-rrrr), bo nie rozpoznawał tego jako daty, ale sprawdziłem na 2007 i ten, o dziwo, już sobie z tym radzi i rozpoznaje w tym datę...

    Niemniej, warto wymusić na użytkowniku wpisywanie w formacie rrrr-mm-dd bo, np. formatu dd-mm-rrrr nie można posortować prawidłowo (spróbuj posortować daty 2013-01-01, 2013-04-13 i 2013-03-21) zapisane w tych dwóch formatach.

    Skoro Excel 2007 rozpoznaje prawidłowo miesiące i dzień w dacie dd-mm-rrrr, można prosto ją przekonwertować na wymagany format, coś w stylu:

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #4 13 Cze 2013 12:27
    aurora23
    Poziom 10  

    Ok, ale format docelowej komórki jest ustawiony na yyyy-mm-dd i przy imporcie zawartości daty z kalendarza on się nie zmienia (jednak i tak na sztywno wartość jest postaci dd-mm-yyyy). w tym przypadku nie widzę innej możliwości jak iteracyjne prześledzenie elementów daty i zamiana ich kolejności :/
    Przynajmniej wiem, że długość to zawsze 10 i, że poprzez kod muszę zamienić ostatnie 4ry elementy z pierwszymi dwoma...

    Dobrze myślę?

    0
  • Pomocny post
    #5 13 Cze 2013 12:40
    cbrman
    Poziom 27  

    A nie wystarczy coś takiego?

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • #6 13 Cze 2013 12:47
    aurora23
    Poziom 10  

    W sumie to chyba mam już rozwiązanie.
    rozłączyłam datę na poszczególne składowe względem separatora "-". a później połączyłam w odpowiedniej kolejności.

    Excel2010 już domyślnie ustawia format daty yyyy-mm-dd.

    0
  • #7 14 Cze 2013 00:13
    101pawel
    Poziom 25  

    aurora23 napisał:
    W sumie to chyba mam już rozwiązanie.
    rozłączyłam datę na poszczególne składowe względem separatora "-". a później połączyłam w odpowiedniej kolejności.

    Muszę to napisać, bo wątek pewnie będzie jeszcze wiele razy czytany i ktoś może odnieść wrażenie, że w najlepszym arkuszu kalkulacyjnym jakim jest bez wątpienia Excel istnieje jakiś problem z zapisaniem w dwóch połączonych komórkach tej samej liczby w różnych formatach. No i trzeba do tego celu stosować jakieś ekwilibrystyczne sztuczki. Jeśli w komórce źródłowej zapisana byłaby liczba całkowita, np. 1000 i chciałbyś by w innej komórce została odwzorowana w innym formacie np. 1000,0 lub 1.000 zł lub 1,00E+03 lub w stu innych formatach, to nie będziesz tego formatu rozbierał na czynniki pierwsze by go potem sklejać dla uzyskania formatu innego. Ustawisz wymagany format i tyle. Skoro data w Excelu jest też liczbą całkowitą, to należy postąpić analogicznie, - w komórce połączonej z źródłową zastosować żądany format. Koniec i kropka. Tak zresztą doradzili Ci w wątku koledzy.
    Pozdrawiam

    0
  • #8 14 Cze 2013 08:31
    aurora23
    Poziom 10  

    Jasne, masz rację.
    Najłatwiej jest ustawić oczekiwany format i po sprawie. Jednak jak opisałam powyżej, w moim przypadku to nie działa. Odnoszę jednak wrażenie, że zaznajomiłeś się z wątkiem "niedbale", choćby dlatego, że zwracasz się do mnie per "on".
    Mniejsza o to, odniosłam się ostatecznie do rady @cbrman'a.
    Dzięki wielkie.
    Pozdrawiam.

    0
  • #9 14 Cze 2013 09:37
    adamas_nt
    Moderator Programowanie

    Pozwolę sobie na małe podsumowanie. Rację mają wszyscy :)
    Na obrazku poniżej jedna z "dat" zapisana jest jako data Ctrl+: , druga jako tekst, poprzedzony apostrofem.

    Zmiana kolejności daty w komórce

    Różnicy nie widać na oko. Za to Excel traktuje obie wartości skrajnie inaczej. Zupełnie różne musi być także podejście do rozwiązania kwestii poruszonej w wątku.

    I to by było na tyle...

    0