Jak wstawić bieżącą nazwę pliku w programie Excel?

14

Próbuję wyświetlić nazwę pliku, nad którym pracuję, w arkuszu kalkulacyjnym Excel za pomocą formuły. Na przykład, jeśli plik miał nazwę workbook1.xlsx, wówczas chciałbym, aby komórka A1 wyświetlała „workbook1.xlsx”

Formuła podana przez witrynę pomocy Microsoft nie działa: http://office.microsoft.com/en-us/excel-help/insert-the-current-excel-file-name-path-or-worksheet-in- a-cell-HA010103010.aspx # BMinsert3

= MID (CELL („nazwa pliku”), SEARCH („[”, CELL („nazwa pliku”)) + 1, SEARCH („]”, CELL („nazwa pliku”)) - SEARCH („[”, CELL („nazwa pliku „)) - 1)

timothy.s.lau
źródło
W jaki sposób to nie działa? Jakie wyniki daje? Czy zapisałeś skoroszyt?

Odpowiedzi:

14

Działa tutaj, właśnie przetestowałem na Excel 2007 (XP) i Excel 2013 (Windows 8).

=CELL("filename")Najpierw spróbuj sam, aby rozwiązać problem.

  • Upewnij się, że zapisałeś skoroszyt na dysku. Nie pojawi się „Book1”, jeśli umieścisz formułę w nowym niezapisanym skoroszycie.

  • Czy używasz na swoim komputerze ustawień regionalnych innych niż angielski? Niektóre języki wymagające dostosowania nazw funkcji i składni formuł (na przykład w języku francuskim przecinki należy zastąpić średnikami).

  • Czy korzystasz z komputera osobistego lub stanowiska pracy? Jeśli jest to komputer służbowy, być może istnieją ograniczenia praw użytkownika powodujące problemy.

Kiedy mówisz „to nie działa”, czy możesz być bardziej szczegółowy? Czy akceptuje formułę zgodnie z typem? Czy komórka jest pusta, pokazuje „#VALUE!” Itp.? Co się dzieje, gdy tylko używasz =CELL("filename")?

mtone
źródło
Myślę, że miałem miejsce lub coś takiego, teraz działa. Dzięki!
timothy.s.lau
Nie wydaje się działać w wersji beta programu Excel 2015.
Akku
Upewnij się, że znaczniki komórki, w której się znajdujesz, są ogólne / standardowe (więc nie tekst / liczba itp.)
Lexib0y
1
Nie działało to dla mnie, dopóki nie zmieniłem znaku przecinka na średnik, zgodnie z moim miejscem.
mavrosxristoforos
9

Zauważ, że =CELL("filename")podaje ścieżkę do ostatniej zmienionej skoroszytu / arkusza roboczego, więc jeśli masz 2 skoroszyty otwarte, abc i xyz, a formuła jest w abc, jeśli ostatnio zmieniłeś wartość w xyz, formuła w abc to odzwierciedli i zwrócixyz.xlsx

Z tego powodu zwykle lepiej jest dołączyć odwołanie do komórki (dowolne odwołanie do komórki), np

= KOMÓRKA („nazwa pliku”, A1 )

Korzystanie z tej wersji oznacza, że ​​zawsze otrzymasz nazwę skoroszytu, w którym znajduje się formuła.

Możesz użyć tej nieco krótszej wersji

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

Barry Houdini
źródło
2

Odkryłem, że jest to „najprostsza” formuła zwracająca tylko nazwę pliku :

=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)),"""")"

Aby zwrócić pełną ścieżkę , spowoduje to:

=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),""["","""")"
Gustav
źródło
1

Miałem ten sam problem (wklejona formuła nie działała)! Po zastąpieniu ,przez ;w formule zadziałało idealnie.

= MID (CELL („nazwa pliku”); SEARCH („[”; CELL („nazwa pliku”)) + 1; SEARCH („]”; CELL („nazwa pliku”)) - SEARCH („[”; CELL („nazwa pliku „)) - 1)

Polle
źródło
Uważam, że dzieje się tak, ponieważ używasz Excela w wersji Euro. Wersja Euro używa średników zamiast przecinków dla parametrów funkcji. Uważam, że wersja międzynarodowa również używa przecinków.
krowe2
Tak naprawdę nie jest to kwestia tego, którą wersję programu Excel używasz, ale raczej tego, jakiego „separatora” używasz w ustawieniach regionalnych.
deroby
1

Bardziej proste rozwiązanie to:

W pliku Excel naciśnij Alt+ F11, który otwiera Microsoft Visual Basics for Applications (VBA). W VBA wybierz Insert > Modulei wklej następujący kod

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

W swojej typu pliku Excel formuły: =GetMyProp("Title"). Spowoduje to wyświetlenie tytułu dokumentu w wybranej komórce.

Benny Huyghe
źródło
1

Jeśli używasz programu Excel w języku niderlandzkim, powinieneś użyć holenderskich nazw funkcji i średników zamiast przecinków:

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

Gast
źródło