Ako prepojiť bunku v tabuľkách Google Spreadsheets s bunkou v inom dokumente?

Mám mesačnú tabuľku, ktorá sa opiera o údaje z predchádzajúceho mesiaca. Rád by som tieto hodnoty importoval dynamicky, a nie ich vyrezával a vkladal. Je to možné? Ako to mám urobiť?

Riešenie

Zdá sa, že požadovaná funkcia je IMPORTRANGE().

Zo zoznamu funkcií Google spreadsheets:

Tabuľkové procesory Google umožňujú odkazovať na iný zošit v tabuľkovom procesore ktorý práve upravujete pomocou funkcie ImportRange. ImportRange vám umožňuje vytiahnuť jednu alebo viac hodnôt buniek z jedného tabuľkového hárku do druhého. Ak chcete vytvoriť vlastné vzorce ImportRange, zadajte =importRange(spreadsheet-key, rozsah). Pre jazyky, v ktorých je čiarka používa na oddelenie desatinných miest, použite stredník namiesto čiarky na oddeliť argumenty vo vzorci.

Spreadsheet-key je STRING, ktorý je hodnota kľúča z tabuľky URL.

Range je STRING, ktorý predstavuje rozsah buniek, ktoré chcete importovať, voliteľne vrátane názvu hárku (predvolené nastavenie je prvý list). Môžete použiť aj názov rozsahu, ak si to želáte.

Vzhľadom na to, že dva argumenty sú STRINGy, musíte ich uzavrieť do úvodzovkách alebo odkazovať na bunky, ktoré majú reťazcové hodnoty.

Napríklad:

=importrange("abcd123abcd123", "sheet1!A1:C10") "abcd123abcd123" je hodnota v atribúte "key=" na URL cieľového tabuľkového procesora a "sheet1!A1:C10" je rozsah, ktorý je sa má importovať.

=importrange(A1,B1) Bunka A1 obsahuje reťazec ABCD123ABCD123 a bunka B1 obsahuje list1!A1:C10

Poznámka: Ak chcete použiť ImportRange, musíte musíte byť pridaný ako prehliadač alebo spolupracovník do tabuľky z z ktorej ImportRange čerpá údaje. V opačnom prípade sa zobrazí táto chyba: "#REF! error: Požadované údaje sa nezapočítavajú. kľúč tabuľky, názov listu alebo bunky rozsah nebol nájdený."

"kľúč" je samozrejme reťazec v adrese URL pre tabuľku, ktorý zodpovedá parametru key=.

Práve som to otestoval vytvorením dvoch tabuľkových hárkov. Do bunky A1 prvého som vložil reťazec. Do bunky A1 druhej som vložil =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1") a zobrazil sa reťazec z prvej tabuľky. (Váš kľúč bude zrejme iný.)

(Formát funkcie môže závisieť od vášho lokálneho prostredia. Vo Francúzsku vzorec nie je platný s čiarkou, takže ju budete musieť nahradiť bodkočiarkou: =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1"))

NOTES:

  1. Google v súčasnosti stanovuje pevný limit 50 "odkazových vzorcov medzi zošitmi" na jednu tabuľku. Zdroj: Google Docs, Sheets, and Slides size limits. (h/t JJ Rohrer)

  2. V "novom" tabuľkovom procesore Google (ktorý sa čoskoro stane štandardom) sa odstráni limit 50 "odkazových vzorcov medzi jednotlivými zošitmi (Podpora Google). (h/t Jacob Jan Tuinstra)

  3. V "nových" tabuľkách Google môžete ako kľúč použiť aj celú adresu URL (Podpora Google). (h/t Punchlinern)

Komentáre (7)

V novom rozhraní by ste mali byť schopní jednoducho napísať = do bunky, potom jednoducho prejsť na druhý list a vybrať požadovanú bunku. Ak to chcete urobiť ručne alebo používate staré rozhranie, môžete jednoducho zadať =List1!A1, kde List1 je názov listu a A1 je bunka na tomto liste, ktorá vás zaujíma. Tento postup je identický s programom Microsoft Excel.

Komentáre (5)

Tu je spôsob, ako som to urobil (reimplementované 'importrange()'):

  • otvorte editor skriptov ("tools" -> "scripts" -> "script editor")
  • vytvorte takúto funkciu (bez akýchkoľvek kontrol, treba to vylepšiť, ale rámcovú predstavu máte):
funkcia REMOTEDATA(inKey, inRange) {

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

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

return outData; }

  • použite tento vzorec takto v tabuľke:
=SUM(REMOTEDATA("key", "SheetName!A1:A10"))

"key" je kľúč dokumentu, nájdete ho v parametri "key=xyz" adresy URL dokumentu.

dokumentácia pre 'tabuľkové služby' poskytuje viac informácií na túto tému.

Komentáre (3)