Pobieranie danych z jednego arkusza do drugiego.

Użytkowanie arkusza kalkulacyjnego
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Cześć ponownie.

Znowu mam zagadkę, jak to ostatnio określił @Rafkus :)

Chodzi o pobieranie danych z jednego arkusza do drugiego w zależności od kilku zmiennych. Próbowałem to rozkminić funkcją WYSZUKAJ.PIONOWO, ale mam wrażenie, że ona do końca się tutaj nie nadaje. Tak czy inaczej jestem w kropce...

Szczegóły w pliku.

Pozdrawiam.
Załączniki
JedenGosc_20211208.ods
(20.34 KiB) Pobrany 153 razy
Libre Office 7.5.4.2 / Windows 11
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

Moja propozycja, to wykorzystanie filtru zaawansowanego.
Po wpisaniu wymaganej litery do obszaru kryteriów i odświeżeniu danych, w Arkusz4 pojawi się zestaw wierszy spełniających warunki.
Załączniki
JedenGosc_20211208_Jermor.ods
(20.6 KiB) Pobrany 160 razy
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.
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Rafkus »

A więc ja zaproponuję dalej formuły macierzowe.
W komórce B1 należy wybrać żądaną literę a formuły same dokonają reszty...
Załączniki
JedenGosc_20211208_R1.ods
(19.61 KiB) Pobrany 170 razy
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

Tylko myślę, że formuły należałoby powielić do wiersza 26. (jeśli mogą wystąpić takie same litery w obu kolumnach) lub 24. jeśli litera z kolumny pierwszej nie może pojawić się jednocześnie w kolumnie drugiej. Tyle bowiem będzie teoretycznie możliwych układów.
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.
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Dzięki Panowie za szybką reakcję.

Przyznam, że rozwiązanie oparte na formułach jest mi bliższe.

M.in. dlatego, że potrzebuję zrobić osobne zestawienie dla każdej litery w osobnych arkuszach.

Rafkus, Twoje rozwiązanie chyba sprzyja temu bardziej.

Nie widzę tylko w formułach odwołania do B1, czyli litery dla której generowane jest zestawienie. Tak jak napisałem wyżej, chcę zrobić osobny arkusz dla każdej litery, a nie mogę znaleźć tego odwołania.

Pozdrawiam.

Edit. Już znalazłem. Sprawdzam dalej.
Libre Office 7.5.4.2 / Windows 11
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

@Rafkus, próbując modyfikować i kopiować formuły pojawia mi się komunikat:

Kod: Zaznacz cały

Część macierzy nie może być zmodyfikowana.
Jak to ominąć?
Libre Office 7.5.4.2 / Windows 11
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Rafkus »

To jest właśnie urok formuł macierzowych.

Aby kopiować formułę - musisz zaznaczyć cały jej obszar wynikowy. A jeżeli nie wiesz jaki on jest to kliknij na jakiejś komórce z tej formuły, następnie wciśnij klawisz CTRL + / z części klawiatury numerycznej. W ten sposób obszar zostanie zaznaczony.

Aby edytować formułę to również musi być zaznaczony cały obszar wynikowy. Wówczas daje się uruchomić kreatora formuły ( ta ikonka z fx na pasku) i dopiero w nim można ją poprawić. Innego sposobu nie znam.
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

Bo nie można skopiować tylko części formuły macierzowej. Aby zaznaczyć zakres całej formuły macierzowej, należy w dowolnej komórce należącej do formuły macierzowej nacisnąć CTRL+/. W rozwiązaniu @Rafkus są dwie formuły macierzowe: pierwsza wpisana do komórki A3 i następnie skopiowana w dół, oraz druga, wpisana do komórki B3. Zatwierdzenie tej drugiej skutkuje utworzeniem odpowiednich formuł w kolejnych komórkach od C3 do H3. Zatem ta druga macierz zajmuje obszar od B3:H3 i to ten obszar należy skopiować.
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.
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

Do @Rafkus. Po zaznaczeniu zakresu formuły macierzowej można (będąc w dowolnej komórce tej formuły) nacisnąć F2, albo po prostu poprawiać ją w wierszu wprowadzania. Po zmianach zawsze trzeba zastosować CTRL+SHIFT+ENTER.
Wydaje mi się, że CTRL+/ działa także ze zwykłym znakiem "/" w części alfabetycznej.
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.
Awatar użytkownika
Rafkus
Posty: 513
Rejestracja: czw kwie 12, 2018 10:26 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Rafkus »

@Jermor
No popatrz faktycznie działa. Nawet w OO :shock: Ale jestem pewien, że kiedyś w OO, było tak jak napisałem. Widocznie pozostało mi w takim razie błędne przeświadczenie (i przyzwyczajenie) ;)
LibreOffice 7.4.6 (preferowany) oraz OpenOffice 4.1.6. Widows 10
OpenOffice 4.1.3. oraz Libre 4.2.5.2 Windows XP
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

OK. To jest jasne.

Chcę jednak z tej formuły macierzowej usunąć kolumnę H. Zaznaczam od B do H, edytuję w formule H na G. W kolumnie H pojawia mi się #N/D. Nie mogę jednak tej kolumny usunąć. Dalej jest jakby powiązana z "formułą matką"...

Edit.

Poczytałem trochę...
https://help.libreoffice.org/4.2/Calc/A ... cierzowych

i sobie poradziłem.
Libre Office 7.5.4.2 / Windows 11
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

W ten sposób nie można zmienić formuły macierzowej.
Musisz ją najpierw usunąć a dopiero potem wpisać ją do komórki ponownie w poprawnej postaci.
Aby nie przepisywać wszystkiego od nowa:
Ustaw się w jednej z komórek formuły (np. B3), i użyj CTRL+/.
Teraz naciśnij F2, zaznacz treść formuły od znaku "=" do ostatniego nawiasu i skopiuj to (CTRL+C).
Naciśnij ESC, a następnie DELETE.
Ustaw się ponownie w komórce B3 (nie mogą być zaznaczone żadne inne komórki w tym wierszu).
W wierszu wprowadzania wykonaj CTRL+V i popraw H na G.
Teraz naciśnij SHIFT+CTRL+ENTER.
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.
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Postąpiłem zgodnie z tym:
Dostosowanie zakresu komórek
Aby edytować macierz wynikową, należy wykonać poniższe czynności:

Zaznacz zakres komórek lub macierz zawierającą formułę macierzową.
Poniżej zaznaczenia, po prawej stronie znajduje się mała ikona pozwalająca na zwiększenie lub zmniejszenie zakresu za pomocą myszy.
I działa. Skopiowałem i zmodyfikowałem formułę @Rafkus tak jak chciałem.
Libre Office 7.5.4.2 / Windows 11
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Cześć.

Znowu mam zagadkę. Edytuję ten post, bo domyślam się, że też chodzi o rozwiązanie podobne do tego. Jednak nie jest takie same i napotykam problemy.

Proszę o nakierowanie w kierunku rozwiązania. Z góry dziękuję.

W pliku w Arkusz2 specyfikacja.
Załączniki
JedenGosc_20220129.ods
(24.33 KiB) Pobrany 119 razy
Libre Office 7.5.4.2 / Windows 11
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

Poszedłem po linii najmniejszego oporu.
W Arkusz1 utworzyłem pomocniczy obszar, który oczywiście można ukryć. Obszar składa się z dwóch kolumn. W pierwszej pojawia się połączenie trzech komórek wiersza z kolumn B, C i A, tworząc indywidualny indeks każdej pozycji. Druga kolumna zawiera sumę trzech komórek w wierszu z kolumn D, E i F.
W Arkusz2 utworzyłem dwie kolumny wynikowe, wykorzystujące funkcję WYSZUKAJ.PIONOWO() z wykorzystaniem podczas wyszukiwania wyrażeń regularnych i ustaleniem, że dane w pierwszej kolumnie nie są posortowane. Dlatego należy upewnić się, że w opcjach Calca jest ustawiony parametr "Włącz wyrażenia regularne w formułach".
Funkcja WYSZUKAJ.PIONOWO() zwraca wartość #N/D gdy poszukiwanej wartości nie znajdzie w przeszukiwanej tabeli, dlatego umieściłem ją wewnątrz funkcji JEŻELI.BŁĄD(), przy czym w przypadku błędu podstawiana jest treść komórki E1. Chodziło mi o to, żeby zasygnalizować sytuację braku takiego indeksu. Ponadto przypisałem do obszaru wynikowego formatowanie warunkowe, które wyróżnia te pozycje. Zawartość komórki E1 można zastąpić swoim tekstem lub liczbą.
A rezultat załączam.
Załączniki
JedenGosc_20220129JM.ods
(34.2 KiB) Pobrany 123 razy
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.
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Tak to powinno wyglądać. Dziękuję @Jermor.

Napotykam tylko problem z pobieraniem danych z zewnętrznego pliku. W obydwu plikach mam zaznaczone wyrażenia regularne. Jednak każde jedno pole to #N/D...
Libre Office 7.5.4.2 / Windows 11
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

Jak rozumiem, to wynikowe działanie ma być realizowane w innym skoroszycie. Próby, tak na szybko, wykazały mi, że dla funkcji WYSZUKAJ.PIONOWO() odwołującej się do zakresu w innym skoroszycie, nie można zastosować wyrażenia regularnego, jako wartości poszukiwanej. W takim przypadku zwracana jest wartość #N/D.
Można oczywiście ten pomocniczy obszar przekopiować do nowego arkusza jako łącze, i wykorzystać te przeniesione dane. W obszarze tego samego skoroszytu można zastosować wyrażenia regularne. Jak to zrobić? Zaznaczyć cały pomocniczy obszar, skopiować go, a następnie w tym innym skoroszycie wybrać "wklej specjalnie" i w parametrach wybrać opcję "Jako łącze".

Jeżeli prawdą jest, że dla pojedynczej daty w Akusz1 konkretna litera może wystąpić tylko raz, albo w kolumnie B, albo w kolumnie C, to można wykorzystać inny sposób. Wykonać obliczenia funkcjią SUMA. JEŻELI(). Ta funkcja dopuszcza użycie wyrażenia regularnego w kryterium wyszukiwania zastosowanym do obszaru w innym skoroszycie. Jednak z samej istoty funkcji sumowania nie będzie można rozróżnić sytuacji czy wynik 0 wynika z tego, że w znalezionej pozycji występuje 0, czy z tego, że takiej pozycji nie ma w obszarze źródłowym. Formuła powinna wyglądać następująco:

Kod: Zaznacz cały

=SUMA.JEŻELI('file:///Z:/folder/plik_źródła.ods'#$Arkusz1.$H$2:$I$307;"=.*"&$B$1&".*"&A2;'file:///Z:/folder/plik_źródła.ods'#$Arkusz1.$I$2:$I$307)
Tu wykorzystałem zakresy obszaru pomocniczego znajdującego się zamieszczonym wcześniej pliku.
Dla drugiej kolumny, w formule należy podmienić adres $B$1 na $C$1
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.
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Tak, dokładnie - dane chcę pobierać z zewnętrznego skoroszytu. Przez wklej specjalnie jako łącze działa. Dziękuję. Nie znałem tej opcji.
Początkowo było mi obojętne, czy 0 będzie również wtedy kiedy n ie występuje data, ale po Twojej sugestii stwierdzam, że faktycznie "-" się przyda. Dziękuję.
Libre Office 7.5.4.2 / Windows 11
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Rafkus pisze: czw gru 09, 2021 2:13 pm To jest właśnie urok formuł macierzowych.

Aby kopiować formułę - musisz zaznaczyć cały jej obszar wynikowy. A jeżeli nie wiesz jaki on jest to kliknij na jakiejś komórce z tej formuły, następnie wciśnij klawisz CTRL + / z części klawiatury numerycznej. W ten sposób obszar zostanie zaznaczony.

Aby edytować formułę to również musi być zaznaczony cały obszar wynikowy. Wówczas daje się uruchomić kreatora formuły ( ta ikonka z fx na pasku) i dopiero w nim można ją poprawić. Innego sposobu nie znam.

Cześć Panowie.

Wracam do tego tematu bo napotkałem dziwny problem.

Generalnie wszystko (prawie) działa tak jak opisał to Rafkus. Wszystko się ładnie sczytuje i podstawia, tak jak powinno być.

Poza drobnym wyjątkiem. Jedna z kolumn, które formuła macierzowa "kopiuje" jest wartością z liczbami. Natomiast w wyniku pokazuje się jako data. Oczywiście zmieniam formatowanie na liczby i jest ok. Jednak po zamknięciu pliku, ponownym otwarciu i zaktualizowaniu łączy - ponownie widzę daty.

Jak to naprawić?
Libre Office 7.5.4.2 / Windows 11
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

JedenGość pisze: śr lip 13, 2022 1:05 pm
Rafkus pisze: czw gru 09, 2021 2:13 pm To jest właśnie urok formuł macierzowych.

Aby kopiować formułę - musisz zaznaczyć cały jej obszar wynikowy. A jeżeli nie wiesz jaki on jest to kliknij na jakiejś komórce z tej formuły, następnie wciśnij klawisz CTRL + / z części klawiatury numerycznej. W ten sposób obszar zostanie zaznaczony.

Aby edytować formułę to również musi być zaznaczony cały obszar wynikowy. Wówczas daje się uruchomić kreatora formuły ( ta ikonka z fx na pasku) i dopiero w nim można ją poprawić. Innego sposobu nie znam.

Cześć Panowie.

Wracam do tego tematu bo napotkałem dziwny problem.

Generalnie wszystko (prawie) działa tak jak opisał to Rafkus. Wszystko się ładnie sczytuje i podstawia, tak jak powinno być.

Poza drobnym wyjątkiem. Jedna z kolumn, które formuła macierzowa "kopiuje" jest wartością z liczbami. Natomiast w wyniku pokazuje się jako data. Oczywiście zmieniam formatowanie na liczby i jest ok. Jednak po zamknięciu pliku, ponownym otwarciu i zaktualizowaniu łączy - ponownie widzę daty.

Jak to naprawić?
Jest jakaś opcja rozwiązania tego problemu?

Z góy dziękuję!
Libre Office 7.5.4.2 / Windows 11
Awatar użytkownika
Jermor
Posty: 2238
Rejestracja: sob paź 12, 2013 11:09 am
Kontakt:

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: Jermor »

Przeczytałem, ale nie mam żadnego pomysłu.
Może na początek podaj jak wyglądają te liczby w arkuszu źródłowym i jakie tam mają przypisane formatowanie.
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.
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Jermor pisze: pt lip 15, 2022 10:17 am Przeczytałem, ale nie mam żadnego pomysłu.
Może na początek podaj jak wyglądają te liczby w arkuszu źródłowym i jakie tam mają przypisane formatowanie.
Liczby to pojedyncze cyfry. Formatowanie to liczba (standard). Formuła macierzowa "wypluwa" te liczby jako daty.
Libre Office 7.5.4.2 / Windows 11
JedenGość
Posty: 195
Rejestracja: czw mar 07, 2019 6:54 pm

Re: Pobieranie danych z jednego arkusza do drugiego.

Post autor: JedenGość »

Poradziłem sobie w ten sposób, że dodałem nowe kolumny i w nich zrobiłem odwołanie do tych z "datami". Te nowe kolumny mają formatowanie jako liczby i wyświetla się prawidłowo. Dziwne to trochę, ale działa.
Libre Office 7.5.4.2 / Windows 11
ODPOWIEDZ