[Solved] Jeżeli i styl z datą

Użytkowanie arkusza kalkulacyjnego
Saeer
Posty: 8
Rejestracja: czw gru 30, 2021 9:48 am

[Solved] Jeżeli i styl z datą

Post autor: Saeer »

Witam ponownie.
Znalazłem wątek na forum o łączeniu funkcji JEŻELI() z funkcją STYL()
https://forum.openoffice.org/pl/forum/v ... tyl#p21764
Zapoznałem się z nim i pojąłem jak można używać funkcji STYL().

Wykorzystuję formułę =TEKST(C2;JEŻELI(D2="tak";STYL("Dobry");STYL("Zły"))) i ukrywam kolumny C i D.

Problem pojawił się przy dacie. W wyniku otrzymuję liczbę zamiast daty pomimo formatu komórki jako data. Funkcja N() daję błędną datę.

Cel: Otrzymać datę ukończenia 2,5lat podświetloną na zielono jeśli już ten warunek został spełniony, na czerwono ,jeśli nie.
Załączniki
Przykład2.ods
(12.43 KiB) Pobrany 71 razy
Ostatnio zmieniony pn sty 17, 2022 9:07 am przez Saeer, łącznie zmieniany 1 raz.
OpenOffice 4.1.11 na Win 10
LibreOffice 7.2 na Win 10
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Jeżeli i styl z datą

Post autor: Rafkus »

Wynikiem funkcji TEKST jest liczba zapisana w wybranym formancie tekstowym. W twoim przypadku o formancie tej liczby decyduje funkcja STYL, która z kolei w wyniku daje zawsze wartość 0, w efekcie dostajesz liczbę zapisaną jako tekst. Poprawniej powinno być tak:

Kod: Zaznacz cały

=TEKST(C2;"dd mmmm yyyy")+JEŻELI(D2="tak";STYL("Dobry");STYL("Zły"))
a nawet tak:

Kod: Zaznacz cały

=C2+STYL(JEŻELI(D2="tak"; "Dobry"; "Zły"))
W tym drugim przypadku będziesz mógł samodzielnie ustawić format komórki.

Odnośnie obliczenia daty skończenia 2,5 lat proponowałbym użycie funkcji:

Kod: Zaznacz cały

=NR.SER.DATY(A2; 30)
Funkcja ta poda datę dokładnie 30 miesięcy po dacie wpisanej do komórki A2 uwzględniając czy w danym okresie był, czy też nie, rok przestępny.

W tym przypadku można nie stosować kolumn pomocniczych, wystarczy taka formuła:

Kod: Zaznacz cały

=NR.SER.DATY(A2;30)+STYL(JEŻELI(BIEŻĄCY()<=DZIŚ(); "Dobry"; "Zły"))
PS. NR.SER.DATY jest to nazwa funkcji w LibreOffice, w OpenOffice funkcja ta nosi nazwę EDATE
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Jeżeli i styl z datą

Post autor: Jermor »

Dołączam do dyskusji.
Uważam, że najlepszym rozwiązaniem jest zastosowanie formatowania warunkowego. Wystarczy wówczas tylko wprowadzona data urodzenia i nie trzeba tworzyć formuły funkcją STYL().
Przykład tego odsyłam.
Takie formatowanie zastosowałem w komórkach od A19:A22.
Wykorzystałem trzy warunki:
Gdy data urodzenia jest mniejsza lub równa DZIŚ() minus 30 miesięcy, styl: "dobry".
Gdy data urodzenia jest mniejsza lub równa DZIŚ(), styl: "zły".
Gdy data urodzenia jest większa niż DZIŚ(), styl "błąd".
Zasada wykorzystania stylu warunkowego jest taka, że przyjmowany jest styl pierwszego spełnionego warunku kontrolnego. Dlatego muszą one być podane w takiej kolejności.
Załączniki
Saeer Przykład2.ods
(13.57 KiB) Pobrany 77 razy
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.
Saeer
Posty: 8
Rejestracja: czw gru 30, 2021 9:48 am

Re: Jeżeli i styl z datą

Post autor: Saeer »

Bardzo wam dziękuję, oba rozwiązania są bardzo przydatne
OpenOffice 4.1.11 na Win 10
LibreOffice 7.2 na Win 10
ODPOWIEDZ