Продължете към съдържанието

Как да получим името на текущия страница (sheet) в Google Spreadsheets

Google Sheets не предлага вградена формула като =SHEETNAME(), която да връща името на текущата страница — а често използвани заобиколни методи като CELL("address", A1) вече не работят надеждно.

В тази статия ще ти покажем правилния и стабилен начин да получиш името на текущия лист чрез Google Apps Script. Ще обясним и как безопасно да използваш това име в URL адреси или API заявки.

❌ Защо CELL("address", A1) не работи
Широко разпространена формула е:

=CELL("address", A1)
Преди връщаше 'SheetName'!A1 в някои инструменти като Excel. Но в Google Sheets връща само:

$A$1
— само адреса на клетката, без името на листа. Това я прави безполезна за динамично извличане на текущото име на листа.

✅ Надеждният начин: използвай проста Apps Script функция
Най-точният и стабилен метод е да добавиш малка персонализирана функция чрез Google Apps Script.

Стъпка по стъпка:
В таба на таблицата отвори Разширения (Extensions) → Apps Script

Изтрий всякакъв примерен код и постави следното:

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


Натисни Запази или използвай CMD+S (Mac) или CTRL+S (Windows/Linux)

Затвори редактора на скриптове. Избери си кутийка в таблицата и напиши:

=MY_BIZ_SHEET_NAME()
Това ще върне името на текущия лист, независимо дали съдържа интервали, тирета, емоджита и т.н.

Важно: Използвай префикс (напр. MY_BIZ_), за да е ясно, че това е персонализирана функция, а не стандартна.

🔧 Бонус: Използвай името на страницат в линкове/URL (encode)
Ако планираш да използваш името на листа във формула като IMPORTDATA, най-добре е да го закодираш като URL. Google Sheets няма вградена функция ENCODEURL(), но можеш да си я добавиш:

Добави персонализирана функция ENCODEURL
В същия редактор на Apps Script добави това:

function MY_BIZ_ENCODE_URL(input) {
 return encodeURIComponent(input);
}

Запази скрипта
Използвай така във своя Google Spreadsheet документ:

=IMPORTDATA("https://example.com/data?sheet=" & MY_BIZ_ENCODE_URL(MY_BIZ_SHEET_NAME()))

Така ще гарантираш, че URL адресът е безопасен, дори ако името на листа съдържа:

интервали (%20)
символи като #, &, /
Юникод или акцентирани букви

Двата скрипта трябва да изглеждат така, както са в примерите горе.

Google Spreadsheets Ext Scripts

📌 Приложения
Ето къде това е полезно:

- Автоматично етикетиране на справки по името на страницата/листа
- Динамично изграждане на URL за API заявки
- Дебъгване на табла и шаблони
- Показване на текущото име на листа в заглавна клетка
- Зареждане на данни според името на листа, например Report-2025-01, а сървърът може да извлече необходимите данни.

🚀 Финални мисли
Докато Google не въведе официална функция =SHEETNAME(), този подход с Apps Script е най-надежден начин да получиш текущото име на листа в Google Sheets — и да го използваш във формули.

💡 Идеята за тази статия дойде от този въпрос в Stack Overflow https://stackoverflow.com/questions/45502538/is-there-a-google-sheets-formula-to-put-the-name-of-the-sheet-into-a-cell

Вашият коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *