Saya telah membuat cuplikan Google Apps Script (GAS) kecil, untuk melakukan pekerjaan untuk Anda.
Kode
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;
}
Di menu spreadsheet, pilih Alat> Editor skrip, dan tambahkan kode. Pastikan untuk menekan tombol bug:
Pemakaian
=sheetRange("sheetName",int)
Gunakan int
opsi seperti yang dijelaskan dalam komentar.
Contoh
Saya telah membuat contoh file untuk Anda: Sheet as Range
Komentar
Dalam hal ini, ada dua cara untuk menentukan rentang dalam spreadsheet melalui GAS:
int=1
; Melalui getDataRange
metode. Ini akan mengambil rentang, di mana kolom terakhir adalah yang memiliki data di dalamnya. Akun yang sama untuk jumlah baris. Ini biasanya rute yang paling mudah. Lihat lembar kedua dalam file contoh.
int=2
; Melalui getSheetValues
metode. Ini akan mengambil rentang "WYSIWYG". Lihat lembar ketiga dalam file contoh.
- Refresh rate dari jenis fungsi kustom ini tidak langsung, jadi harap bersabar. Diperlukan beberapa jam untuk menyegarkan data.
Referensi
Jacob Jan Tuinstra
sumber
Anda dapat menggunakan A: Z atau A: AB atau A: XX (dengan XX sebagai kolom terakhir dari halaman Anda):
sumber
Google Sheets tidak memiliki sintaks rentang untuk seluruh rentang sheet.
Rumus berikut akan mengembalikan alamat rentang seluruh lembar bernama Sheet1
Untuk menggunakannya sebagai referensi, letakkan di dalam INDIRECT. Rumus berikut akan mengembalikan array dari semua nilai di Sheet1.
sumber
Saya tidak tahu yang spesifik, tapi saya pikir Anda bisa menggunakan beberapa rumus jika Anda tidak tahu jumlah baris / kolom:
Di sini,
Sheet
adalah nama lembar Anda, dan@
merupakan string arbitrer. Jika lembar yang Anda pilih ada@
dalam satu sel, itu tidak akan berfungsi. Anda dapat menggantinya dengan karakter lain jika lembar tersebut berisi sel seperti itu.Di
COUNITF
sini menghitung jumlah baris dalam kolom A: A tidak mengandung@
, yang seharusnya menjadi semua jika tidak ada sel yang mengandungnya, danINDIRECT
mengubahSheet!1:###
(di mana###
jumlah baris) menjadi rentang yang dipilih sebenarnya.sumber
Jawaban terbaik telah diberikan bagi mereka yang beroperasi di dalam skrip apps, tetapi jika ada orang di luar sana yang bekerja dengan baik dalam Google Sheets, maka inilah pendekatan yang sesuai dengan kebutuhan Anda:
Penjelasan : * Anda pada dasarnya menentukan rentang melalui string yang digabungkan dengan jumlah baris di worksheet_name!
Beberapa keuntungan dari pendekatan ini : * Ini 'dinamis' ... jika Anda menambahkan baris ke bawah, rentang akan menyesuaikan sesuai * Ringan - Anda dapat menampar ini ke fungsi importrange / query
Kekurangan : * Belum mencobanya dalam semua kasus jadi mungkin hanya bekerja untuk kasus penggunaan khusus * Saya pribadi memiliki preferensi untuk membuat hal-hal menjadi dinamis / bersih sehingga fungsi kustom semacam itu akan menjadi jalan tengah yang baik antara appscript dan pendekatan ringan ini
sumber
Ini bekerja untuk saya:
Digunakan dalam skrip terikat, gabungkan sheetname dengan "!" dan kemudian mendapatkan notasi A1 dari rentang data pada lembar yang dipilih
sumber
Saya dapat memilih seluruh lembar dengan menyebutkan rentang sebagai lembar tanpa tanda seru.
Saya memiliki tab bernama data. Alih-alih menggunakan data! atau data! A1: ZZ.
sumber
Untuk menentukan seluruh sheet sebagai rentang, silakan gunakan:
Anda dapat mencobanya di sini: https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets.values/clear
atau jika Anda menggunakan Java (untuk menghapus semua yang ada di Sheet1):
atau jika Anda hanya ingin menggunakannya dalam rumus (misalnya: SUM) di lembar lain (misalnya: Sheet2) Anda dapat menggunakan referensi berikut:
^ Ini akan meringkas semua sel yang ada pada Sheet1 dan menempatkan nilai dalam sel pada Sheet2, Anda dapat menemukan contoh di sini: https://docs.google.com/spreadsheets/d/1rP3YCl3ErlYjlYGT_Q-xFvkVr7yKw6WQfHklbohL1NM/edit?usp=sharing . Dalam contoh ini kita memiliki 3 kolom dan 5 baris pada Sheet1, jadi rumus ini = SUM (Sheet1! A1: ZZ) memilih semuanya. Anda bisa menambahkan baris atau kolom pada Sheet1 dan solusi ini masih akan memilih semua sel.
PS: jika Anda memilih jawaban saya - mohon jelaskan mengapa.
sumber
Dengan asumsi Anda tahu jumlah baris, Anda dapat memberi nama seluruh sheet sebagai "worksheet_name":
TANGGA:
Sekarang setiap kali Anda menggunakan "worksheet_name" dalam suatu fungsi, itu akan mereferensikan seluruh lembar kerja.
sumber