Mostrar el nombre de la hoja en las hojas de cálculo de Google

39

¿Hay alguna forma de mostrar el nombre de una hoja como resultado de una función en las Hojas de cálculo de Google (exactamente como esta pregunta , excepto en Hojas de cálculo de Google)?

oldrobotsneverrust
fuente
Vea mi respuesta a esta pregunta en stackoverflow: stackoverflow.com/a/53409439/279326
Nicolas Janel el

Respuestas:

11

Alguien ha escrito un guión para hacer esto. Está disponible en Herramientas > Galería de secuencias de comandos ... . Busque "nombre de hoja" e instale el script, luego úselo con =getCurrentSheetName().

William Jackson
fuente
9
¿Cómo acceder a este script en las "nuevas" Hojas de cálculo de Google (que ahora usan una tienda de complementos)?
Benjamin
44
Esto ya no funciona. Use la respuesta de @ user93341. Pasé por todo el proceso para publicar su función en la tienda de complementos y en el último paso querían $ 5 para verificar mi cuenta y estaría limitado a publicar 20 artículos. Le suspiro.
Bruno Bronosky
49

Vaya a HerramientasEditor de secuencias de comandos y agregue este código:

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

En una celda donde desea agregar el nombre de la hoja:

=sheetName()

Hubo un problema al acceder a los nombres de las hojas a través de las funciones de la API que se muestran a continuación, donde solo devolvió el nombre de la primera hoja. Esto se solucionó en marzo de 2015 .

user12345
fuente
¿Podría ampliar su respuesta para aquellos de nosotros que no estamos familiarizados con la herramienta de script?
codingbadger
1
@Barry 1) Seleccione Herramientas-> Editor de secuencias de comandos 2) En el archivo de texto resultante, agregue esta función al final 3) Haga clic en guardar 4) Ahora puede usar esta función en su hoja.
gamliela
55
Si bien esta función funciona bien, no se actualiza cuando cambia el nombre de la hoja, por lo que no es realmente útil.
jesjimher
1
@jesjimher de acuerdo con este Foro de ayuda de Google Docs , si uno va al editor de guiones y vuelve a guardar el guión, volviendo a la hoja se ve que los nombres de las pestañas se actualizaron correctamente.
aribeiro
1
Lo sé, pero es confuso y totalmente opuesto a cómo funcionan las fórmulas de hoja. Espero que una fórmula se actualice cada vez que cambien sus datos de referencia. Ahora esta fórmula no hace eso a menos que abra y guarde el script de origen. Simplemente podría ingresar el nombre de la hoja a mano cada vez, ahorrando la molestia.
jesjimher
6

Aquí hay un fragmento de código de función personalizada para obtener un nombre de hoja de cálculo por su identificador .

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

En una celda, pase un identificador de hoja (busque en el URL de la hoja de cálculo el identificador).

=GetSpreadsheetNameById('49nvkwOE-203nXDLGGJtg0htFKK020dsd939AAPZU')
JamesThomasMoon1979
fuente
1
Esto es solo un ligero cambio en la respuesta anterior de @ user93341.
JamesThomasMoon1979
Esto da el siguiente error: "No tiene permiso para llamar a SpreadsheetApp.openById".
Aurovrata
Esto devuelve el nombre del documento en lugar del nombre de la hoja, en lugar de return ss.getName();por return ss.getActiveSheet().getName();si desea escuchar el nombre de la hoja (que en realidad necesitaba el nombre del documento, por lo que gracias)
Emilien
-1

Prueba esto:

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

Péguelo en Herramientas> Editor de secuencias de comandos y llame a la función desde una celda como esta:

=getNameOfThisSheet(NOW())

La NOW()ex GoogleClock(), parámetro ayuda Evitar en caso de problemas memoization.

GlobeCore.com
fuente
GOOGLECLOCK () fue reemplazado por NOW () por otra parte, las funciones no deterministas no pueden usarse como argumentos de funciones personalizadas.
Rubén