Die beste Lösung, die ich bisher gefunden habe, ist:
worksheet_name!$A$1:$YY
aber idealerweise möchte ich einfach schreiben können, zB:
worksheet_name!
Weiß jemand: Gibt es eine Syntax für die Angabe eines ganzen Blattes als Bereich?
Die beste Lösung, die ich bisher gefunden habe, ist:
worksheet_name!$A$1:$YY
aber idealerweise möchte ich einfach schreiben können, zB:
worksheet_name!
Weiß jemand: Gibt es eine Syntax für die Angabe eines ganzen Blattes als Bereich?
Antworten:
Ich habe ein kleines Google Apps Script (GAS) -Snippet erstellt, um die Arbeit für Sie zu erledigen.
function sheetRange(targetName,int) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var asName = ss.getActiveSheet().getSheetName();
var tgSheet = ss.getSheetByName(targetName);
var output;
if(targetName == asName) {
output = "Error: target sheet is active sheet !!";
} else {
switch(int) {
case 1:
output = tgSheet.getDataRange().getValues();
break;
case 2:
output = tgSheet.getSheetValues(1, 1, tgSheet.getMaxRows(),
tgSheet.getMaxColumns());
break;
default:
output = "Choose int to be 1 or 2 !!";
}
}
return output;
}
Wählen Sie im Tabellenkalkulationsmenü Extras> Skripteditor und fügen Sie den Code hinzu. Stellen Sie sicher, dass Sie den Bug-Button drücken:
=sheetRange("sheetName",int)
Verwenden Sie die int
Option wie unter Bemerkungen erläutert.
Ich habe dir eine Beispieldatei erstellt: Sheet as Range
In diesem Fall gibt es zwei Möglichkeiten, einen Bereich in einer Tabelle über GAS zu bestimmen:
int=1
; Über die getDataRange
Methode. Dadurch wird ein Bereich abgerufen, in dem sich in der letzten Spalte Daten befinden. Gleiches gilt für die Anzahl der Zeilen. Dies ist normalerweise der einfachste Weg. Siehe zweites Blatt in der Beispieldatei.int=2
; Über die getSheetValues
Methode. Dadurch wird ein "WYSIWYG" -Bereich abgerufen. Siehe drittes Blatt in der Beispieldatei.Google Sheets hat keine Bereichssyntax für den gesamten Blattbereich.
Die folgende Formel gibt die Bereichsadresse des gesamten Blatts Sheet1 zurück
="Sheet1!"&ADDRESS(1,1,,TRUE)&":"&ADDRESS(ROWS(Sheet1!A:A),COLUMNS(Sheet1!1:1),,TRUE)
Um es als Referenz zu verwenden, fügen Sie es in INDIRECT ein. Die folgende Formel gibt ein Array aller Werte in Sheet1 zurück.
= ArrayFormula ( INDIREKT( "Blatt1!" & ADRESSE (1,1,, WAHR) & ":" & ADRESSE (REIHEN (Sheet1! A: A), SPALTEN (Sheet1! 1: 1) ,, WAHR) , WAHR ) )
Ich kenne keine bestimmte, aber ich denke, Sie können einige Formeln verwenden, wenn Sie die Anzahl der Zeilen / Spalten nicht kennen:
indirect("Sheet!1:"&countif(Sheet!A:A,"<>@")+countif(Sheet!A:A,"=@"))
Hier Sheet
ist Ihr Blattname und @
eine beliebige Zeichenfolge. Wenn sich das ausgewählte Blatt @
in einer Zelle befindet, funktioniert es nicht. Sie können es durch ein anderes Zeichen ersetzen, wenn das Blatt eine solche Zelle enthält.
Die COUNITF
hier zählt die Anzahl der Zeilen in Spalte A: A enthält nicht @
, was alles sein sollte , wenn es keine Zellen enthalten , sind sie, und INDIRECT
Transformationen Sheet!1:###
(wo ###
ist die Anzahl der Zeilen) in einem aktuellen ausgewählten Bereich.
Die besten Antworten wurden bereits für diejenigen gegeben, die mit appscript arbeiten. Wenn jedoch jemand außerhalb von Google Sheets ordnungsgemäß arbeitet, gibt es einen Ansatz, der Ihren Anforderungen entspricht:
"worksheet_name!1:" & ROWS(worksheet_name!A:A)
Erläuterung : * Sie geben den Bereich im Wesentlichen über eine Zeichenfolge an, die mit der Anzahl der Zeilen in Arbeitsblattname verknüpft ist.
Einige Vorteile dieses Ansatzes : * Es ist 'dynamisch' ... wenn Sie Zeilen am unteren Rand hinzufügen, wird der Bereich entsprechend angepasst. * Leichtgewicht - Sie können dies in eine Importbereichs- / Abfragefunktion einklappen
Nachteile : * Ich habe es nicht in allen Fällen ausprobiert und kann es daher nur für bestimmte Anwendungsfälle verwenden
Das funktioniert bei mir:
var ss = SpreadsheetApp.getActive();
var sh = ss.getSheets()[0];
var rg = sh.getName() +"!"+ sh.getDataRange().getA1Notation();
Kombinieren Sie in einem gebundenen Skript den Blattnamen mit einem "!" und erhalten Sie dann die A1-Notation des Datenbereichs auf dem ausgewählten Blatt
Ich konnte das gesamte Blatt auswählen, indem ich den Bereich als Blatt ohne Ausrufezeichen benannte.
Ich hatte eine Registerkarte namens Daten. Anstatt Daten zu verwenden! oder Daten! A1: ZZ.
Um das gesamte Blatt als Bereich anzugeben, verwenden Sie bitte:
worksheet_name!A1:ZZ
Sie können es hier ausprobieren: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/clear
oder wenn Sie Java verwenden (um alles in Sheet1 zu löschen):
Sheets service = getSheetsService(credential);
service.spreadsheets().values().clear(REPORT_WARNINGS_LATAM_FILEID, "Sheet1!A1:ZZ", new ClearValuesRequest()).execute();
oder wenn Sie es nur in einer Formel (zum Beispiel: SUM) auf einem anderen Blatt (zum Beispiel: Sheet2) verwenden möchten, können Sie folgenden Verweis verwenden:
=SUM(Sheet1!A1:ZZ)
^ Dadurch werden alle vorhandenen Zellen in Sheet1 summiert und der Wert in eine Zelle in Sheet2 eingefügt. Das Beispiel finden Sie hier: https://docs.google.com/spreadsheets/d/1rP3YCl3ErlYjlYGT_Q-xFvkVr7yKw6WQfHklbohL1NM/edit?usp=sharing . In diesem Beispiel haben wir 3 Spalten und 5 Zeilen in Sheet1, daher wählt diese Formel = SUMME (Sheet1! A1: ZZ) alle aus. Sie können Zeilen oder Spalten in Sheet1 hinzufügen, und diese Lösung wählt weiterhin alle Zellen aus.
PS: Wenn Sie meine Antwort ablehnen, erklären Sie bitte, warum.
Unter der Annahme, dass Sie die Anzahl der Zeilen kennen, können Sie das gesamte Blatt als "Arbeitsblattname" bezeichnen:
SCHRITTE:
Jetzt wird jedes Mal, wenn Sie "Arbeitsblattname" in einer Funktion verwenden, auf das gesamte Arbeitsblatt verwiesen.