formułka: jeżeli -> to, jeżeli -> tamto
formułka: jeżeli -> to, jeżeli -> tamto
Witam,
Próbowałem wykorzystać kilka podpowiedzi z forum odnośnie "jeżeli" w Calc LibreOffice, ale nie umiem tego posklejać by działało jak należy.
Nie wiem czy będę umiał wytłumaczyć swój problem, ale postaram się:
Chodzi mi o pewną formułkę do cennika katalogowego, do wyliczenia ceny zakupu, w której przypisane będą różne rabaty, do wyliczenia ceny zakupu. Cennik posiada kategorie rabatu (A, B, C, D, E itd) np A=10%, B=20%, C=15% oraz pusta kategorię, gdzie jest stały rabat 30% (kolumna E). Przy każdym produkcie jest cena katalogowa (np kolumna A) i kategoria rabatu (kolumna B). Obliczanie pojedynczo ponad 2tys produktów zajmie trochę czasu.
jeśli wartość w komórce B2 ="A" to wstaw stałą wartość z komórki $E$2 (X) do formuły
jeśli wartość w komórce B3 = "B" to wstaw stałą wartość z komórki $E$3 (Y) do formuły
jeśli wartość w komórce " " (nic, brak wartości, znaku, symbolu itd) to wstaw wartość z komórki $E$5 (Z) do formuły
formuła: cena zakupu = cena katalogowa - cena katalogowa *(jeśli A to X , jeśli B to Y, jeśli nic to Z)
Mógłbym to rozwiązać tez auto filtrem i sortowaniem artykułów wg kategorii rabatów, ale może formuła będzie lepszym rozwiązaniem.
Próbowałem wykorzystać kilka podpowiedzi z forum odnośnie "jeżeli" w Calc LibreOffice, ale nie umiem tego posklejać by działało jak należy.
Nie wiem czy będę umiał wytłumaczyć swój problem, ale postaram się:
Chodzi mi o pewną formułkę do cennika katalogowego, do wyliczenia ceny zakupu, w której przypisane będą różne rabaty, do wyliczenia ceny zakupu. Cennik posiada kategorie rabatu (A, B, C, D, E itd) np A=10%, B=20%, C=15% oraz pusta kategorię, gdzie jest stały rabat 30% (kolumna E). Przy każdym produkcie jest cena katalogowa (np kolumna A) i kategoria rabatu (kolumna B). Obliczanie pojedynczo ponad 2tys produktów zajmie trochę czasu.
jeśli wartość w komórce B2 ="A" to wstaw stałą wartość z komórki $E$2 (X) do formuły
jeśli wartość w komórce B3 = "B" to wstaw stałą wartość z komórki $E$3 (Y) do formuły
jeśli wartość w komórce " " (nic, brak wartości, znaku, symbolu itd) to wstaw wartość z komórki $E$5 (Z) do formuły
formuła: cena zakupu = cena katalogowa - cena katalogowa *(jeśli A to X , jeśli B to Y, jeśli nic to Z)
Mógłbym to rozwiązać tez auto filtrem i sortowaniem artykułów wg kategorii rabatów, ale może formuła będzie lepszym rozwiązaniem.
LibreOffice Wersja: 7.2.5.2, Win 10 Home x64
Re: formułka: jeżeli -> to, jeżeli -> tamto
Możesz użyć zagnieżdżonej formuły JEŻELI():
W miejscu (...) kolejne formuły JEŻELI, ostatnia mogła by być taka:
gdzie n to numer odpowiedniego wiersza.
W swoim opisie problemu piszesz: B2 ="A"; B3 ="B" , wydaje mi się że tam powinna być sprawdzana wartość z konkretnej jednej komórki a więc: B2 ="A"; B2 ="B" itd.
LibreOffice ma funkcję WARUNKI( ), działającą właśnie jak zagnieżdżona funkcja JEŻELI:
Jak działa ta formuła:
* jeśli pierwszy warunek: B2="A" jest prawdziwy to otrzymasz wartość z $E$2, jeśli nie to
** sprawdza drugi warunek: B2="B", jeśli jest prawdziwy to otrzymasz wartość z $E$3, jeśli nie to
*** (itd. sprawdzane są kolejne warunki aż do)
****sprawdza n warunek: B2="", jeśli jest prawdziwy to otrzymasz wartość z $E$n, jeśli nie to
***** 1 oznacza że warunek jest prawdziwy i w tym przypadku w wyniku otrzymasz tekst "Nie określone". Tą parę (warunek i wynik) możesz nie podawać, ale wówczas w przypadku niespełnienia którekolwiek warunku w wyniku otrzymasz błąd #N/D
Kod: Zaznacz cały
=JEŻELI(B2="A"; $E$2; JEŻELI(B3="B"; $E$3; JEŻELI(...)))
Kod: Zaznacz cały
JEŻELI(Bn=""; $E$n; "Nie zdefiniowano")
W swoim opisie problemu piszesz: B2 ="A"; B3 ="B" , wydaje mi się że tam powinna być sprawdzana wartość z konkretnej jednej komórki a więc: B2 ="A"; B2 ="B" itd.
LibreOffice ma funkcję WARUNKI( ), działającą właśnie jak zagnieżdżona funkcja JEŻELI:
Kod: Zaznacz cały
=WARUNKI(B2="A"; $E$2;
B2="B"; $E$3;
(kolejne warunki i wyniki)
B2=""; $E$n;
1; "Nie określone")
* jeśli pierwszy warunek: B2="A" jest prawdziwy to otrzymasz wartość z $E$2, jeśli nie to
** sprawdza drugi warunek: B2="B", jeśli jest prawdziwy to otrzymasz wartość z $E$3, jeśli nie to
*** (itd. sprawdzane są kolejne warunki aż do)
****sprawdza n warunek: B2="", jeśli jest prawdziwy to otrzymasz wartość z $E$n, jeśli nie to
***** 1 oznacza że warunek jest prawdziwy i w tym przypadku w wyniku otrzymasz tekst "Nie określone". Tą parę (warunek i wynik) możesz nie podawać, ale wówczas w przypadku niespełnienia którekolwiek warunku w wyniku otrzymasz błąd #N/D
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
Re: formułka: jeżeli -> to, jeżeli -> tamto
Wydaje mi się, że możesz to rozwiązać inaczej, chociaż każdy sposób uzyskania prawidłowego wyniku jest dobry.
Jeżeli swoje rabaty zorganizujesz w postaci tabelki opustów to możesz tę ceny obliczać w sposób pokazany na ilustracji. W tym rozwiązaniu finkcja JEŻELI.BŁĄD() (dostępna tylko w LibreOffice) zwróci cenę katalogową dla każdego typu kategorii rabatowej niezgodnej z tabelką rabatów.
Przy okazji. O różnych funkcjach warunkowych możesz poczytać tutaj: https://yestok.pl/lbo/y63.php
Jeżeli swoje rabaty zorganizujesz w postaci tabelki opustów to możesz tę ceny obliczać w sposób pokazany na ilustracji. W tym rozwiązaniu finkcja JEŻELI.BŁĄD() (dostępna tylko w LibreOffice) zwróci cenę katalogową dla każdego typu kategorii rabatowej niezgodnej z tabelką rabatów.
Przy okazji. O różnych funkcjach warunkowych możesz poczytać tutaj: https://yestok.pl/lbo/y63.php
AOO 4.1.15, LO 24.8.2 (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: formułka: jeżeli -> to, jeżeli -> tamto
Po odpowiednim przygotowaniu danych można także wykorzystać funkcję WYSZYKAJ():
gdzie:
B2 - komórka z wartością do wyszukiwania,
$F$2:$F$7 - zakres komórek, w którym będzie poszukiwana dana wartość. UWAGI: Musi być on posortowany rosnąco, do pierwszej komórki z tego zakresu (tej niby pustej) ma być wpisane: =""
$E$2:$E$7 - zakres wyników wynikowych UWAGA: OpenOffice ma problem ze znalezieniem wartości w takiej pustej komórce, zobacz wiersz 8 na powyższym zdjęciu. Komórka B8 jest pusta i formuła z komórki C8 zwraca błąd - brak danych (w komórce B7 jest wpisane ="").
Kod: Zaznacz cały
=WYSZUKAJ(B2; $F$2:$F$7; $E$2:$E$7)
B2 - komórka z wartością do wyszukiwania,
$F$2:$F$7 - zakres komórek, w którym będzie poszukiwana dana wartość. UWAGI: Musi być on posortowany rosnąco, do pierwszej komórki z tego zakresu (tej niby pustej) ma być wpisane: =""
$E$2:$E$7 - zakres wyników wynikowych UWAGA: OpenOffice ma problem ze znalezieniem wartości w takiej pustej komórce, zobacz wiersz 8 na powyższym zdjęciu. Komórka B8 jest pusta i formuła z komórki C8 zwraca błąd - brak danych (w komórce B7 jest wpisane ="").
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
Re: formułka: jeżeli -> to, jeżeli -> tamto
Dzięki za podpowiedzi. Sorki, że teraz odpisuję, ale byłem w szpitalu.
Wykorzystałem pomoc Refkusa i ostatecznie moja formułka "na brudno" wygląda tak
Cn - kolumna kategorii rabatowych
Kn - kolumna z rabatami
Rabaty wymyśliłem na szybko, żeby sprawdzić czy działa.
Później przeniosę to do oryginalnego cennika i z prawdziwymi rabatami.
Jeszcze raz dzięki za pomoc.
Wykorzystałem pomoc Refkusa i ostatecznie moja formułka "na brudno" wygląda tak
gdzie Bn - kolumna cen katalogowych=B2-B2*(JEŻELI(C2="a";$K$1;JEŻELI(C2="b";$K$2;JEŻELI(C2="c";$K$3;(JEŻELI(C2="d";$K$4;(JEŻELI(C2="e";$K$5;(JEŻELI(C2="";$K$6))))))))))
Cn - kolumna kategorii rabatowych
Kn - kolumna z rabatami
Rabaty wymyśliłem na szybko, żeby sprawdzić czy działa.
Później przeniosę to do oryginalnego cennika i z prawdziwymi rabatami.
Jeszcze raz dzięki za pomoc.
- Załączniki
-
- jeżeli.png (42.09 KiB) Przejrzano 7244 razy
LibreOffice Wersja: 7.2.5.2, Win 10 Home x64
Re: formułka: jeżeli -> to, jeżeli -> tamto
Wybrałeś najbardziej pracochłonną, wężową formułę. Co będzie jeśli dojdzie jakiś nowy rabat? Poprawienie w przyszłości tej formuły może być nieco kłopotliwe.
Dlatego osobiście polecałbym sposób przedstawiony przez Jermora. Pozbywając się funkcji JEŻELI.BŁĄD i dostosowując ją do twojego ostatniego obrazu wystarczyła by taka formuła:
W tak sformułowanej funkcji WYSZUKAJ.PIONOWO nie musisz dbać aby tabela rabatów (J1:K6) była posortowana rosnąco - w przeciwieństwie do proponowanej przeze mnie nieco wcześniej funkcji WYSZUKAJ.
Dlatego osobiście polecałbym sposób przedstawiony przez Jermora. Pozbywając się funkcji JEŻELI.BŁĄD i dostosowując ją do twojego ostatniego obrazu wystarczyła by taka formuła:
Kod: Zaznacz cały
=B2*(1- WYSZUKAJ.PIONOWO(JEŻELI(C2=""; "puste"; C2); $J$1:$K$6; 2; 0))
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
Re: formułka: jeżeli -> to, jeżeli -> tamto
Tak naprawdę nie wykorzystałeś podpowiedzi @Rafkus-a.
Problem skomplikowałeś sobie przez utworzenie bardzo złożonej formuły JEŻELI(). Napisałem już wcześniej, że każdy sposób obliczenia, dający poprawny wynik jest do zaakceptowania, ale...
W twoim sposobie nie masz "łatwości" zarządzania rabatami. Gdy zechcesz dodać nową kategorię rabatów musisz przerobić całą formułę i powielić ją w całym zakresie obliczeń.
Twój wzór na cenę po rabacie, to: cena-cena*rabat, czyli po wyłączeniu stałego czynnika przed nawias: cena*(1-rabat). Zadaniem zatem jest wyodrębnienie rabatu z tabeli rabatów.
Najlepiej do tego nadają się funkcje WYSZUKAJ() i WYSZUKAJ.PIONOWO(). Funkcja WYSZUKAJ() wykorzystuje dwa jednowymiarowe wektory z danymi. Pierwszy zawiera listę szukanych elementów, drugi, który może być w innym miejscu arkusza, zawiera wartości przyporządkowane pozycjom pierwszego wektora. Każdy z tych wektorów może być inaczej zorganizowany, np. pierwszy przedstawia dane w kolumnie, a drugi odpowiadające wartości w wierszu. Obowiązującą zasadą jest to, że oba wektory muszą mieć po tyle samo elementów oraz to, że dane w pierwszym wektorze muszą być uporządkowane rosnąco. Warto poczytać sobie o działaniu tej funkcji w helpie.
Kategorie a, b, c itd. to w istocie dane ułożone narastająco. Problemem jest u ciebie kategoria "puste", czyli sytuacja, gdy w kolumnie C nic nie zostanie wpisane. Łatwo się domyślić, że pozycja "puste" powinna występować przed pierwszą kategorią ("a") tylko, że pozostawienie w tabeli rabatów pustej komórki spowoduje błąd wyniku (#N/D). Dlatego w pierwszą pozycji w tabeli rabatów (kolumna J) należy wpisać formułę ="". W efekcie kolumna J powinna zawierać wpisy ="", a, b, c, d, e. A kolumna K odpowiednie rabaty przypisane do tych kategorii.
Teraz cała formuła dla twojego zadania wyglądać będzie tak:
Jeśli zechcesz zwiększyć ilość kategorii rabatowych możesz powiększyć obszar tabeli rabatów bez zmian w formułach.
Problem skomplikowałeś sobie przez utworzenie bardzo złożonej formuły JEŻELI(). Napisałem już wcześniej, że każdy sposób obliczenia, dający poprawny wynik jest do zaakceptowania, ale...
W twoim sposobie nie masz "łatwości" zarządzania rabatami. Gdy zechcesz dodać nową kategorię rabatów musisz przerobić całą formułę i powielić ją w całym zakresie obliczeń.
Twój wzór na cenę po rabacie, to: cena-cena*rabat, czyli po wyłączeniu stałego czynnika przed nawias: cena*(1-rabat). Zadaniem zatem jest wyodrębnienie rabatu z tabeli rabatów.
Najlepiej do tego nadają się funkcje WYSZUKAJ() i WYSZUKAJ.PIONOWO(). Funkcja WYSZUKAJ() wykorzystuje dwa jednowymiarowe wektory z danymi. Pierwszy zawiera listę szukanych elementów, drugi, który może być w innym miejscu arkusza, zawiera wartości przyporządkowane pozycjom pierwszego wektora. Każdy z tych wektorów może być inaczej zorganizowany, np. pierwszy przedstawia dane w kolumnie, a drugi odpowiadające wartości w wierszu. Obowiązującą zasadą jest to, że oba wektory muszą mieć po tyle samo elementów oraz to, że dane w pierwszym wektorze muszą być uporządkowane rosnąco. Warto poczytać sobie o działaniu tej funkcji w helpie.
Kategorie a, b, c itd. to w istocie dane ułożone narastająco. Problemem jest u ciebie kategoria "puste", czyli sytuacja, gdy w kolumnie C nic nie zostanie wpisane. Łatwo się domyślić, że pozycja "puste" powinna występować przed pierwszą kategorią ("a") tylko, że pozostawienie w tabeli rabatów pustej komórki spowoduje błąd wyniku (#N/D). Dlatego w pierwszą pozycji w tabeli rabatów (kolumna J) należy wpisać formułę ="". W efekcie kolumna J powinna zawierać wpisy ="", a, b, c, d, e. A kolumna K odpowiednie rabaty przypisane do tych kategorii.
Teraz cała formuła dla twojego zadania wyglądać będzie tak:
Kod: Zaznacz cały
=B2*(1-WYSZUKAJ(B2;$J$1:$J$6;$K$1:$K$6)
AOO 4.1.15, LO 24.8.2 (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: formułka: jeżeli -> to, jeżeli -> tamto
Jeszcze uwaga, dotycząca tej złożonej konstrukcji JEŻELI().
Zamiast tego galimatiasu, możesz wykorzystać funkcję PRZEŁĄCZ() (tylko w LibreOffice), w taki sposób:
Tu także gdy zmienią się warunki należy przerabiać formułę, ale wygląda lepiej niż JEŻELI().
Zamiast tego galimatiasu, możesz wykorzystać funkcję PRZEŁĄCZ() (tylko w LibreOffice), w taki sposób:
Kod: Zaznacz cały
=B2*(1-PRZEŁĄCZ(C2;"a";0,2;"b";0,1;"c";0,15;"d";0,3;"e";0,25;"";0,3))
AOO 4.1.15, LO 24.8.2 (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: formułka: jeżeli -> to, jeżeli -> tamto
Macie racje że dużo tego pisania było. Ale wydawało mi się najbardziej zrozumiałym dla mnie rozwiązaniem. Dlatego go użyłem
Bardzo fajny skrót, ale z błędem ;p Już go sobie naprawiłem.
No i co z wartością pustą? ""
Co do nowych kategorii, to raczej nie będzie. Ale nigdy nic nie wiadomo
LibreOffice Wersja: 7.2.5.2, Win 10 Home x64
Re: formułka: jeżeli -> to, jeżeli -> tamto
Nieco wcześniej napisałem:Druidamus pisze:No i co z wartością pustą? ""
Jak działa funkcja WYSZUKAJ.PIONOWO:Rafkus pisze: ↑śr maja 11, 2022 10:20 amKod: Zaznacz cały
=B2*(1- WYSZUKAJ.PIONOWO(JEŻELI(C2=""; "puste"; C2); $J$1:$K$6; 2; 0))
W tabeli rabatów $J$1:$K$6, w pierwszej kolumnie (czyli pionowo) ma znaleźć dokładną wartość (parametr 0) z komórki C2 lub jeżeli w niej nic nie ma - ma zaleźć wartość "puste" . Dla znalezionej wartości jako wynik ma być podany wynik z 2 kolumny tabeli rabatów.
Pozostając przy funkcji Wyszukaj, to można tak:
Kod: Zaznacz cały
=B2*(1-WYSZUKAJ(JEŻELI(C2=""; "puste"; C2); $J$1:$J$6; $K$1:$K$6)
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
Re: formułka: jeżeli -> to, jeżeli -> tamto
Nie rozumiem pytania.
W tabelce kategorii, w komórce J1, należy wpisać ="". Trzeba wpisać treść zaczynając od znaku =, aby Calc przyjął, że wpisujemy formułę z pustym ciągiem. Wpisanie bezpośrednio "" (czyli dwóch następujących po sobie znaków cudzysłowu) oznacza wpisanie ciągu tekstowego złożonego z tych dwóch znaków, czyli nie jest to odpowiednik pustej komórki.
Trzeba też zdawać sobie sprawę z konsekwencji utworzenia pierwszego wektora nieułożonego w kolejności narastającej. Funkcja nie sprawdza tego, czy dane są faktycznie posortowane, lecz działa tak jakby one były tak posortowane. To oznacza, że wyszukując wartość zatrzyma się na najbliższej znalezionej poniżej. Przykład. Przeszukiwany wektor ma wpisy ułożone tak: a, b, e, c, d. Wyszukiwana jest wartość "c". Funkcja po sprawdzeniu, czy to "b" stwierdza, że następna zawartość "e" jest większa od poszukiwanego "c", więc zwraca odpowiednik "b", bo to on jest położony najbliżej poniżej. Ta funkcja nie odróżni też sytuacji błędnych polegających na omyłkowym wpisaniu kategorii w postaci np. "axx" (stwierdzi, że "axx" jest mniejsze od "b", więc zwróci dane dla "a") albo "x" ("x" jest większe od ostatniego wpisu "d", więc zwróci dane odpowiadające "d").
Inaczej zadziała funkcja WYSZUKAJ.PIONOWO() jeśli jej czwartym parametrem będzie 0. Przeszukując pierwszą kolumnę, zaakceptuje dane, które będą całkowicie pasujące. Kategorie nie muszą występować w ustalonym porządku. Wartości, których nie da się dopasować zostaną zasygnalizowane jako błąd. Pozwoli to, wykorzystując funkcję JEŻELI.BŁĄD() utworzyć formułę informującą o błędnie wpisanym kodzie kategorii.
Kod: Zaznacz cały
=JEŻELI.BŁĄD(A9*(1-WYSZUKAJ.PIONOWO(B9;$G$1:$H$6;2;0));"Błąd kategorii")
AOO 4.1.15, LO 24.8.2 (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: formułka: jeżeli -> to, jeżeli -> tamto
W tabeli kategorii rabatów są pozycje bez kategorii rabatowej ze stałym rabatem 30%. Nie jest to błędem kategorii, ale celowym działaniem osoby piszącej cennik.
Wpisałem różne opcje (załącznik) i wyskakuje błąd obliczenia
- Załączniki
-
- pusta3.png (19.66 KiB) Przejrzano 7189 razy
-
- pusta2.png (21.55 KiB) Przejrzano 7189 razy
-
- pusta.png (20.21 KiB) Przejrzano 7189 razy
LibreOffice Wersja: 7.2.5.2, Win 10 Home x64
Re: formułka: jeżeli -> to, jeżeli -> tamto
Napisałem ci o tym, że kategorie musisz ustawić w kolejności ich kodów od najmniejszego do największego.
W tej liście kategorii "najmniejszym" kodem jest ciąg pusty. Musi on w twojej tabeli kodów zostać wpisany na pierwszym miejscu, czyli w J1 musisz wpisać ="" (znak równości i dwa cudzysłowy) i nacisnąć ENTER. Od J2 wpisujesz litery a, b, c itd. W kolumnie C pole kategorii pozostawiasz puste, jeśli takie ma być.
W ilustracjach:
Na pierwszej, kod kategorii "pusta" znajduje się na końcu listy, z punktu widzenia funkcji WYSZUKAJ() na końcu znajduje się największa wartość. Zatem gdy funkcja próbuje znaleźć na liście ciąg pusty, ta jako pierwszą pozycję znajduje literę "a". Jej kod jest większy niż ciąg pusty, więc zgodnie z tym co napisałem wcześniej, w objaśnieniu funkcji, zwrócony ma być kod pozycji najbliższej poniżej. Litera "a" jest jednak pierwszą pozycją w tym wektorze zatem nie ma pozycji niższej. Stąd wynik #N/D.
W trzecim przykładzie do J6 wpisałeś po prostu dwa cudzysłowy i one jako ciąg znakowy stały się poszukiwanym kodem rabatowym.
Rozwiązanie podsyłam.
W tej liście kategorii "najmniejszym" kodem jest ciąg pusty. Musi on w twojej tabeli kodów zostać wpisany na pierwszym miejscu, czyli w J1 musisz wpisać ="" (znak równości i dwa cudzysłowy) i nacisnąć ENTER. Od J2 wpisujesz litery a, b, c itd. W kolumnie C pole kategorii pozostawiasz puste, jeśli takie ma być.
W ilustracjach:
Na pierwszej, kod kategorii "pusta" znajduje się na końcu listy, z punktu widzenia funkcji WYSZUKAJ() na końcu znajduje się największa wartość. Zatem gdy funkcja próbuje znaleźć na liście ciąg pusty, ta jako pierwszą pozycję znajduje literę "a". Jej kod jest większy niż ciąg pusty, więc zgodnie z tym co napisałem wcześniej, w objaśnieniu funkcji, zwrócony ma być kod pozycji najbliższej poniżej. Litera "a" jest jednak pierwszą pozycją w tym wektorze zatem nie ma pozycji niższej. Stąd wynik #N/D.
W trzecim przykładzie do J6 wpisałeś po prostu dwa cudzysłowy i one jako ciąg znakowy stały się poszukiwanym kodem rabatowym.
Rozwiązanie podsyłam.
- Załączniki
-
- rabaty.ods
- (13.51 KiB) Pobrany 129 razy
AOO 4.1.15, LO 24.8.2 (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: formułka: jeżeli -> to, jeżeli -> tamto
Jermor pisze: ↑śr maja 11, 2022 5:33 pm Napisałem ci o tym, że kategorie musisz ustawić w kolejności ich kodów od najmniejszego do największego.
W tej liście kategorii "najmniejszym" kodem jest ciąg pusty. Musi on w twojej tabeli kodów zostać wpisany na pierwszym miejscu, czyli w J1 musisz wpisać ="" (znak równości i dwa cudzysłowy) i nacisnąć ENTER. Od J2 wpisujesz litery a, b, c itd. W kolumnie C pole kategorii pozostawiasz puste, jeśli takie ma być.
W ilustracjach:
Na pierwszej, kod kategorii "pusta" znajduje się na końcu listy, z punktu widzenia funkcji WYSZUKAJ() na końcu znajduje się największa wartość. Zatem gdy funkcja próbuje znaleźć na liście ciąg pusty, ta jako pierwszą pozycję znajduje literę "a". Jej kod jest większy niż ciąg pusty, więc zgodnie z tym co napisałem wcześniej, w objaśnieniu funkcji, zwrócony ma być kod pozycji najbliższej poniżej. Litera "a" jest jednak pierwszą pozycją w tym wektorze zatem nie ma pozycji niższej. Stąd wynik #N/D.
W trzecim przykładzie do J6 wpisałeś po prostu dwa cudzysłowy i one jako ciąg znakowy stały się poszukiwanym kodem rabatowym.
Rozwiązanie podsyłam.
Nie bardzo zrozumiałem o co chodzi z tym "najmniejszy największy". Pierwsze co mi przyszło do głowy to nie kategorie rabatowe, ale same procentowe rabaty. Dlatego nie ogarnąłem tego równania.
Dzięki za pomoc i plik.
Zamykam temat.
LibreOffice Wersja: 7.2.5.2, Win 10 Home x64