Strona 1 z 1

Pole wyboru oraz liczenie formułą w zależności od opcji

: pt gru 14, 2012 9:48 pm
autor: Paweł Poz
Witam!
Chciałbym stworzyć formułę obliczającą wynagrodzenie pracownika.
Problem polega na tym, że mam 3 różne grupy wynagrodzeń.
Chciałbym, aby pole po nazwisku było polem wyboru (lista zamknięta np. opcja A, B, C) i w zależności od wybranej opcji aby w innym polu dane zliczały się wg. różnych formuł (np. w opcji A, liczą się godziny pracownika razy 10zł, w opcji B 20zł itp).
Ktoś jest w stanie mi pomóc? :?

Re: Pole wyboru oraz liczenie formułą w zależności od opcji

: pt gru 14, 2012 11:34 pm
autor: Jan_J
W sprawie list wyboru: patrz http://forum.openoffice.org/pl/forum/vi ... f=9&t=1510 -- lista wyboru z wartościami zdefiniowanymi w warunkach poprawności komórki/obszaru; kilka wariantów
W sprawie dopasowania formuły: najprościej z warunkiem =jeżeli()

Re: Pole wyboru oraz liczenie formułą w zależności od opcji

: sob gru 15, 2012 8:07 pm
autor: Paweł Poz
Wielkie dzięki za odpowiedź.
Mam tylko problem z tym jeżeli :crazy:
Tzn. nie stanowi dla mnie problemu wpisanie formuły gdy mam do rozróżnienia jedynie dwa warianty. Ale ja chciałbym wpisać tych wariantów przynajmniej 4...

Re: Pole wyboru oraz liczenie formułą w zależności od opcji

: sob gru 15, 2012 8:22 pm
autor: Jan_J
Używając wbudowanych funkcji możesz zagnieżdżać funkcję warunkową:
=jeżeli(test1; wartość1; jeżeli(test2; wartość2; ...))
albo
=jeżeli(test1; jeżeli(test11; ...; ...); jeżeli(test21; ...; ...))

Jak widać, brakuje operacji switch / case.

Jeżeli napiszesz sobie w Basicu (Narzędzia/Makra/Basic) funkcję postaci

Kod: Zaznacz cały

function nazwamojejfunkcji(argument1, argument2) as double
  rem tu dowolny kod Basica w czystym języku, bez odwołań API
  nazwamojejfunkcji = wartoscwynikowa
end function
to możesz jej użyć w formule.

Na przykład

Kod: Zaznacz cały

function tescik1(a as double, b as integer) as double
  rem a^b dla a >=0; w przeciwnym razie a
  if a >= 0.0 then
    tescik1 = a^b
  else
    tescik1 = a
  endif 
end function

function tescik2(a as double, b as integer) as double
  rem a^b dla a >=0; w przeciwnym razie a
  select case a
  case >= 0
    tescik2 = a^b
  case < 0
    tescik2 = a
  end select
end function
użyjesz jej po prostu =tescik1(1;2) albo =tescik1(a1;b3).

Szczegóły: http://wiki.openoffice.org/wiki/Documen ... /Branching

Re: Pole wyboru oraz liczenie formułą w zależności od opcji

: sob gru 15, 2012 10:34 pm
autor: Paweł Poz
Działa!! :D
Nawet takiemu humaniście jak mi :-)
Wielkie dzięki!

Re: Pole wyboru oraz liczenie formułą w zależności od opcji

: czw maja 16, 2013 4:49 pm
autor: nobody13
Widzę, że nie tylko ja mam takie problemy. Dzięki za podpowiedź :)