Odwołania do innych arkuszy kalkulacyjnych

Użytkowanie arkusza kalkulacyjnego
gregoriusz
Posty: 2
Rejestracja: czw sty 26, 2023 3:27 pm

Odwołania do innych arkuszy kalkulacyjnych

Post autor: gregoriusz »

Witam,

Przeczytałem chyba wszystko co było w googlach w tym temacie, na forum nie potrafię wyszukać odpowiedzi.

Chciałbym,aby w nowo powstałym dokumencie ,arkusz, pojawiły się tabele z innych arkuszy, które będą się aktualizowały w miarę zmian w innych dokumentach.
Korzystałem z tej podpowiedzi https://help.libreoffice.org/latest/pl/ ... s_url.html ale albo ja nie do końca ją rozumiem, albo nie potrafię tego jednak zrobić. Po wczytaniu łącza zewnętrznego czyli w moim przypadku pliku z arkuszem, nic się dalej nie dzieje, w liście poniżej mam brak nazwanych elementów. Tutaj się zatrzymuje bo nie wiem jak nazwać te elementy w źródłowym arkuszu, próbowałem z funkcją Dane-określ zakres, ale nie wiem czy dobry trop. W każdym razie poniosłem klęskę. Proszę o pomoc.
Open Office 7.4.4.2 (x64) / Windows 10
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Odwołania do innych arkuszy kalkulacyjnych

Post autor: Jermor »

Dane, które chcesz przenosić muszą być nazwane, to znaczy obszary z tymi danymi, lub pojedyncze komórki muszą mieć nadane nazwy.
Calc wyróżnia dwa typy nazw. Bazodanowe - te nadawane są w poleceniu "Dane -> Okreśł zakres" i te nie są rozpoznawane przez proces linkowania.
Drugi typ, nazwijmy go standardowy, to nadanie nazwy za pomocą polecenia "Arkusz -> Nazwane zakresy lub wyrażenia", te nazwy są rozpoznawane podczas linkowania. Te nazwy można nadawać w uproszczony sposób: po zaznaczeniu wymaganego obszaru należy w okienku "Obszar arkusza" (to w lewym górnym rogu) zawierającym specyfikację obszaru wpisać swoją własna nazwę i nacisnąć ENTER.
Wywołujesz polecenia "Arkusz -> Dane zewnętrzne" wskazujesz wymagany plik, gdy plik jest już wprowadzony trzeba nacisnąć ENTER, gdyż dopiero wtedy wyświetli się lista nazw obszarów w tym pliku, wybierasz wskazany obszar i określasz, co jaki odstęp czasu ma następować aktualizacja.
Trzeba pamiętać, że aktualizacja dotyczy plików zapisanych. Gdy inny użytkownik "obrabia" plik to wprowadzone przez niego zmiany pojawią się, dopiero gdy on zapisze plik.
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.
gregoriusz
Posty: 2
Rejestracja: czw sty 26, 2023 3:27 pm

Re: Odwołania do innych arkuszy kalkulacyjnych

Post autor: gregoriusz »

Dziękuję za Twoją pomoc. Teraz już wiem jak określić i nazwać te pola do przeniesienia. Ale kiedy wczytałem całą tablę z arkusza źródłowego, to komórki które odnosiły za pomocą np "=Wynagrodzenia.K12" w pliku źródłowym to w arkuszu na którym aktualnie pracuje pojawia się wynik =#ADR!.K9. Czy jest szansa na przeniesienie również tych danych ?
Open Office 7.4.4.2 (x64) / Windows 10
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Odwołania do innych arkuszy kalkulacyjnych

Post autor: Jermor »

Jest, ale nie tym sposobem. Ten problem zgłaszałem już dość dawno, ale jak widać nikt się nad nim nie pochylił. Niestety, linkowanie przenosi formuły, a nie wartości, co w znacznym stopniu niweczy sens jego stosowania. Bo przecież nam są potrzebne dane, a nie sposób ich obliczania.
Rozwiązaniem jest wpisanie formuły przejmującej dane z innego arkusza. Powiedzmy, że w tym innym arkuszu interesują cię dane z zakresu B3:E10.
W swoim arkuszu musisz napisać formułę odwołującą się do komórki B3 w tym innym arkuszu. Formuła musi mieć postać następującą:

Kod: Zaznacz cały

='file:///C:/ścieżka do pliku/Przykład.ods'#$Arkusz1.B3
Zwróć uwagę na niezbędne apostrofy obejmujące opis dostępu do pliku. Po zatwierdzeniu formuły dostaniesz wynik z komórki B3 z arkusza Arkusz1 pliku Przykład.ods. Teraz mając wpisana tę formułę możesz ją skopiować w bok i w dół, stosownie do potrzebnego rozmiaru. Otrzymasz dostęp do wartości w odpowiednio przesuniętym obszarze, a nie do formuł.
Ten sposób nie aktualizuje się automatycznie. Aktualizacja następuje przy otwarciu twojego arkusza (zakres wykonywania tego procesu ustalasz w ustawieniach "Narzędzia -> Opcje -> LibreOffice Calc -> Ogólne -> Aktualizuj łącza podczas otwierania"), a potem na żądanie "Edycja -> Łącza do plików zewnętrznych..." wskazanie pliku i zaakceptowanie "Aktualizuj".
Jeśli masz taką możliwość, to otwórz plik, z którego chcesz przechwycić dane, w swoim pliku w odpowiedniej komórce wpisz znak "=", przejdź do pliku z potrzebnymi danymi, wskaż w nim komórkę i naciśnij ENTER. Wrócisz do swojego pliku z wpisanym pełnym odwołaniem do źródła.
W tej metodzie masz formułę pobierającą dane, nie możesz zatem nic wpisać do takiej komórki, bo usuniesz w ten sposób formułę.
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.
lolpik
Posty: 1
Rejestracja: sob gru 30, 2023 12:16 pm

Re: Odwołania do innych arkuszy kalkulacyjnych

Post autor: lolpik »

Jermor pisze: pt sty 27, 2023 6:26 pm

Kod: Zaznacz cały

='file:///C:/ścieżka do pliku/Przykład.ods'#$Arkusz1.B3
Nie mogę sobie poradzić z podobny problemem.
W Arkuszu w którym piszemy odwołanie do np. podanego przez ciebie zewnętrznego pliku Przykład.ods lub 30.10.2023.ods
Zapis taki:
='file:///C:/ścieżka do pliku/Przykład.ods'#$Arkusz1.B3
='file:///C:/ścieżka do pliku/30.10.2023.ods'#$Arkusz1.B3

Załatwia sprawę i wprowadza dane.
Ja chciałbym aby np komórka nad B3 czyli B2 mówiła z którego pliku ma zaimportować dane do B3. Komórka B2 miałby wartoś nazwy pliku np. "Przykład" lub "30.10.2023".
Jak to zrobić? Widziałem gdzieś w internatach "&B2&" ale może to do excela nie wiem próbowałem różne sposoby " ' nic nie działa mi.

='file:///C:/ścieżka do pliku/"&B2&".ods'#$Arkusz1.B3 - nie działa
Apache Open Office 4.1.7 na WINDOWS 10
Jan_J
Posty: 4558
Rejestracja: pt maja 22, 2009 1:20 pm
Lokalizacja: Wrocław

Re: Odwołania do innych arkuszy kalkulacyjnych

Post autor: Jan_J »

Bo to
Jermor pisze: pt sty 27, 2023 6:26 pm

Kod: Zaznacz cały

='file:///C:/ścieżka do pliku/Przykład.ods'#$Arkusz1.B3
dotyczyło wpisania ścieżki do formuły, a to
lolpik pisze: sob gru 30, 2023 12:30 pm

Kod: Zaznacz cały

='file:///C:/ścieżka do pliku/"&B2&".ods'#$Arkusz1.B3
- nie działa
używa operatora łączenia danych tekstowych w formule (zresztą używa źle, gdyż nieprawidłowo korzysta z ograniczników tekstu — ale to nie jest istotne).

Formuła nie jest „sama dla siebie” tekstem. Jeśli jej częścią są dane tekstowe, takie w cudzysłowach "" albo wyniki obliczeń typu tekstowego, to można do nich stosować operator &. Ale adres — z punktu widzenia gramatyki formuły — tekstem nie jest.

Użyj adresowania pośredniego (funkcja INDIRECT, czyli ADR.POŚR). Robi ona odwołanie adresowe z tekstu.

Zamiast

Kod: Zaznacz cały

='file:///C:/ścieżka do pliku/"&B2&".ods'#$Arkusz1.B3
skorzystaj z

Kod: Zaznacz cały

=ADR.POŚR("'file:///C:/ścieżka do pliku/" & B2 & ".ods'#$Arkusz1.B3")
JJ
LO (7.6|24.2) ∙ Python (3.12|3.10) ∙ Unicode 15 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
lolpik
Posty: 1
Rejestracja: sob gru 30, 2023 12:16 pm

Re: Odwołania do innych arkuszy kalkulacyjnych

Post autor: lolpik »

:D
WOW działa. Dziękuję bardzo.
Wiem że starałeś się opisać wyjaśnić ale i tak nie pojmuje czemu całość jest w " ", czemu ścieżka jest ' ' , czemu adres komórki jest w " " i w & &.
No ale już nie zrozumie.. Tłumacze sobie że tak jest i koniec.
Jeszcze raz bardzo dziękuję.

Przypał adres komórki jest datą i wtedy nie działa..
Mogę pisać 1,1 2,1 3,1 lub 1,01 2,01 3,01 czyt. 1 styczen 2 styczen
Ale to trochę słabe.. Ale robotę zrobi

Kolejny problem który wyszedł to:
działając:
='file:///C:/1,1.ods'#$Sheet1.$A1 - miałem problem z przeciągnięciem w prawo aby zmienić nazwę pliku tj. 1,1.ods (1.01.2024) zaś komórka A1 przy przeciąganiu w dół zmienia wartość na A2,A3,A4.... CZYLI OK

działając:
=ADR.POŚR("'file:///C:/"&B$1&".ods'#$Sheet1.$A1") - przeciągając w prawo zmienia się wartość komórki B1 na C1,D1,E1 (1,1 2,1 3,1 (lub 1.01.2024 , 2.01.2024 , 3.01.2024 )) ale próbując przeciągnąć w dół nie zmienia się wartość komórki A1 na A2,A3,A4... CZYLI bardzo źle

Jakieś pomysły? W zał przykład plik baza
Załączniki
baza.ods
(10.27 KiB) Pobrany 32 razy
2,1.ods
(8.44 KiB) Pobrany 32 razy
1,1.ods
(8.3 KiB) Pobrany 30 razy
Ostatnio zmieniony sob gru 30, 2023 6:20 pm przez lolpik, łącznie zmieniany 4 razy.
Apache Open Office 4.1.7 na WINDOWS 10
Awatar użytkownika
Jermor
Posty: 2239
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Odwołania do innych arkuszy kalkulacyjnych

Post autor: Jermor »

Funkcja ADR.POŚR() zwraca zawartość komórki, której adres w postaci tekstu został podany jako argument. Zatem =ADR.POŚR(A1) zwróci błąd #ADR!, dopiero =ADR.POŚR("A1") zwróci to co jest w komórce A1. Dlatego cały tekst, który utworzy ostateczną postać adresu, musi być tekstem.
Jeśli adres odwołuje się do komórki w innym pliku, ścieżka do tego pliku musi zostać zapisana między apostrofami, więc te apostrofy muszą pojawić się w odpowiednim miejscu.
Aby uzyskać datę w postaci wymaganego ciągu znaków, musisz, zamiast B2, wpisać funkcję TEKST(B2;"DD.MM.YYYY"). Ona zamieni datę, która w komórce jest w rzeczywistości liczbą, wyświetlaną jako data na skutek odpowiedniego formatowania, w ciąg znakowy odpowiadający wyglądem dacie.
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.
ODPOWIEDZ