Hoe kan ik een cel in Google Spreadsheets koppelen aan een cel in een ander document?

Ik heb een maandelijkse spreadsheet die gebaseerd is op cijfers van de vorige maand. Ik zou deze waarden graag dynamisch importeren in plaats van ze te knippen en te plakken. Is dit mogelijk? Hoe moet ik dat doen?

Oplossing

IMPORTRANGE() lijkt de functie te zijn die je wilt.

Uit de Google spreadsheets functie lijst:

Google Spreadsheets laat je verwijzen een andere werkmap in de spreadsheet dat u'momenteel aan het bewerken bent met behulp van de functie ImportRange. ImportRange laat u een of meer celwaarden trekken van de ene spreadsheet naar de andere. Op uw eigen ImportRange-formules te maken, enter =importRange(spreadsheet-sleutel, bereik). Voor talen waar komma's gebruikt voor decimaal scheiding, gebruik een puntkomma in plaats van een komma om argumenten in uw formule te scheiden.

Spreadsheet-key is een STRING die is de sleutelwaarde uit de spreadsheet URL.

Bereik is een STRING die de bereik van cellen die u wilt importeren, optioneel inclusief de bladnaam (standaard is dit het eerste blad). U kunt ook een bereiknaam gebruiken als u dat liever hebt.

Gegeven dat de twee argumenten STRINGs zijn, moet u ze omsluiten tussen tussen aanhalingstekens of verwijzen naar cellen die string-waarden in zich hebben.

Bijvoorbeeld:

=importrange("abcd123abcd123", "sheet1!A1:C10") "abcd123abcd123" is de waarde in het "key=" attribuut op de URL van het doelspreadsheet en "sheet1!A1:C10" is het bereik dat geïmporteerd moet worden.

=importrange(A1,B1) Cel A1 bevat de string ABCD123ABCD123 en cel B1 bevat blad1!A1:C10

Opmerking: Om ImportRange te gebruiken, moet u toegevoegd zijn als viewer of medewerker aan de spreadsheet van waaruit ImportRange de gegevens haalt. Anders krijgt u deze foutmelding: "#REF! error: De gevraagde spreadsheetsleutel, bladtitel, of cel bereik is niet gevonden."

"key" is, natuurlijk, de string in de URL voor het spreadsheet die overeenkomt met de key= parameter.

Ik heb het zojuist getest door twee spreadsheets te maken. In cel A1 van de eerste zet ik een string. In cel A1 van de tweede heb ik =importRange("tgR2P4UTz_KT0Lc270Ijb_A","A1") gezet en het gaf de string van de eerste spreadsheet weer. (Uw sleutel zal natuurlijk anders zijn.)

(De opmaak van de functie kan afhankelijk zijn van je locale. In Frankrijk is de formule niet geldig met een komma, dus je'zult het moeten vervangen door een puntkomma: =importRange("tgR2P4UTz_KT0Lc270Ijb_A";"A1"))

NOTES:

  1. Google stelt momenteel een harde limiet van 50 "cross-workbook reference formulas" per spreadsheet. Bron: Google Docs, Sheets, en Slides grootte limieten. (h/t JJ Rohrer)

  2. De "new" Google Spreadsheet (binnenkort de standaard) verwijdert de limiet van 50 "cross-workbook reference formulas (Google Support) (h/t Jacob Jan Tuinstra)

  3. In de "new" Google Sheets gebruik je ook de hele URL als sleutel (Google Support) (h/t Punchlinern)

Commentaren (7)

In de nieuwe interface zou je gewoon = in de cel moeten kunnen typen, dan ga je gewoon naar het andere blad en kies je de cel die je wilt. Als je het handmatig wilt doen, of als je de oude interface gebruikt, kun je gewoon =Sheet1!A1 doen, waarbij Sheet1 de naam van het blad is, en A1 de cel op dat blad is waar het om gaat. Dit is identiek aan Microsoft Excel.

Commentaren (5)

Hier is hoe ik het gedaan heb (opnieuw geïmplementeerd 'importrange()'):

  • open de script editor ("tools" -> "scripts" -> "script editor")
  • geef een functie als deze (zonder enige controle, dit moet nog verbeterd worden, maar je krijgt het algemene idee):
functie REMOTEDATA(inKey, inRange) {

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

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

return outData; }

  • gebruik deze formule als volgt in je spreadsheet:
=SUM(REMOTEDATA("key", "SheetName!A1:A10"))

"key" is de sleutel van het document, je vindt het in de "key=xyz" parameter van de document URL.

De documentatie voor 'spreadsheet services' geeft meer informatie over dit onderwerp.

Commentaren (3)