OO Calc - funkcje

Nie wiesz, gdzie umieścić swój post? Pisz tutaj!

OO Calc - funkcje

Postprzez PrzemoBoss » Pn sie 19, 2013 10:51 am

Witam Was bardzo serdecznie,


jestem laikiem w tej dziedzinie, w związku z czym proszę Was o pomoc.

W arkuszu OO Calc zrobiłem tabelkę z wierszami A,B oraz kolumnami 1,2,3. Dla A/1 wartość 5, A/2 wartość 3, A/3 wartość 2. Dla B tak samo jak dla A, czyli B/1 wartość 5, B/2 wartość 3, B/3 wartość 2

W drugim arkuszu stworzyłem menu rozwijane z liczbami A,B i obok menu rozwijane z cyframi 1,2,3. Trzecia kolumna stanowi zmienną wartość np. 100 a czwarta kolumna wynik końcowy.

W jaki sposób i czy jest w ogóle to możliwe by:

- z menu rozwijanego wybrać B oraz 2 (razem dadzą wartość "3" zgodnie z pierwszym arkuszem) i po wpisaniu wartości np. 100, wyjdzie wynik 300

Jest to coś w stylu, jeśli literę B i cyfrę 2 pomnożymy razy 100 to da nam wynik końcowy. W tym przypadku 3x100 = 300

Męczę się z tym kilka godzin i niestety nie potrafię tego rozbić. Może dlatego, że nie mam matematycznego umysłu.

Bardzo dziękuję za odpowiedzi,

przyjemności życzę,
Przemek.
OpenOffice 3.1 na Windows 7
PrzemoBoss
 
Posty: 4
Dołączył(a): Pn sie 19, 2013 10:34 am

Re: OO Calc - funkcje

Postprzez Minio » Pn sie 19, 2013 11:27 am

Potrzebujesz funkcji PRZESUNIĘCIE i PODAJ.POZYCJĘ.

Pierwsza z nich zwraca wartość komórki oddalonej o X wierszy i Y kolumn od określonej komórki.
Z kolei druga podaje relatywne umiejscowienie danej wartości w zakresie. Tak więc jeżeli wartość „ogórek” znajduje się w komórce C4, a Ty każesz funkcji PODAJ.POZYCJĘ szukać ogórka w zakresie C4:C10, to zwróci ona wartość 1 (ponieważ ogórek jest pierwszą pozycją w przeszukiwanym zakresie).

Formuła ogólna przyjmuje więc postać:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
=PRZESUNIĘCIE(Arkusz1.$A$1;PODAJ.POZYCJĘ(B1;Arkusz1.A2:A4;0);PODAJ.POZYCJĘ(A1;Arkusz1.B1:C1;0))

(przy założeniu, że Twoja tabela rzeczywiście ma etykiety, a więc kolumna zatytułowana „A” naprawdę znajduje się w kolumnie B; ponieważ kolumna A arkusza jest zarezerwowana na etykiety wierszy)

W Twoim konkretnym przypadku możemy zrezygnować z dynamicznego tworzenia drugiego argumentu funkcji PRZESUNIĘCIE. Ponieważ pierwszy wiersz ma numer 1, drugi nr 2 etc., formuła:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
PODAJ.POZYCJĘ(B1;Arkusz1.A2:A4;0)

tak naprawdę zwróci wartość B1. Możemy więc ją od razu podać naszej funkcji:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
=PRZESUNIĘCIE(Arkusz1.$A$1;B1;PODAJ.POZYCJĘ(A1;Arkusz1.B1:C1;0))


Ostatnim krokiem jest przemnożenie zwróconego wyniku przez wartość komórki, w której wpisujesz swoją liczbę (100).

Zobacz też załączony arkusz.
Załączniki
przesuniecie.ods
arkusz z przykładami
(12.42 KiB) Pobrane 203 razy
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
Minio
 
Posty: 323
Dołączył(a): Śr sie 01, 2012 1:48 am
Lokalizacja: (Poznań|Dziwnów), Polska

Re: OO Calc - funkcje

Postprzez PrzemoBoss » Pn sie 19, 2013 1:33 pm

Witam,


dziękuję bardzo za poradę. Spróbowałem zrobić tak jak Pan mi napisał. Chyba popełniłem błąd, ponieważ wynik 0 mam ;/

Proszę o wskazówkę jak mam to zrobić.

Dziękuję bardzo
Pozdrawiam,
Przemek
Załączniki
Co teraz.ods
(8.15 KiB) Pobrane 109 razy
OpenOffice 3.1 na Windows 7
PrzemoBoss
 
Posty: 4
Dołączył(a): Pn sie 19, 2013 10:34 am

Re: OO Calc - funkcje

Postprzez Minio » Pn sie 19, 2013 2:27 pm

Komórka, względem której odczytujesz wartość w funkcji PRZESUNIĘCIE, się — nomen omen — przesunęła.
Twoja formuła wygląda tak:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
=PRZESUNIĘCIE(Dane.$B$10;PODAJ.POZYCJĘ(D5;Dane.C4:E4;0);PODAJ.POZYCJĘ(B5;Dane.B5:B6;0))

Co arkusz interpretuje jako:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
=PRZESUNIĘCIE(Dane.$B$10;1;2)

Czyli arkusz odczytuje wartość z komórki oddalonej o 1 wiersz w dół i 2 kolumny w prawo; lub, innymi słowy, wartość komórki D11. Rzecz w tym, że ta komórka jest pusta.

Po prostu zmień pierwszy argument funkcji na Dane.$B$4 (gdyż tam znajduje się lewy górny róg Twojej tabeli). Będzie działać.

Poza tym pomieszałeś kolejność argumentów. Najpierw podajesz przesunięcie o wiersze, a potem o kolumny. Zwyczajnie zamień miejscami funkcje PODAJ.POZYCJĘ.
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
Minio
 
Posty: 323
Dołączył(a): Śr sie 01, 2012 1:48 am
Lokalizacja: (Poznań|Dziwnów), Polska

Re: OO Calc - funkcje

Postprzez PrzemoBoss » Pn sie 19, 2013 2:55 pm

Dziękuję działa :-)


Teraz chciałbym zrobić sumę wyników. Robię sobie tabelkę, w której naprzemiennie wpisuję dane Łukasza i Michała, ale chciałbym aby w jednym okienku wyskoczyła mi suma wszystkich kwot dotyczących Łukasza. Czy jest to możliwe?

Łukasz - Gruszka - 100
Łukasz- Śliwka - 200
Łukasz- Jabłko - 100

W osobnym okienku czyta, że z menu rozwijanego Łukasz to jest w sumie 400.

Dziękuję za kolejną wskazówkę,
przyjemności w dniu dzisiejszym.
Przemek
OpenOffice 3.1 na Windows 7
PrzemoBoss
 
Posty: 4
Dołączył(a): Pn sie 19, 2013 10:34 am

Re: OO Calc - funkcje

Postprzez Minio » Pn sie 19, 2013 3:34 pm

Przy takiej strukturze jak miałeś dotychczas:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
   jabłko   gruszka   śliwki
Łukasz   12   5   4
Michał   6   8   6
Łukasz   4   3   7

będzie ciężko. Tu już są potrzebne formuły macierzowe, a to dość zaawansowana część pakietu.

Natomiast na strukturze takiej jak przedstawiłeś w powyższym poście:
Kod: Zaznacz cały   Rozszerz widokZwiń widok
kto   co   ile
Michał   jabłka   4
Łukasz   gruszki   5
Michał   gruszki   7
Michał   śliwki   1
Łukasz   jabłka   8

Potrzebna Ci będzie funkcja SUMA.JEŻELI.

Możesz też agregować wyniki przy pomocy sum częściowych (artykuł jutro na moim blogu — patrz podpis) albo tabeli przestawnej. Oszczędność czasu jest zauważalna zwłaszcza przy porównywaniu danych (np. ile sztuk każdego z owoców ma każdy z chłopców?). Można to samo zrobić formułami, ale będzie męczące i pracochłonne.
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
Minio
 
Posty: 323
Dołączył(a): Śr sie 01, 2012 1:48 am
Lokalizacja: (Poznań|Dziwnów), Polska

Re: OO Calc - funkcje

Postprzez PrzemoBoss » Pn sie 19, 2013 3:39 pm

Ok,

czekam z niecierpliwością na artykuł. Jeszcze raz dziękuję.

Pozdrawiam,
Przemek
OpenOffice 3.1 na Windows 7
PrzemoBoss
 
Posty: 4
Dołączył(a): Pn sie 19, 2013 10:34 am


Powrót do Forum pierwszego kontaktu

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości