[Libreoffice] Funkcja JEŻELI i wynik powiązany z arkuszami

Użytkowanie arkusza kalkulacyjnego
qbass
Posty: 20
Rejestracja: pt kwie 15, 2016 12:06 pm

[Libreoffice] Funkcja JEŻELI i wynik powiązany z arkuszami

Post autor: qbass »

Mam plik, w którym mam kilka skoroszytów. Załóżmy Arkusz 1, Arkusz 2 i Arkusz 3.
Pierwszy Arkusz to puste wierze w kolumnach Kod, Cena, Nazwa, Parametr.
W kolejnych dwóch 4 kolumny wypełnione danymi: Kod, Cena, Nazwa, Parametr.

Mam w nich już jedną funkcję, która po wpisaniu w kolumnę Kod i Cena odpowiednich danych z Arkusza 1 lub Arkusza 2, wypełnia samoistnie pole Nazwa, wyciągniętą z odpowiedniego arkusza. Próbuję ją skopiować i edytować, ale jej dostosowanie jest dla mnie zbyt trudne, a chciałbym żeby w kolejnej kolumnie (Parametr) automatycznie sczytało Parametr z Arkusza 2 lub 3 w zależności, z którego arkusza pochodziła np. Nazwa (ew. również może sprawdzać po Cenie lub Kodzie).

Mam nadzieję, że wyraziłem się w miarę jasno :) Ktoś pomoże?
Apache OpenOffice 4.1.2 na Windows
Jan_J
Posty: 4560
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: [Libreoffice] Funkcja JEŻELI i wynik powiązany z arkusza

Post autor: Jan_J »

Nie masz pliku z kilkoma skoroszytami, tylko skoroszyt z kilkoma arkuszami. Skoroszyt, czyli dokument będący kolekcją arkuszy, zapisuje się jako pojedynczy plik.

Za pomocą funkcji podaj.pozycję albo wyszukaj.pionowo jesteś w stanie znaleźć dane dotyczące wpisu o poszukowanym obiekcie. Takie przeszukanie obejmuje jedną tabelę. Możesz dostać albo szukaną wartość, albo błąd (albo, w pewnych szczególnych okolicznościach, wartość nie powiązaną bezpośrednio z poszukiwanym wpisem ...). Jakoś tak (dostaniesz numer porządkowy wpisu)

Kod: Zaznacz cały

=podaj.pozycję(wartość; zakres; 0)
albo (dostaniesz wartość z nrk-tej kolumny z zakresu)

Kod: Zaznacz cały

=wyszukaj.pionowo(wartość; zakres; nrk; 0)
Jeżeli masz dwa odrębne katalogi (co nie jest dobrym pomysłem), to możesz przeszukać drugi, jeśli w pierwszym ci się nie uda. Coś w rodzaju

Kod: Zaznacz cały

=jeżeli(czy.błąd(wyszukaj.pionowo(wartość; zakres1; nrk; 0)); wyszukaj.pionowo(wartość; zakres2; nrk; 0); wyszukaj.pionowo(wartość; zakres1; nrk; 0))
Jeżeli chcesz "ściągnąć" więcej niż jedno pole (np. nazwę i cenę), to nie wyszukuj ich osobno, tylko użyj podaj.pozycję i przesunięcie. lkol to liczba kolumn w odpowiedzi; np. 2:

Kod: Zaznacz cały

=jeżeli(czy.błąd(podaj.pozycję(wartość; zakres1; 0)); przesunięcie(zakres2; podaj.pozycję(wartość; zakres2; 0);0; 1;lkol); przesunięcie(zakres1; podaj.pozycję(wartość; zakres1; 0);0; 1;lkol))
Sprawdź help użytych w formułach funkcji. Po angielsku:
jeżeli <-> if
czy.błąd <-> iserror
podaj.pozycję <-> match
wyszukaj.pionowo <-> vlookup
przesunięcie <-> offset
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
ODPOWIEDZ