Odwołanie do innego arkusza

Użytkowanie arkusza kalkulacyjnego
bloodoks
Posty: 1
Rejestracja: czw maja 12, 2011 7:12 pm

Odwołanie do innego arkusza

Post autor: bloodoks »

Witam.

Mam nastepujace pytanie. Musze wczytac z dwoch plikow dane do arkusza i wykonac na nich dzialania. W jaki sposob to zrobic? Z wczytaniem nie ma problemu, tylko jak "utworzyc" powiazania miedzy tymi danymi? Czy bede musial robic to w sposob taki: obliczam cos w pierwszym arkuszu, kopiuje wyniki do drugiego i tam obliczam wynik koncowy? W taki sposob daloby sie to zrobic, ale na pewno istnieje mozliwosc powiazania "Sheeto'w".
Ostatnio zmieniony pt maja 13, 2011 6:00 pm przez Jan_J, łącznie zmieniany 1 raz.
Powód: Zmiana tytułu
OpenOffice 2.4 pod Ubuntu 9.04
Jan_J
Posty: 4626
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Pytanie.

Post autor: Jan_J »

Teoretycznie:
odwołanie postaci ='url_pliku'#nazwa_arkusza.adres_komórki
np.
='file:///home/ja/test.ods'#$Arkusz1.A2
='http:///www.wwww.wwwwww/mojedane/arkusze/test.ods'#$Arkusz1.A2

W praktyce: jeżeli wpiszesz do komórki = a potem wskażesz komórkę lub obszar w innym (otwartym) skoroszycie, to odpowiedni adres sam się wstawi.
JJ
LO (25.2|24.8) ∙ Python (3.12|3.10) ∙ Unicode 16 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
tomekkkz
Posty: 7
Rejestracja: wt kwie 08, 2014 12:46 pm

Re: Odwołanie do innego arkusza

Post autor: tomekkkz »

Odswieżam tamat..
Mam podobne pytanie. Potrzebuje z jednego arkusza (znajdującego się w inny pliku) wstawić dane do drugiego.
Mogę zrobić odwołanie oczywiście na sztywno do pliku, ale folder w ktorym się znajdują się pliki będzie kopiowany do innych lokacji, wiec ścieżka dostępu ulegnie zmienie i rozwiązanie to nie będzie działało.

Arkusz A jest arkuszem głownym (plik nr 1), natomiast z arkusza B (plik nr 2) pobierane są dane..i tu zaczyna się problem.
W arkusz A wpisujemy numer towaru i na podstawie tego numeru calc ma pobierac opis towaru z arkusza B (z innego pliku). Jak to zrobić.

Odwołanie na sztywno działa bez problemu, przykład:
=DDE("soffice"; "file:! Ewidencja Towaru.ods";"Ewidencja.B2")
ale wiadomo nie o to chodzi.

Probowałem takiej formuły:
=DDE("soffice"; "file:! Ewidencja Towaru.ods";"=WYSZUKAJ.PIONOWO(B55;Ewidencja.B2:F225;5;0)")
niestety to nie działa. Pokazuje w komórce wynikowej #N/D, czyli może być to bład z argumetami..


Proszę o pomoc!!
LibreOffice 4.2.1.1 / Windows XP
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Odwołanie do innego arkusza

Post autor: belstar »

A samo WYSZUKA.PIONOWO nie wystarczy, coś w tym stylu

Kod: Zaznacz cały

=WYSZUKAJ.PIONOWO(A2;'file:///home/ktos/Dokumenty/Ewidencja_towaru.ods'#$Ewidencja.A1:B7;2;0)
Ps. Coś mi się kiedyś obiło o uszy (czasy excela), że działa tylko na otwartych plikach, a jak jest nie wiem.
LibreOffice 5.1.2.2 Ubuntu 16 LTS
tomekkkz
Posty: 7
Rejestracja: wt kwie 08, 2014 12:46 pm

Re: Odwołanie do innego arkusza

Post autor: tomekkkz »

Samo wyszukaj pionowo w tym wypadku nie wystarczy, bo gdy zmienisz lokalizacje katalogu z arkuszami funkcja przestanie działać bo jest to odwołanie bezwzględne a moj problem polega na zrobieniu odwolania wzglednego, czyli na przykład:
mam powiązane ze sobą arkusze w katalogu o ścieżce C:\user\docs\ARKUSZE\ gdy przeniose katalog arkusze w inne miejsce, np.
D:\praca\ARKUSZE funkcja zapisana tak jak podałeś nie będzie działać! A moj problem polega na tym by działa. Jak to zrobić?
Proszę o rady! :):):)
LibreOffice 4.2.1.1 / Windows XP
Awatar użytkownika
Jermor
Posty: 2448
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Odwołanie do innego arkusza

Post autor: Jermor »

Adresowanie względne i bezwzględne dotyczy położenia komórek w obrębie arkusza a nie położenia pliku. Można jednak podając ścieżkę do pliku, zadziałać na właściwym z nich.
Odwołując się do przytoczonych przykładów można to zrobić tak:
W jednej komórce umieścić część nazwy ścieżki, np w A1 umieścić

Kod: Zaznacz cały

'file:///C:/user/docs/ARKUSZE/
(zwróć uwagę, że pierwszym wpisanym znakiem jest apostrof).
w komórce np B1 można wpisać dokończenie ścieżki

Kod: Zaznacz cały

Ewidencja_towaru.ods'#$Ewidencja.A1:B7
w tej komórce znak apostrofu występuje po rozszerzeniu nazwy pliku ods.
W komórce C1 można utworzyć formułę:

Kod: Zaznacz cały

 =A1&B1
i w końcu we właściwym miejscu zmodyfikować funkcję wyszukaj.pionowo na podobną do tego:

Kod: Zaznacz cały

=WYSZUKAJ.PIONOWO(A2;ADR.POŚR(C1);2;0)
Jednak zawsze trzeba będzie odpowiednio modyfikować zawartośc komórki A1
AOO 4.1.15, LO 25.2.4 (x64) na Windows 11 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.
belstar
Posty: 654
Rejestracja: czw mar 17, 2011 9:08 am

Re: Odwołanie do innego arkusza

Post autor: belstar »

Jeżeli te arkusze są zawsze w jednym katalogu, można by zastosować proste makro które, przy uruchamianiu wpisze ci do jakiejś komórki aktualną ścieżkę dostępu, a potem masz już z górki. Przykład w załączniku.
Załączniki
Ewidencja_towaru.ods
(13.41 KiB) Pobrany 428 razy
Pobierający.ods
(17.97 KiB) Pobrany 361 razy
LibreOffice 5.1.2.2 Ubuntu 16 LTS
Awatar użytkownika
mitek
Posty: 69
Rejestracja: czw lip 15, 2010 11:52 pm

Re: Odwołanie do innego arkusza

Post autor: mitek »

A ja mam jeszcze inne pytanie jeśli nie nadużyje cierpliwości podpowiadających

Mam bazę kilkunastu plików (i rośnie ilość tych plików)

Chce w jednym arkuszu zrobić spis plików wszystkich z danego katalogu:

Miała by się wyświetlać nazwa pliku i kilka danych z tego pliku jak data czy imię i nazwisko czy stan zamówienia.

W arkuszu tym chciałbym mieć możliwość zmiany statusu w tych plikach np zmiana z "zamówiony" na "wycięty" czy zapłacony...
Załączniki
Ciecie.zip
plik działa jeśli katalog CIECIE jest bezpośrednio na dysku C (windows)
(124.83 KiB) Pobrany 226 razy
LibreOffice 6.1.2.1 na Windows 10
ODPOWIEDZ