Jawaban:
Microsoft menjelaskan Anda mungkin perlu menggunakan rumus array untuk mendapatkan nama sheet:
Untuk menampilkan nama lembar kerja saat ini, ketikkan rumus berikut ini sebagai rumus larik
=RIGHT(CELL("filename"),LEN(CELL("filename"))- MAX(IF(NOT(ISERR(SEARCH("\",CELL("filename"), ROW(1:255)))),SEARCH("\",CELL("filename"),ROW(1:255)))))
di mana "nama file" secara harfiah kata "nama file", dalam tanda kutip.
CATATAN: Anda harus memasukkan rumus ini sebagai rumus larik. Untuk memasukkan rumus sebagai rumus array, tekan CTRL + SHIFT + ENTER.
Perhatikan juga bahwa ini sangat tergantung platform. Pada Mac, Anda akan memerlukan rumus yang berbeda , karena menggunakan pemisah jalur yang berbeda. Juga, ini mungkin bekerja secara berbeda di OpenOffice.org dan alternatif lain. Dan saat menggunakan pada buku kerja yang belum disimpan, Anda mungkin mendapatkan #VALUE!
sebagai gantinya.
Saat tidak menggunakan rumus array, Anda mungkin mendapatkan nama buku kerja (bagian terakhir dari nama file-nya), seperti:
Untuk mengembalikan nama buku kerja saja, seperti yang digunakan dalam rumus berikut:
=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)
Ini rumusnya.
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)
Pertama-tama simpan file Anda daripada memasukkan formula ini di mana saja
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
=RECHTS(ZELLE("dateiname");LÄNGE(ZELLE("dateiname"))-FINDEN("]";ZELLE("dateiname")))
;
alih-alih ,
ketika memisahkan elemen fungsi
Diuji dan bekerja pada M $ EXCEL dan LibreOffice CALC (Formula dalam bahasa Spanyol):
=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")))
Catatan: Ini adalah satu formula besar yang cocok di dalam formula lain atau hanya menggunakan satu sel.
Saya pikir dalam bahasa Inggris: EXTRAEB akan menjadi MIDB, CELDA akan menjadi CELL, SI akan menjadi JIKA, ESERROR akan menjadi ISERROR, HALLAR akan MENCARI dan, LARGO akan menjadi PANJANG.
Jauh lebih baik jika Anda membagi formula besar tersebut menjadi beberapa sel (untuk menghindari memanggil beberapa kali yang sama):
=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>))
Kenapa mendapatkan nama sheet sangat rumit, sementara mendapatkan posisi sheet pada daftar sheet begitu mudah di spreadsheet modern (peringatan, pada EXCEL 2000 yang satu ini tidak ada): =HOJA(A1)
Dan satu hal lagi: mengapa fungsi-fungsi dipanggil berbeda pada setiap bahasa, bagaimana jika saya punya M $ EXCEL adalah bahasa Spanyol dan CALC dalam bahasa Inggris (belum lagi bahasa Rusia, Chinesse, dll)? kerja keras, perlu mengingat semua nama fungsi pada idiom yang berlipat ganda.
Secara internal mereka disimpan dengan nama-nama tertentu, misalnya =SHEET(A1)
yang sama seperti =HOJA(A1)
disimpan sebagai =_xlfn.SHEET(A1)
; mengapa tidak digunakan pada semua idiom yang terakhir?
Atau mengatakan dalam bentuk lain: mengapa jika saya menaruhnya dalam bahasa Inggris itu mengatakan itu bukan nama fungsi vaild (jika CALC / M $ EXCEL tidak menggunakan bahasa Inggris)?
Dengan M $ ACCESS dan fungsi SQL yang tidak terjadi, pada versi Spanyol saya bisa mengetiknya dalam bahasa Spanyol ESNULO()
dan bahasa Inggris ISNULL()
dan dibutuhkan dengan benar.
Jika terlalu rumit untuk menerima keduanya; baik, maka hanya menerima satu, jangan melokalkan ke idom!
Nah, terus mempertanyakan, trik yang saya gunakan pada formula besar itu adalah untuk menguji apakah ]
ada (M $ EXCEL), tes lain jika ada '#$
(LibreOffice CALC) saat mengekstraksi nama dari =CELL("filename")
. Ini sangat aneh!
Lagi dengan pertanyaan sarkastik: Mengapa mereka menambahkan =SHEET(A1)
dan tidak =SHEETNAME(A1)
? Itu membuat kita semua bekerja lebih keras!
Di LibreOffice, saya telah mencampur formula Anda menjadi yang berikut, dan angka 20 menjelang akhir akan menjadi batas karakter yang akan ditampilkan:
= (SUBSTITUTE (MID ((KANAN (CELL ("nama file"))), LEN (CELL ("nama file")))) - MAX (JIKA (BUKAN (ISERR (SEARCH ("\", CELL ("nama file"), ROW (1 : 255: 255)))), SEARCH ("\", CELL ("nama file"), ROW (1: 255: 255)))))), FIND ("# $", (KANAN (CELL ("nama file) "), LEN (CELL (" filename ")) - MAX (JIKA (BUKAN (ISERR (SEARCH (" \ ", CELL (" nama file "), ROW (1: 255: 255)))), SEARCH (" \ ", CELL (" filename "), ROW (1: 255: 255)))))))) 2,20), 1,1))