Attyla [ Flagellum Dei ]
kłopot w excelu
Właściwie to nie chodzi o excela a o oo. Kłopot polega na tym, że chcę zamienić liczbę podaną w komórce a24 na jej zapis słownie
kod:
=JEŻELI(A24=19;"dziewiętnaście";JEŻELI(A24=18;"osiemnaście";JEŻELI(A24=17;"siedemnaście";JEŻELI(A24=16;"szesnaście";JEŻELI(A24=15;"piętnaście";JEŻELI(A24=14;"czernaście";JEŻELI(A24=13;"trzynaście";JEŻELI(A24=12;"dwanaście";JEŻELI(A24=11;"jedenaście")))))))))
nie wiem dlaczego, ale w wyniku otrzymuję FAŁSZ, choć chyba wszystko jest OK. Powinno być, bo kilka linijek wyżej taka sama formuła działa bez problemu.
proszę o sugestie co zrobić z tym czymś. Z góry dziękuję za pomoc.
Antemos [ Pretorianin ]
A nie jest przypadkiem wymagany jeszcze jeden średnik i polecenie, jeśli ostatni warunek też nie będzie spełniony?
EDIT: Spróbować nie zaszkodzi: =JEŻELI(A24=19;"dziewiętnaście";JEŻELI(A24=18;"osiemnaście";JEŻELI(A24=17;"siedemnaście";JEŻELI(A24=16;"szesnaście";JEŻELI(A24=15;"piętnaście";JEŻELI(A24=14;"czernaście";JEŻELI(A24=13;"trzynaście";JEŻELI(A24=12;"dwanaście";JEŻELI(A24=11;"jedenaście";"błąd")))))))))
vien [ łowca pip ]
a jezeli w a24 nie ma 11 tylko jeszcze cos innego to jaka wartosc przyjmuje twoja funkcja?
albz74 [ Legend ]
A może: Nie zagnieżdżaj więcej niż siedmiu funkcji Można wprowadzić, czyli zagnieździć, nie więcej niż siedem poziomów funkcji w obrębie danej funkcji
Tyle help. Po usunięciu ostatniego zagnieżdżenia działa. - To, co napisał Antemos również słuszne.
Ile masz tych wartości które zamieniasz na słowa ? Może warto jakąś prostą funkcję napisać.
maniek_ [ arladion ]
Polecenie "Jeżeli" można użyć w formie złożonej góra 7 razy.
Moby7777 [ Generaďż˝ ]
A nie lepiej dopisać funkcję, która będzie to robić zamiast bawić się w tak zagnieżdżone ładowanie warunków?
maniek_ [ arladion ]
=WYSZUKAJ.PIONOWO(A50;$A$9:$C$16;D$48;FAŁSZ())
A50 - poszukiwana wartość (np. 7)
$A$9:$C$16 - macierz (tutaj o trzech kolumnach), w pierwszej kolumnie daj wartości liczbowe, w drugiej kolumnie odpowiadające im wartości tekstowe.
D$48 - w której masz szukać kolumnie (dla Ciebie będzie to wartość 2)
Jeżeli stworzysz macierz o następującej postaci:
komórki od A1 do A10 będą miały wartości od 11 do 20
komórki od B1 do B10 będą miały wartości od ""jedenaście" do "dwadzieścia"
wówczas Twoja komórka wynikowa będzie miała taką postać:
=WYSZUKAJ.PIONOWO(12;$A$1:$B$10;2;FAŁSZ())
Attyla [ Flagellum Dei ]
Antemos
Próbowałem i zawsze dostaję w prezencie "błąd". Zupełnie, jakby w komórce, do której się odwołuję było coś innego, niż przewidziałem w formule.
albz
co to jest zagnieżdżenie?
Funkcji pisać nie umiem. Nigdy tego nie robiłem. Zatrzymałem się w rozwoju na poziomie formuł (excela uczyłem się na wersji 4.0, jeszcze bez basica i innych takich wodotrysków). Nie dość, że nie ma z tym żadnych doświadczeń, to jeszcze funkcja zamieniająca cyfrę na słowa pewnie nie należy do najprostszych.
Maniek
taka sama formuła działa bez problemów w innej komórce. Ta tutaj to "czysta" kopia tamtej (oczywiście ze zmienionymi odniesieniami).
nigdy czegoś takiego nie robiłem. Co to za diabeł?
Moby7777 [ Generaďż˝ ]
Attyla --> dzięki za przemianowanie mnie. :P
A co do pytań to postaram się wyłożyć dość prosto... Zauważ, że pisząc JEŻELI( ; ; ) tworzysz prostą regułę, która wykonuje dwie różne akcje w zależności od podanego warunku logicznego. Zwróć również uwagę na to, że wspomniane akcje mogą zawierać kolejne instrukcje (w tym przypadku jest to dodatkowa instrukcja JEŻELI). W efekcie kolejne instrukcje JEŻELI zawarte są w innych. Ilość takich zawierań programiści zwykli nazywać poziomem zagnieżdżenia. Ogólnie nie jest to złe ale zazwyczaj bardzo ciężko się to czyta.
Co do pisania funkcji to nie jest to wbrew pozorom wcale takie trudne. Poszukaj sobie tutoriali w necie... powinieneś sobie z tym z łatwością poradzić. A zamiana cyfr na słowa jest akurat jednym z pierwszych zadań dawanych początkującym programistą. Naprawdę nie jest to wcale trudne. :) Jakbyś miał problem to się odezwij, postaram się pomóc. Ale metoda mańka jest jednak prostsza :)
albz74 [ Legend ]
Attyla - można sobie poradzić 'po chłopsku' przy użyciu tablicy - w poście [7] zawarta recepta.
Jeżeli mówisz, że dokładnie ta sama formuła działa (u mnie nie działa) - jesteś pewny że nie ma różnicy, której nie widać gołym okiem, na przykład spacja w komórce, której wartość sprawdzasz, etc.
Macco™ [ CFC ]
co do funkcji CI nie pomogę bo na Exelu sie na tyle nie znam ale mogę polecić żeby frazę 'czernaście" zamienić na czternaście
Attyla [ Flagellum Dei ]
Moby
Przepraszam. Oba nicki zaczynają się na "m" i się pomyliłem.
albz
sprawdzałem, pisałem od nowa etc. Bez skutku.
A jak to zrobić "po chłopsku"? Z opisu Mańka nic nie łapię. Mam zrobić tablicę, w której 2 pierwsze kolumny to cyfry i ich słowne odpowiedniki. Nie mam pojęcia czym jest kolumna 3?
maniek_ [ arladion ]
Powiedzmy, że chcesz zamienić na tekst liczbę dwanaście (kolor bordowy).
Wyszukujesz pionowo w macierzy A1:B10 (kolor niebieski).
Jeżeli w pierwszej kolumnie macierzy niebieskiej znajdzie się odpowiednik liczby 12 wówczas zwraca funkcja wartość z drugiej kolumny tej macierzy (kolor zielony) z wiersza odpowiadającemu wartości dwanaście.
Attyla [ Flagellum Dei ]
co jest nie tak w tej formule???
=WYSZUKAJ.PIONOWO(B10;Arkusz5.D2:Arkusz5.E9;2;FAŁSZ())
zwraca mi wynik
nie dotyczy
????????
Meganelle [ Tarzana przez Tarzana ]
Nie tak jest adresowanie.
Moby7777 [ Generaďż˝ ]
Attyla --> A od kiedy to nick "albz74" zaczyna się na "m"?? :D
albz74 [ Legend ]
Moby777 - przeczytaj post [4] a potem post [6]
Attyla - spróbuj tak:
WYSZUKAJ.PIONOWO(B10;Arkusz5!D2:E9;2;FAŁSZ())
Attyla [ Flagellum Dei ]
to znaczy?
albz
to samo:(
albz74 [ Legend ]
Błąd 'nie dotyczy' możesz mieć wtedy, kiedy w wyszukiwanej tablicy (Arkusz 5, zakres komórek D2:E9) nie ma wiersza z wartością która jest w komórce B10.
Widzący [ Legend ]
Attyla-> tu masz rozwiązanie na gotowo w fomie arkusza bez VB
Attyla [ Flagellum Dei ]
albz
zgadza się - tak właśnie było:) Przełamałem impas:)
Widzący
dziękuję. Ten arkusz jest bardziej elegancki niż moje wypociny:)