Cześć. Mam pomysł na wykonanie pewnego zadania i ułatwienia sobie pracy. Dostaję pliki w xls, w których co tydzień sa dane przedstawiane identycznie (taki sam układ kolumn) dla kilku miejsc. Chciałbym stworzyć plik, w którym zliczę sobie sumy pewnych wartości z każdego pliku do jednej tabeli. Innymi słowy, potrzebuję jakiegoś sposobu, który pozwoli mi odczytywać w pliku z excela inny plik i wykonać np. od razu sumę wierszy z innego pliku coś na zasadzie Suma z A = ; Suma z b = itd.
Próbowałem na żywca zrobić coś na zasadzie formuły i wskazać dane w innym pliku, ale tak prosto chyba niestety nie jest. Jakiś pomysł jak ogarnąć, jak wygląda składnia itp?
Możesz zrobić sobie w twoim pliku link do innego pliku w formule, i np plik z danymi umieścić w jednym folderze pod nazwą np. “dane.xls”.
Dostajesz nowy plik, zastępujesz go na dane.xls.
Otwierasz twój głowny plik, pojawia się monit czy zaaktuzliować łącza - dajesz tak i formuła pobiera ci dane z pliku.
tak wygląda jak masz dwa pliki otware:
jak zamkniesz plik z danymi to excel aktualizauje łącze w formule o lokalizację:
Inna opcja, to napisanie sobie makra w VBA gdzie np. po naciśnięciu przyciska pojawia się okno wyboru pliku (lub np. pobierane z każdego pliku excel umieszonego w danym excelu) i makro kopiuje z plików dane np. do arkusza robocze w głównym pliku. Ale to trochę więcej zabawy, a jak nie znasz VBA to może być problem.
A jak nazwę arkusza w skoroszycie zmieniają, że nie jest to Arkusz1
?
Hmm, wszystko działa w sumie poprawnie, ale nie do końca. Jak arkusze z danymi są proste wszystko jest ok, ale jak chcę użyć jakiejś funkcji to jeżeli arkusz z danymi nie jest otwarty to mam “#ARG!” (mimo, ze ścieżka działa prawidłowo, bo dane dla prostych arkuszy pobierane sa poprawnie). Już pisze co mam na myśli. Zrobiłem 3 arkusze.
Oddział, który wygląd atak:
oddzial2.xlx, wyglądający tak:
wszystkie_oddzialy, który wygląda tak:
i plik sumy sumujący i odczytujący wartości. Dla plików oddzial i oddzial2, kiedy odczytywana jest właściwie po prostu zawartość komórki wszystko działa poprawnie (jak otworze jedynie pliku sumy, a wcześniej zmieniłem i zamknąłem dane w plikach oddzial i oddzial2 - tu jest ok):
Problem jest z zastosowaniem odczytywania z pomocą funkcji. Chciałbym skorzystać z funkcji SUMA.JEŻELI (wykonałem funckję w oparciu o otwarty plik i tam ją zastosowałem, formuła jest automatycznie wpisana przez excel). Jak plik wszystkie_oddzialy jest zamknięty to w pliku sumy mam własnie błąd pobierania:
Jak otworzyłbym plik wszystkie_oddzialy to wszystko się naprawia. Tak ma być, czy coś źle robię?
Na dole w Excelu prawy przycisk myszy na arkuszu i opcja “Zmień nazwę” lub dwuklik na nazwie.
Ale wtedy ciągle trzeba go otwierać.
Możesz zawsze zrobić metodą młotka jak excel nie chce po dobroci.
Załaduj dane do arkuszy w aktualnym pliku i na nich potem użyj funkcji excelowych.
Tylko nie wiem jak ta funkcja radzi sobie z dużą ilością danych
W zakładce dane spróbuj odświeżyć to połączenie.
Albo z innego pliku tylko obieraj dane - tak jak masz to w kolumnie B, a same formuły rób już na tych danych (nie odnoś się znowu do tego pliku).
Excel nie działa zbyt idealnie przy takich linkach, najprościej sprowadzić dane do jednego pliku jeśli się da.
W przypadku formuły to będzie problem. W przypadku VBA można się odnosić do arkusza nr 1 (bez znaczenia na jaką nazwę ktoś zmienił) ale jak doda drugi arkusz i w nim te dane wpisze, to wtedy nie zadziała. Po prostu w plikach źródłowych musi być ustandaryzowana struktura i nazewnictwo.
A może mała baza accessa? Do accessa możesz zaimportować dane ręcznie wklejając, albo np makrem bezpośrednio z excela. Jak baza była by na dysku sieciowym to inne osoby mogły by importować do bazy a ty byś mógł tylko ściągać je. Niby można też podlinkować plik excela do accessa ale to takie średnie.
Pobieranie danych wtedy to tabela przestawna lub lista w pliku, klikasz prawym Odśwież i gotowe.
No I bomba, odczytuje tylko te kolumny, które mnie interesują i tam obrabiam dane. Wszystko działa idealnie. Wystarczy podmienić pliki na nowe i działa jak trzeba dzięki