Dodanie warunku dla dzielenia wartości
-
- Posty: 5
- Rejestracja: pt sty 29, 2021 1:11 am
Dodanie warunku dla dzielenia wartości
Dobry wieczór,
popełniłem kalkulator wspierający w ustawieniach danych dla jednej z gier internetowych.
Wybieramy z listy wartość tekstową, i odpowiednia wartość liczbowa jest dodawana/odejmowana od wartości z poprzedniego wiersza.
Chciałem się dowiedzieć czy jest możliwe takie zmodyfikowanie formuły, by w przypadku wybrania kolejny raz tego samego komentarza, jego wartość była dzielona przez ilość wystąpień. Inaczej, wartości liczbowe będą się powtarzać. Czyli jeśli komentarz 'The car could have a bit more speed in the straights' pojawił się drugi raz, to zamiast odejmować ponownie 64, należało by odjąć 32. A jeśli pojawi się trzeci raz (co nie powinno mieć miejsca) to odejmowaneby było 16 (połowa z 32).
Będę wdzięczny za pomoc.
popełniłem kalkulator wspierający w ustawieniach danych dla jednej z gier internetowych.
Wybieramy z listy wartość tekstową, i odpowiednia wartość liczbowa jest dodawana/odejmowana od wartości z poprzedniego wiersza.
Chciałem się dowiedzieć czy jest możliwe takie zmodyfikowanie formuły, by w przypadku wybrania kolejny raz tego samego komentarza, jego wartość była dzielona przez ilość wystąpień. Inaczej, wartości liczbowe będą się powtarzać. Czyli jeśli komentarz 'The car could have a bit more speed in the straights' pojawił się drugi raz, to zamiast odejmować ponownie 64, należało by odjąć 32. A jeśli pojawi się trzeci raz (co nie powinno mieć miejsca) to odejmowaneby było 16 (połowa z 32).
Będę wdzięczny za pomoc.
- Załączniki
-
- gproKalkulator.ods
- (18.23 KiB) Pobrany 150 razy
LibreOffice 7.0.4 na Windows 7
Re: Dodanie warunku dla dzielenia wartości
Zamiast odejmować (czy dodawać, bo w cenniku masz wartości ujemne) wielkość z tabeli, podziel ją przez liczbę zależną od wystąpień danego tekstu w kolumnie nad nim. Konkretnie przez 2^(liczba wystąpień). Funkcja licz.jeżeli (countif) jest w stanie wykonać takie zliczenie.
= (poprzednia wartość) + (wartość z cennika) / 2^(licz.jeżeli(obszar powyżej; bieżący komunikat))
(obszar powyżej) powinien być opisany tak, by automatycznie się wydłużał wraz z propagacją formuły w dół. Czyli w komórkach B, C wiersza 3 powinien mieć postać D$2:D2 – adres mieszany, którego górny koniec jest niezmienny, a dolny jest sytuowany o 1 wyżej od bieżącego wpisu.
= (poprzednia wartość) + (wartość z cennika) / 2^(licz.jeżeli(obszar powyżej; bieżący komunikat))
(obszar powyżej) powinien być opisany tak, by automatycznie się wydłużał wraz z propagacją formuły w dół. Czyli w komórkach B, C wiersza 3 powinien mieć postać D$2:D2 – adres mieszany, którego górny koniec jest niezmienny, a dolny jest sytuowany o 1 wyżej od bieżącego wpisu.
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)
-
- Posty: 5
- Rejestracja: pt sty 29, 2021 1:11 am
Re: Dodanie warunku dla dzielenia wartości
Wielkie dzięki. Zdaje się, że działa
LibreOffice 7.0.4 na Windows 7
-
- Posty: 5
- Rejestracja: pt sty 29, 2021 1:11 am
Re: Dodanie warunku dla dzielenia wartości
@Jan_J, jednak nie działa prawidłowo. Albo nie zrozumiałem propozycji rozwiązania.
Jeżeli nie ma wpisanego komentarza w danej linii, to dodaje wartość prawidłowo.
Ale jeśli dodam komentarz, to wartość w tej komórce się zmienia, a nie powinna.
Przed wybraniem komentarza
Po wybraniu komentarza
Jeżeli nie ma wpisanego komentarza w danej linii, to dodaje wartość prawidłowo.
Ale jeśli dodam komentarz, to wartość w tej komórce się zmienia, a nie powinna.
Przed wybraniem komentarza
Po wybraniu komentarza
LibreOffice 7.0.4 na Windows 7
Re: Dodanie warunku dla dzielenia wartości
Pokaż swoją formułę albo lepiej załącz przykładowy skoroszyt.
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)
Re: Dodanie warunku dla dzielenia wartości
Jan_J podał ci dobry sposób. Musiałeś coś zrobić nie tak.
Podsyłam ci przerobiony plik. W proponowanej przez @Jan_J formule dodałem wykorzystanie funkcji JEŻELI.BŁĄD() po to, by uniknąć wyników błędu #N/D.
Podsyłam ci przerobiony plik. W proponowanej przez @Jan_J formule dodałem wykorzystanie funkcji JEŻELI.BŁĄD() po to, by uniknąć wyników błędu #N/D.
- Załączniki
-
- gproKalkulator (1).ods
- (16.83 KiB) Pobrany 144 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.
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: Dodanie warunku dla dzielenia wartości
Problemem mogą być puste rubryki w kolumnie komentarzy. Sądzę, że pusty komentarz należałoby traktować za każdem razem jako nowy.
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)
-
- Posty: 5
- Rejestracja: pt sty 29, 2021 1:11 am
Re: Dodanie warunku dla dzielenia wartości
Przesyłam formularz z wprowadzoną formułą (zakładka Setup_2).
- Załączniki
-
- gproKalkulator.ods
- (18.38 KiB) Pobrany 140 razy
LibreOffice 7.0.4 na Windows 7
Re: Dodanie warunku dla dzielenia wartości
Ponieważ i ja i Jan_J odpowiadaliśmy na twój post, to teraz nie wiem czego dotyczy ten powyżej i do kogo jest skierowany.
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: Dodanie warunku dla dzielenia wartości
Używasz formuły (w komórce C3)
Komunikat będący podstawą wyszukiwania w cenniku znajduje się w komórce E2 — bo VLOOKUP(E2;$Dane.B$6:C$12;2;0).
Jednocześnie krotność wystąpienia komunikatu obliczasz dla E3 — bo COUNTIF(E$2:E2;E3).
To nie może działać dobrze.
Sugeruję
(-1) dlatego, że w obszarze podlegającym zliczaniu znajduje się także komórka, której wartość zliczasz.
Możesz także w wykładniku napisać COUNTIF(E$1:E1;E2) przy założeniu, że żaden sensowny komunikat nie brzmi tak, jak nagłówek w E1.
Mam nadzieję, że to wystarczy. Problem mogą sprawiać puste rubryki w kolumnie komunikatów, o ile reguły gry dopuszczają brak komunikatu. Przykład nie rozstrzyga, ale Twoje wyszukiwanie daje wtedy błąd.
Kod: Zaznacz cały
=C2+VLOOKUP(E2;$Dane.B$6:C$12;2;0)/2^(COUNTIF(E$2:E2;E3))
Jednocześnie krotność wystąpienia komunikatu obliczasz dla E3 — bo COUNTIF(E$2:E2;E3).
To nie może działać dobrze.
Sugeruję
Kod: Zaznacz cały
=C2+VLOOKUP(E2;$Dane.B$6:C$12;2;0)/2^(COUNTIF(E$2:E2;E2)-1)
Możesz także w wykładniku napisać COUNTIF(E$1:E1;E2) przy założeniu, że żaden sensowny komunikat nie brzmi tak, jak nagłówek w E1.
Mam nadzieję, że to wystarczy. Problem mogą sprawiać puste rubryki w kolumnie komunikatów, o ile reguły gry dopuszczają brak komunikatu. Przykład nie rozstrzyga, ale Twoje wyszukiwanie daje wtedy błąd.
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)
-
- Posty: 5
- Rejestracja: pt sty 29, 2021 1:11 am
Re: Dodanie warunku dla dzielenia wartości
Wielkie dzięki.
Dodałem jednak formułę z -1,
Co do
Dodałem jednak formułę z -1,
od razu dodawało połowę wartości z Danych w komórce E3. I nie wiem czym to mogło być spowodowane gdyż słowa Komentarz czy nazwa elementu nie występują w wybieranych komentarzach (są przecież po angielsku).Jan_J pisze:Możesz także w wykładniku napisać COUNTIF(E$1:E1;E2) przy założeniu, że żaden sensowny komunikat nie brzmi tak, jak nagłówek w E1.
Co do
, zawsze jest jakiś komentarz (wartość Satisfied). I właśnie z tego powodu szukałem rozwinięcia formuły, bo właśnie ten komentarz może się powtarzać najczęściej i następowało zapętlenie wartości.Jan_J pisze:Problem mogą sprawiać puste rubryki w kolumnie komunikatów, o ile reguły gry dopuszczają brak komunikatu.
LibreOffice 7.0.4 na Windows 7