¿Cómo puedo obtener el nombre de la hoja en una celda? (Tengo más de una hoja, quiero obtener la corriente en cada hoja)
fuente
¿Cómo puedo obtener el nombre de la hoja en una celda? (Tengo más de una hoja, quiero obtener la corriente en cada hoja)
Microsoft explica es posible que necesite utilizar una fórmula matricial para obtener el nombre de la hoja:
Para mostrar el nombre de la hoja de trabajo actual, escriba la siguiente fórmula como una fórmula matricial
=RIGHT(CELL("filename"),LEN(CELL("filename"))- MAX(IF(NOT(ISERR(SEARCH("\",CELL("filename"), ROW(1:255)))),SEARCH("\",CELL("filename"),ROW(1:255)))))
donde "nombre de archivo" es literalmente la palabra "nombre de archivo", entre comillas.
NOTA: Debe ingresar esta fórmula como una fórmula matricial. Para ingresar una fórmula como una fórmula matricial, presione CTRL + MAYÚS + ENTRAR.
También tenga en cuenta que esto es muy dependiente de la plataforma. En una Mac, necesitarás diferentes fórmulas , ya que utiliza diferentes separadores de trayectoria. Además, podría funcionar de manera diferente en OpenOffice.org y otras alternativas. Y cuando se utiliza en un libro de trabajo no guardado, puede obtener #VALUE!
en lugar.
Cuando no utilice una fórmula matricial, puede obtener el nombre del libro de trabajo (la última parte de su nombre de archivo), así:
Para devolver solo el nombre del libro de trabajo, como se usa en la siguiente fórmula:
=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)
Aquí hay una fórmula.
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)
Primero guarde su archivo que ingrese esta fórmula en cualquier lugar
fuente
=RECHTS(ZELLE("dateiname");LÄNGE(ZELLE("dateiname"))-FINDEN("]";ZELLE("dateiname")))
;
en lugar de,
Al separar los elementos de una función.Probado y funciona en M $ EXCEL y LibreOffice CALC (la fórmula está en español):
Nota: Es una fórmula enorme que cabe dentro de otras fórmulas o usa solo una celda.
Creo que en inglés: EXTRAEB sería MIDB, CELDA sería CELL, SI sería SI, ESERROR sería ISERROR, HALLAR sería ENCONTRADO y LARGO sería LONGITUD.
Es mucho mejor si divide una fórmula tan grande en varias celdas (para evitar llamar a la misma vez varias veces):
=CELDA("filename")
=1+HALLAR("]";<CellReferenceFor_1>)
=3+HALLAR("'#$";<CellReferenceFor_1>)
=ESERROR(<CellReferenceFor_2>;)
=ESERROR(<CellReferenceFor_3>;)
=EXTRAEB(<CellReferenceFor_1>;SI(<CellReferenceFor_4>;SI(<CellReferenceFor_5>;0;<CellReferenceFor_5>);<CellReferenceFor_4>);LARGO(<CellReferenceFor_1>))
Por qué demonios obtener el nombre de la hoja es tan complicado, mientras que obtener la posición de la hoja en la lista de hojas es tan fácil en la hoja de cálculo moderna (advertencia, en EXCEL 2000 este no existe):
=HOJA(A1)
Y otra cosa: ¿por qué las funciones se llaman diferentes en cada idioma? ¿Qué sucede si tengo M $ EXCEL es español y CALC en inglés (por no decir ruso, chino, etc.)? lo que es un trabajo duro, es necesario recordar todos los nombres de funciones en múltiples idiomas.
Internamente se guardan con nombres específicos, por ejemplo.
=SHEET(A1)
eso es lo mismo que=HOJA(A1)
se guarda como=_xlfn.SHEET(A1)
; ¿Por qué no usar en todos los idiomas el último?O dicho de otra forma: ¿por qué si lo pongo en inglés dice que no es el nombre de la función (si CALC / M $ EXCEL no está en inglés)?
Con las funciones de M $ ACCESS y SQL que no ocurren, en la versión en español puedo escribirlas en español
ESNULO()
y en inglesISNULL()
y lo toma correctamente.Si es demasiado complicado aceptar ambos; Bueno, entonces acepta solo uno, ¡no localices para multiplicar ídolos!
Will, volviendo a la pregunta, el truco que uso en esa enorme fórmula es probar si
]
existe (M $ EXCEL), de lo contrario prueba si existe'#$
(LibreOffice CALC) mientras extrae el nombre de=CELL("filename")
. ¡Es tan raro!Nuevamente con preguntas sarcásticas: ¿Por qué agregaron?
=SHEET(A1)
y no=SHEETNAME(A1)
? ¡Nos hace a todos un trabajo más duro!fuente
En LibreOffice, he mezclado tu fórmula con la siguiente, y el número 20 hacia el final será el límite de los caracteres que se mostrarán:
fuente