คุณจะแทรกชื่อไฟล์ปัจจุบันใน Excel ได้อย่างไร


14

ฉันกำลังพยายามดูชื่อไฟล์ที่ฉันกำลังทำงานในสเปรดชีต Excel ที่น่าสนใจโดยใช้สูตร เช่นถ้าไฟล์ชื่อ workbook1.xlsx ฉันต้องการให้เซลล์ A1 แสดง "workbook1.xlsx"

สูตรที่เว็บไซต์ความช่วยเหลือของ Microsoft ให้ใช้ไม่ได้: http://office.microsoft.com/en-us/excel-help/insert-the-current-excel-file-name-path-or-worksheet-in- ที่มีเซลล์ HA010103010.aspx # BMinsert3

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


มันไม่ทำงานในทางใด มันให้ผลผลิตอะไร คุณบันทึกเวิร์กบุคหรือไม่

คำตอบ:


14

มันทำงานได้ที่นี่ฉันเพิ่งทดสอบกับ Excel 2007 (XP) และ Excel 2013 (Windows 8)

ลองใช้=CELL("filename")คนเดียวก่อนเพื่อช่วยแก้ไขปัญหา

  • ตรวจสอบให้แน่ใจว่าคุณได้บันทึกสมุดงานของคุณลงในดิสก์ จะไม่แสดง "Book1" ถ้าคุณใส่สูตรในสมุดงานใหม่ที่ไม่ได้บันทึก

  • คุณใช้การตั้งค่าที่ไม่ใช่ภาษาอังกฤษในคอมพิวเตอร์ของคุณหรือไม่ บางภาษาที่ต้องการปรับชื่อฟังก์ชั่นและไวยากรณ์ของสูตร (ในภาษาฝรั่งเศสเช่นเครื่องหมายจุลภาคต้องถูกแทนที่ด้วยเครื่องหมายอัฒภาค)

  • คุณใช้คอมพิวเตอร์ส่วนตัวหรือคอมพิวเตอร์ในที่ทำงานหรือไม่? หากเป็นคอมพิวเตอร์ที่ทำงานอาจมีข้อ จำกัด สิทธิ์ของผู้ใช้ที่ก่อให้เกิดปัญหา

เมื่อคุณพูดว่า "ไม่ทำงาน" คุณจะเจาะจงมากขึ้นได้ไหม มันยอมรับสูตรตามที่พิมพ์หรือไม่? เซลล์ว่างเปล่าแสดง "#VALUE!" ฯลฯ ไหม เกิดอะไรขึ้นเมื่อเพียงแค่ใช้=CELL("filename")?


ฉันคิดว่าฉันมีที่ว่างหรืออะไรซักอย่างมันใช้งานได้แล้ว ขอบคุณ!
timothy.s.lau

ดูเหมือนจะไม่ทำงานในเบต้า Excel 2015
Akku

ตรวจสอบให้แน่ใจมาร์กอัปของเซลล์ว่าคุณอยู่ในทั่วไป / มาตรฐาน (เพื่อไม่ข้อความ / หมายเลข ฯลฯ )
Lexib0y

1
มันใช้งานไม่ได้สำหรับฉันจนกว่าฉันจะเปลี่ยนอักขระเครื่องหมายจุลภาคเป็นกึ่งโคลอนตามตำแหน่งที่ตั้งของฉัน
mavrosxristoforos

9

โปรดทราบว่า=CELL("filename")ให้เส้นทางไปยังเวิร์กบุค / เวิร์กชีทสุดท้ายเปลี่ยนไปดังนั้นหากคุณเปิดเวิร์กบุค 2 เล่ม abc และ xyz และสูตรของคุณเป็น abc หากคุณเปลี่ยนค่าใน xyz เป็นครั้งสุดท้ายสูตรใน abc จะสะท้อนถึงและส่งคืนxyz.xlsx

ด้วยเหตุนี้จึงเป็นการดีกว่าที่จะรวมการอ้างอิงเซลล์ (การอ้างอิงเซลล์ใด ๆ ) เช่น

= CELL ("filename", A1 )

การใช้เวอร์ชันนั้นหมายความว่าคุณจะได้รับชื่อเวิร์กบุคของเวิร์กบุคที่มีสูตรอยู่เท่านั้น

คุณสามารถใช้รุ่นที่สั้นกว่านี้เล็กน้อย

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")


2

ฉันพบสิ่งนี้เป็นสูตร "ง่ายที่สุด" เพื่อส่งคืนชื่อไฟล์เท่านั้น:

=REPLACE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),1,FIND("[",CELL("filename",A1)),"")

or - created in VBA:

Formula = "=REPLACE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),1,FIND(""["",CELL(""filename"",A1)),"""")"

ในการกลับไปสู่เส้นทางแบบเต็มสิ่งนี้จะทำ:

=SUBSTITUTE(LEFT(CELL("filename",A1),FIND("]",CELL("filename",A1))-1),"[","")

or - created in VBA:

Formula = "=SUBSTITUTE(LEFT(CELL(""filename"",A1),FIND(""]"",CELL(""filename"",A1))-1),""["","""")"

1

ฉันมีปัญหาเดียวกัน (สูตรที่วางไม่ทำงาน)! เมื่อฉันแทนที่,ด้วย;ในสูตรมันทำงานได้สมบูรณ์แบบ

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


ฉันเชื่อว่านี่เป็นเพราะคุณใช้ Excel รุ่นยูโร รุ่นยูโรใช้เครื่องหมายอัฒภาคแทนเครื่องหมายจุลภาคสำหรับพารามิเตอร์ฟังก์ชัน ฉันใช้จุลภาคเวอร์ชันสากลเช่นกัน
krowe2

ไม่ใช่เรื่องของรุ่น excel ที่คุณกำลังใช้งานอยู่ แต่เป็น 'ตัวคั่น' ที่คุณใช้ในการตั้งค่าภูมิภาค
Deroby

1

ทางออกที่ง่ายกว่านี้คือ:

ในไฟล์ Excel ของคุณกดAlt+ F11ซึ่งเปิด Microsoft Visual Basics สำหรับ Applications (VBA) ใน VBA เลือกInsert > Moduleและวางรหัสต่อไปนี้

Public Function GetMyProp(prop As String) As String
    GetMyProp = ThisWorkbook.BuiltinDocumentProperties(prop)
End Function

ใน Excel =GetMyProp("Title")ไฟล์ประเภทสูตรของคุณ: นี่จะแสดงหัวเรื่องของเอกสารของคุณในเซลล์ที่เลือก


1

หากคุณใช้ excel ในภาษาดัตช์คุณควรใช้ชื่อฟังก์ชันภาษาดัตช์และใช้เครื่องหมายอัฒภาคแทนเครื่องหมายจุลภาค:

=VERVANGEN(LINKS(CEL("filename");VIND.SPEC("]";CEL("filename"))-1);1;VIND.SPEC("[";CEL("filename"));"")

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.