Чи можна отримати ім’я аркуша?


12

Як я можу отримати назву аркуша у комірці? (У мене є більше одного аркуша, я хочу отримати струм на кожному аркуші)

Відповіді:


7

Microsoft пояснює, що вам може знадобитися використовувати формулу масиву, щоб отримати назву аркуша:

Щоб відобразити ім'я поточного робочого аркуша, введіть наступну формулу як формулу масиву

=RIGHT(CELL("filename"),LEN(CELL("filename"))-
  MAX(IF(NOT(ISERR(SEARCH("\",CELL("filename"),
  ROW(1:255)))),SEARCH("\",CELL("filename"),ROW(1:255)))))

де "ім'я файлу" - це буквально слово "ім'я файлу", у лапках.

ПРИМІТКА. Ви повинні ввести цю формулу як формулу масиву. Щоб ввести формулу як формулу масиву, натисніть CTRL + SHIFT + ENTER.

Також зауважте, що це дуже залежить від платформи. На Mac вам знадобляться різні формули , оскільки він використовує різні роздільники шляхів. Крім того, це може працювати по-різному на OpenOffice.org та інших альтернативах. І коли ви користуєтеся збереженою робочою книжкою, ви можете отримати #VALUE!замість цього.

Якщо не використовується формула масиву, ви можете отримати ім’я робочої книги (остання частина її імені файлу), наприклад:

Щоб повернути назву лише робочої книги, як використовується у такій формулі:

=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1,
  SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)

7

Ось формула.

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)

( Посилання на додаткову інформацію )


Зауважте, що посилання на "A1" не потрібне. Також зауважте, що це не залежить від платформи, і що формула може залишатися порожньою, поки ви не збережете робочу книгу. Дивіться також support.microsoft.com/kb/323225
Arjan

Якщо я покладу це на двох робочих аркушах, воно матиме однакове ім’я в обох. Він не отримує поточного робочого аркуша, де знаходиться клітина. Він отримує поточний робочий аркуш, який я переглядаю і копіює значення у всіх інших полях усіх інших робочих аркушів.
BrunoLM

2

Спочатку збережіть свій файл, ніж будь-де введіть цю формулу

=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))

+ Це працює і є коротким. Зі сторони: На німецькій =RECHTS(ZELLE("dateiname");LÄNGE(ZELLE("dateiname"))-FINDEN("]";ZELLE("dateiname")))
мові

У моєму випадку мені довелося використовувати ;замість того, ,щоб розділяти елементи функції
WoJ

0

Випробуваний і працює на M $ EXCEL та LibreOffice CALC (Формула - іспанською мовою):

=EXTRAEB(CELDA("filename");SI(ESERROR(1+HALLAR("]";CELDA("filename")));SI(ESERROR(3+HALLAR("'#$";CELDA("filename")));0;3+HALLAR("'#$";CELDA("filename")));1+HALLAR("]";CELDA("filename")));LARGO(CELDA("filename")))

Примітка. Це одна величезна формула, щоб вміститись у інші формули або використовувати лише одну клітинку.

Я думаю, що англійською мовою: EXTRAEB буде MIDB, CELDA буде CELL, SI буде, якщо IFER, ESERROR буде ISERROR, HALLAR буде ЗНАЙДЕНО, а LARGO буде LENGTH.

Набагато краще, якщо ви поділите таку величезну формулу на кілька комірок (щоб уникнути виклику одних і тих же кількох разів):

  1. =CELDA("filename")
  2. =1+HALLAR("]";<CellReferenceFor_1>)
  3. =3+HALLAR("'#$";<CellReferenceFor_1>)
  4. =ESERROR(<CellReferenceFor_2>;)
  5. =ESERROR(<CellReferenceFor_3>;)
  6. =EXTRAEB(<CellReferenceFor_1>;SI(<CellReferenceFor_4>;SI(<CellReferenceFor_5>;0;<CellReferenceFor_5>);<CellReferenceFor_4>);LARGO(<CellReferenceFor_1>))

Чому на пеклі отримати назву аркуша настільки складно, тоді як отримати положення аркуша у списку аркушів так просто на сучасній електронній таблиці (попередження, на EXCEL 2000 цього не існує): =HOJA(A1)

І ще: чому функції називаються різними на кожній мові, що робити, якщо у мене M $ EXCEL - це іспанська та CALC англійською (не кажучи російською, китайською тощо)? яка важка робота, потрібно запам’ятати всі назви функцій на множинні ідіоми.

Всередині них зберігаються спеціальні імена, наприклад =SHEET(A1), це те саме, що =HOJA(A1)зберігається =_xlfn.SHEET(A1); чому б не використати у всіх ідіомах останній ?.

Або сказано в іншій формі: чому, якщо я поклав це англійською мовою, це скаже, що це не найменування функції vaild (якщо CALC / M $ EXCEL не на англійській мові)?

З функціями M $ ACCESS та SQL, що не відбувається, в іспанській версії я можу їх набрати на іспанській ESNULO()та англійській мовах, ISNULL()і це сприймає правильно.

Якщо занадто складно прийняти обидва; ну тоді прийміть лише одне, не локалізуйте для множення ідомів!

Що ж, повертаючись до питання, хитрість, яку я використовую у цій величезній формулі, полягає у тестуванні, чи ]існує (M $ EXCEL), інакше тестування, якщо існує '#$(LibreOffice CALC), витягуючи ім'я з =CELL("filename"). Це так дивно!

Знову з саркастичними питаннями: Чому вони додавали, =SHEET(A1)а ні =SHEETNAME(A1)? Це змушує всіх нас важче працювати!


-1

У LibreOffice я змішав вашу формулу з наступною, і число 20 до кінця буде обмеженням для символів, які будуть відображатися:

= (SUBSTITUTE (MID ((ВПРАВО (CELL ("ім'я файлу"), LEN (CELL ("ім'я файлу")) - MAX (АБО (НЕ (ISERR (SEARCH ("\", CELL ("ім'я файлу"), ROW (1 : 255: 255)))), SEARCH ("\", CELL ("ім'я файлу"), ROW (1: 255: 255)))))), FIND ("# $", (RIGHT (CELL ("ім'я файлу) "), LEN (CELL (" ім'я файлу ")) - MAX (АБО (НЕ (ISERR (SEARCH (" \ ", CELL (" ім'я файлу "), ROW (1: 255: 255)))), SEARCH (" \ ", CELL (" ім'я файлу "), ROW (1: 255: 255))))))) + 2,20), 1,1))


1
Це для MS Excel.
Джеймс Мерц
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.