Tampilkan nama sheet di Google Spreadsheets

39

Apakah ada cara untuk menampilkan nama sheet sebagai hasil dari fungsi di Google Spreadsheets (persis seperti pertanyaan ini , kecuali di Google Sheets)?

oldrobotsneverrust
sumber
Silakan lihat jawaban saya untuk pertanyaan ini di stackoverflow: stackoverflow.com/a/53409439/279326
Nicolas Janel

Jawaban:

11

Seseorang telah menulis skrip untuk melakukan ini. Ini tersedia dalam Alat > Script galeri ... . Cari "nama lembar" dan instal skrip, lalu gunakan dengan =getCurrentSheetName().

William Jackson
sumber
9
Bagaimana cara mengakses skrip ini di Google Sheets "baru" (yang sekarang menggunakan toko tambahan)?
Benjamin
4
Ini tidak lagi berfungsi. Gunakan jawaban dari @ user93341. Saya melalui seluruh proses untuk mempublikasikan fungsinya ke Add-On Store dan pada langkah terakhir mereka ingin $ 5 untuk memverifikasi akun saya dan saya akan dibatasi untuk menerbitkan 20 item. Le menghela nafas.
Bruno Bronosky
49

Buka AlatEditor Skrip dan tambahkan kode ini:

function sheetName() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

Dalam sel tempat Anda ingin menambahkan nama sheet:

=sheetName()

Ada masalah dengan mengakses nama sheet melalui fungsi API yang ditunjukkan di bawah ini - di mana ia hanya mengembalikan nama sheet pertama. Ini diperbaiki pada Maret 2015 .

pengguna12345
sumber
Bisakah Anda memperluas jawaban Anda untuk kami yang tidak terbiasa dengan alat skrip?
codingbadger
1
@Barry 1) Pilih Alat-> Editor Skrip 2) Dalam file teks yang dihasilkan, tambahkan fungsi ini di akhir 3) Klik simpan 4) Sekarang Anda dapat menggunakan fungsi ini di sheet Anda.
gamliela
5
Meskipun fungsi ini berfungsi dengan baik, itu tidak diperbarui ketika nama sheet berubah, jadi itu sebenarnya tidak berguna.
jesjimher
1
@jesjimher menurut Forum Bantuan Google Documents ini , jika seseorang pergi ke editor skrip dan menyimpan kembali skrip, kembali ke lembar yang melihat bahwa nama tab telah diperbarui dengan benar.
aribeiro
1
Saya tahu, tapi ini membingungkan dan sangat berlawanan dengan cara kerja lembar rumus. Saya mengharapkan formula untuk diperbarui setiap kali data yang direferensikan berubah. Sekarang rumus ini tidak melakukan itu kecuali saya membuka dan menyimpan skrip sumber. Saya bisa memasukkan nama lembar dengan tangan setiap waktu, menghemat kerumitan.
jesjimher
6

Berikut ini cuplikan kode Fungsi Kustom untuk mendapatkan nama spreadsheet dengan Pengenalnya .

function GetSpreadsheetNameById(id) {
  var ss = SpreadsheetApp.openById(id);
  return ss.getName();
}

Di dalam sel, berikan Pengidentifikasi lembar (lihat URL spreadsheet untuk pengidentifikasi).

=GetSpreadsheetNameById('49nvkwOE-203nXDLGGJtg0htFKK020dsd939AAPZU')
JamesThomasMoon1979
sumber
1
Ini hanya sedikit perubahan ke @ user93341 jawaban di atas.
JamesThomasMoon1979
Ini memberikan kesalahan berikut: "Anda tidak memiliki izin untuk memanggil SpreadsheetApp.openById."
Aurovrata
Ini mengembalikan nama dokumen alih-alih nama lembar, ganti return ss.getName();dengan return ss.getActiveSheet().getName();jika Anda ingin nama lembar (saya benar-benar membutuhkan nama dokumen, jadi terima kasih)
Emilien
-1

Coba ini:

function getNameOfThisSheet() {
  return SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getName();
}

Rekatkan di Alat> Editor skrip dan panggil fungsi dari sel seperti ini:

=getNameOfThisSheet(NOW())

The NOW(), mantan GoogleClock(), parameter membantu masalah menghindari dengan memoization.

GlobeCore.com
sumber
GOOGLECLOCK () digantikan oleh NOW () oleh fungsi non-deterministik lainnya tidak dapat digunakan sebagai argumen fungsi kustom.
Rubén