Jak połączyć komórkę w Arkuszach kalkulacyjnych Google z komórką w innym dokumencie?


178

Mam miesięczny arkusz kalkulacyjny, który opiera się na danych z poprzedniego miesiąca. Chciałbym importować te wartości dynamicznie, zamiast wycinać je i wklejać. czy to możliwe? Jak mam to zrobić?


Nawiasem mówiąc, wiem, że jest to możliwe, tak jak kiedyś to zrobiłem, ale nie mogę już znaleźć informacji ani arkusza, w którym to zrobiłem. Jeśli je znajdę, opublikuję aktualizację.
Jeff Yates

Odpowiedzi:


183

IMPORTRANGE() wydaje się być funkcją, którą chcesz.

Z listy funkcji arkuszy kalkulacyjnych Google :

Arkusze kalkulacyjne Google pozwalają odwoływać się do innego skoroszytu w arkuszu kalkulacyjnym, który obecnie edytujesz za pomocą funkcji ImportRange. ImportRange pozwala przeciągać jedną lub więcej wartości komórek z jednego arkusza kalkulacyjnego do drugiego. Aby utworzyć własne formuły ImportRange, wpisz = importRange (klucz do arkusza kalkulacyjnego, zakres). W przypadku języków, w których do separacji dziesiętnej używany jest przecinek, użyj średnika zamiast przecinka, aby oddzielić argumenty w formule.

Klucz do arkusza kalkulacyjnego to STRING, który jest kluczową wartością z adresu URL arkusza kalkulacyjnego.

Zakres to STRING reprezentujący zakres komórek, które chcesz zaimportować, opcjonalnie łącznie z nazwą arkusza (domyślnie pierwszy arkusz). Możesz także użyć nazwy zakresu, jeśli wolisz.

Biorąc pod uwagę, że dwa argumenty są STRINGAMI, musisz zawrzeć je w cudzysłowach lub odwołać się do komórek, które mają w nich wartości łańcuchowe.

Na przykład:

= importrange („abcd123abcd123”, „arkusz 1! A1: C10”) „abcd123abcd123” to wartość w atrybucie „klucz =” w adresie URL docelowego arkusza kalkulacyjnego, a „arkusz 1! A1: C10” to zakres, który należy być importowane.

= importrange (A1, B1) Komórka A1 zawiera ciąg ABCD123ABCD123, a komórka B1 zawiera arkusz 1! A1: C10

Uwaga: Aby użyć ImportRange, musisz zostać dodany jako przeglądarka lub współpracownik do arkusza kalkulacyjnego, z którego ImportRange pobiera dane. W przeciwnym razie pojawi się następujący błąd: „Błąd #REF!: Nie znaleziono żądanego klucza arkusza kalkulacyjnego, tytułu arkusza lub zakresu komórek”.

„klucz” to oczywiście ciąg w adresie URL arkusza kalkulacyjnego, który pasuje do key=parametru.

Właśnie przetestowałem to, tworząc dwa arkusze kalkulacyjne. W komórce A1 pierwszego wstawiam ciąg. W komórce A1 drugiego wstawiłem =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1")i wyświetlał ciąg z pierwszego arkusza kalkulacyjnego. (Twój klucz będzie oczywiście inny.)

(Format funkcji może zależeć od regionu we Francji formuła nie jest ważna z przecinkiem, więc trzeba go zastąpić średnikiem. =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1"))

UWAGI:

  1. Google obecnie określa sztywny limit 50 „formuł odniesienia do różnych skoroszytów” na arkusz kalkulacyjny. Źródło: limity rozmiaru Dokumentów, Arkuszy i Prezentacji Google . (h / t JJ Rohrer )

  2. „Nowy” Arkusz kalkulacyjny Google (który wkrótce stanie się standardem) usuwa 50-krotny limit 50 ”między wzorami skoroszytów ( pomoc Google ) (h / t Jacob Jan Tuinstra )

  3. W „nowych” Arkuszach Google używasz również całego adresu URL jako klucza ( Pomoc Google ) (h / t  Punchlinern )


3
@Al: Tak! Otóż ​​to! Dzięki.
Jeff Yates

+1 Zaraz! Nie zdawałem sobie sprawy, że istnieje wersja in-line. Inną opcją jest użycie skryptów Google Apps. Utwórz funkcję korzystającą z SpreadsheetApp.openById ([ID]). GetRange () i ustaw za pomocą tego zakres lokalny.
Evan Plaice,

3
Warto zauważyć, że będziesz ograniczony do 50 z nich (na arkusz kalkulacyjny?) (Twardy limit Google): support.google.com/drive/answer/37603?hl=pl
JJ Rohrer

4
W nowym arkuszu kalkulacyjnym Google (który wkrótce stanie się standardem) limit 50 został usunięty: support.google.com/drive/answer/3093340?hl=pl
Jacob Jan Tuinstra

4
Ponadto w nowych Arkuszach Google używasz całego adresu URL jako klucza. Ponadto przy pierwszym wejściu do funkcji pojawi się monit o udzielenie dostępu do żądanego arkusza.
Punchlinern

29

Do Twojej wiadomości, jeśli chcesz odwoływać się do innego arkusza w tym arkuszu kalkulacyjnym, NIE należy ponownie cytować nazwy arkusza:

posługiwać się

=importRange("tgR2P4UTz_KT0Lc270Ijb_A","Sheet Name!A1:A10")

zamiast

=importRange("tgR2P4UTz_KT0Lc270Ijb_A","'Sheet Name'!A1:A10")


6
Dzięki. Powinieneś dodać to jako komentarz do innej odpowiedzi lub nawet po prostu edytować tę odpowiedź.
studgeek

10

W nowym interfejsie powinieneś po prostu móc wpisać =komórkę, a następnie przejść do drugiego arkusza i wybrać komórkę, którą chcesz. Jeśli chcesz to zrobić ręcznie lub używasz starego interfejsu, możesz po prostu zrobić =Sheet1!A1, gdzie Sheet1jest nazwa arkusza i A1komórka na tym arkuszu, na którym ci zależy. Jest to identyczne z Microsoft Excel.


6
jeśli nazwa arkusza zawiera białe spacje, użyj „This Other Sheet”! A1
akira

12
Co powiesz na zupełnie inny dokument, jak zadałem w pytaniu?
Jeff Yates

@jeff Przepraszamy; nie wspomniałeś o „dokumencie” w ciele iz jakiegoś powodu w mojej głowie pomyślałem „prześcieradło”. O ile mi wiadomo, nie można dynamicznie linkować do innego dokumentu . Ale możesz użyć wielu arkuszy zamiast wielu dokumentów, w którym to momencie możesz zrobić to, co zasugerowałem. Właśnie w ten sposób prowadzę własne miesięczne finanse, właśnie z tego powodu.
Benjamin Pollack

W porządku :) Wiem, że można to zrobić tak, jak sam to zrobiłem, ale zapomniałem i nie mogę znaleźć arkusza, w którym to zrobiłem.
Jeff Yates

To nie odpowiada na zadane pytanie - chodzi o inne arkusze w tym samym dokumencie.
brendan

4

Znalazłem tę składnię, używając Wstaw -> Zdefiniuj nowy zakres

ZAKRES ODNIESIENIA INNYCH ARKUSZY GŁÓWNYCH:

Cała kolumna A: „Arkusz kalkulacyjny ze spacjami w nazwie”! O: A

Cała kolumna B: „Arkusz kalkulacyjny ze spacjami w nazwie”! B: B

itp.

Następnie możesz użyć go jako:

=COUNTIF('First Page'!B:B, "valueToMatch")

1
Czy jest to również możliwe w przypadku odwołań poza arkuszem kalkulacyjnym?
Jacob Jan Tuinstra,

@JacobJanTuinstra, co masz na myśli mówiąc „poza” arkuszem kalkulacyjnym?
Tom Roggero,

6
Cóż, IMPORTRANGEfunkcja może importować dane z innego arkusza kalkulacyjnego. Ustawienie zakresów ma znaczenie (możliwe) tylko w arkuszu kalkulacyjnym. Właśnie to miałem na myśli na zewnątrz.
Jacob Jan Tuinstra

To nie odpowiada na zadane pytanie - opisuje tylko, jak odwoływać się do innego arkusza w tym samym dokumencie.
brendan

Wykorzystanie @brendan IMPORTRANGEjak powiedział Jacob.
Tom Roggero,

2

oto jak to zrobiłem (reimplementowane 'importrange ()'):

  • otwórz edytor skryptów („narzędzia” -> „skrypty” -> „edytor skryptów”)
  • zapewnić taką funkcję (bez żadnych kontroli, należy to poprawić, ale pojawia się ogólny pomysł):
funkcja REMOTEDATA (inKey, inRange) {

  var outData;  
  var ss = SpreadsheetApp.openById (inKey);

  if (ss) {
     outData = ss.getRange (inRange) .getValues ​​();
  }

  return outData;
}
  • użyj tego wzoru w arkuszu kalkulacyjnym:
= SUMA (ZDALNE („klucz”, „Nazwa arkusza! A1: A10”))

„klucz” jest kluczem dokumentu, można go znaleźć w parametrze „klucz = xyz” adresu URL dokumentu.

dokumentacja dotycząca „ usług arkuszy kalkulacyjnych ” zawiera więcej informacji na ten temat.


4
Jaka byłaby zaleta samodzielnego wdrożenia tego niż używania istniejącej funkcji?
Jeff Yates

1
@Jeff Yates: brak, właśnie zaimplementowałem go bez znajomości importrange (). sportowe, wiesz? wszystko na zasadzie just-because-i-can :)
akira

1
niestety nie można już otwierać innych funkcji arkusza kalkulacyjnego za pomocą SpreadsheetApp.openById()lub SpreadsheetApp.openByUrl()-> developers.google.com/apps-script/guides/sheets/…
Francesco Vadicamo

-2

Zrobiłem to w bardzo prosty sposób, używając Query, na przykład mam 2 arkusze ABC i XYZ i chcę zaimportować zakres od A1 do C30 z Abc do XYZ, kliknij komórkę, w której chcesz wyświetlić zakres, i napisz:

=QUERY(ABC!A1:C30)

Uwaga: Jeśli nazwa arkusza zawiera spacje, to oczywiście piszesz to:

=QUERY('ABC 1'!A1:C30)


7
OP zapytał, jak zaimportować komórki z innego dokumentu . Czy możesz QUERYto zrobić?
Vidar S. Ramdal,

4
@ VidarS.Ramdal Może, ale potrzebuje importrange("abcd123abcd123", "sheet1!A1:C10")np. =query(importrange("abcd123abcd123", "sheet1!A1:C10"));-)
Fuhrmanator
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.