ฉันจะรับชื่อชีตในเซลล์ได้อย่างไร (ฉันมีมากกว่าหนึ่งแผ่นฉันต้องการได้รับกระแสในแต่ละแผ่น)
ฉันจะรับชื่อชีตในเซลล์ได้อย่างไร (ฉันมีมากกว่าหนึ่งแผ่นฉันต้องการได้รับกระแสในแต่ละแผ่น)
คำตอบ:
Microsoft อธิบายว่าคุณอาจต้องใช้สูตรอาร์เรย์เพื่อรับชื่อชีต:
หากต้องการแสดงชื่อของแผ่นงานปัจจุบันให้พิมพ์สูตรต่อไปนี้เป็นสูตรอาร์เรย์
=RIGHT(CELL("filename"),LEN(CELL("filename"))- MAX(IF(NOT(ISERR(SEARCH("\",CELL("filename"), ROW(1:255)))),SEARCH("\",CELL("filename"),ROW(1:255)))))
โดยที่ "filename" เป็นตัวอักษรคำว่า "filename" ในเครื่องหมายคำพูด
หมายเหตุ: คุณต้องป้อนสูตรนี้เป็นสูตรอาร์เรย์ ในการป้อนสูตรเป็นสูตรอาร์เรย์ให้กด CTRL + SHIFT + ENTER
โปรดทราบด้วยว่านี่ขึ้นอยู่กับแพลตฟอร์มเป็นอย่างมาก ใน Mac คุณจะต้องใช้สูตรที่แตกต่างกันเนื่องจากมันใช้ตัวคั่นเส้นทางที่แตกต่างกัน นอกจากนี้อาจทำงานแตกต่างกันใน OpenOffice.org และทางเลือกอื่น ๆ และเมื่อใช้กับสมุดงานที่ไม่ได้บันทึกคุณอาจได้รับ#VALUE!
แทน
เมื่อไม่ใช้สูตรอาเรย์คุณอาจได้รับชื่อเวิร์กบุ๊ก (ส่วนสุดท้ายของชื่อไฟล์) ดังนี้:
ในการส่งคืนชื่อของเวิร์กบุ๊กเท่านั้นเช่นใช้ในสูตรต่อไปนี้:
=MID(CELL("filename"),SEARCH("[",CELL("filename"))+1, SEARCH("]",CELL("filename"))-SEARCH("[",CELL("filename"))-1)
นี่คือสูตร
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,256)
ก่อนบันทึกไฟล์ของคุณมากกว่าใส่สูตรนี้ทุกที่
=RIGHT(CELL("filename"),LEN(CELL("filename"))-FIND("]",CELL("filename")))
=RECHTS(ZELLE("dateiname");LÄNGE(ZELLE("dateiname"))-FINDEN("]";ZELLE("dateiname")))
;
แทน,
เมื่อแยกองค์ประกอบของฟังก์ชัน
ทดสอบและทำงานกับ 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 จะเป็น IF, ESERROR จะเป็น ISERROR, HALLAR จะเป็น LINDTH และ LARTH จะเป็น LENGTH
มันจะดีกว่ามากถ้าคุณแยกสูตรขนาดใหญ่ออกเป็นหลาย ๆ เซลล์ (เพื่อหลีกเลี่ยงการเรียกหลาย ๆ ครั้ง):
=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>))
เหตุใดชื่อแผ่นชีทที่นรกจึงซับซ้อนมากในขณะที่การวางตำแหน่งชีทในรายการชีตนั้นง่ายมากในสเปรดชีตสมัยใหม่ (คำเตือนบน EXCEL 2000 อันนี้ไม่มีอยู่จริง): =HOJA(A1)
และอีกอย่าง: ทำไมฟังก์ชั่นจึงถูกเรียกแตกต่างกันในแต่ละภาษาจะเกิดอะไรขึ้นถ้าฉันมี M $ EXCEL เป็นภาษาสเปนและ CALC ในภาษาอังกฤษ (ไม่ต้องพูดภาษารัสเซียจีนและ ฯลฯ ) ช่างเป็นงานที่ยากต้องจำชื่อฟังก์ชันทั้งหมดในสำนวนทวีคูณ
ภายในพวกเขาจะถูกบันทึกไว้ด้วยชื่อ speific เช่น=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)
? มันทำให้พวกเราทุกคนทำงานหนักขึ้น!
ใน LibreOffice ฉันได้ผสมสูตรของคุณเข้ากับสิ่งต่อไปนี้และจำนวน 20 ต่อท้ายจะเป็นขีด จำกัด ของตัวละครที่จะแสดง:
= (SUBSTITUTE (MID ((ขวา (CELL ( "ชื่อไฟล์") LEN (CELL ( "ชื่อไฟล์")) - MAX (IF (NOT (ISERR (Search ( "\" เซลล์ ( "ชื่อไฟล์"), ROW (1 : 255: 255)))) ค้นหา ( "\" เซลล์ ( "ชื่อไฟล์"), ROW (1: 255: 255)))))) ค้นหา ( "# $" (ขวา (CELL ( "ชื่อไฟล์ ") LEN (CELL (" ชื่อไฟล์ ")) - MAX (IF (NOT (ISERR (Search (" \ "เซลล์ ( "ชื่อไฟล์"), ROW (1: 255: 255)))), การค้นหา (" \ " เซลล์ ( "ชื่อไฟล์"), ROW (1: 255: 255))))))) + 2,20), 1,1))