[Excel] 在單元格中顯示工作表名稱的函數

Eva

本文推薦給以下人群:

  • 想了解獲取Excel工作表名稱函數的人

使用 Excel 時,有時您希望在單元格中顯示工作表名稱。

特別是對於使用多個工作表的模板,使用函數顯示“此工作表的名稱是什麼”非常有用。

在本文中:CELL(“文件名”)我們將介紹三種方法,從可從 獲取的“書籍完整路徑+工作表名稱”中僅提取工作表名稱。

由於Excel版本和公式編寫方法不同,請選擇適合您環境的方法。

使用這些函數時的一個重要注意事項是您必須至少保存一次 Excel 文件。
如果您在新創建的工作簿中使用函數,“VALUE!”將顯示,因此請務必在輸入公式之前保存文件。

目錄

檢索工作表名稱的函數大致分為三種類型。
請根據您使用的 Excel 版本和您的經驗使用不同的版本。

如果您不知道所使用的 Excel 版本,如何提前檢查 Word、Excel、Outlook 和 PowerPoint 的版本請參考並核對。

  1. 如果您使用的是最新版本的 Excel(Microsoft 365 訂閱版本)
    TEXTAFTER最簡單也是最推薦的。
  2. 如果您使用的是舊版本的 Excel 並且熟悉替換的思想。
    REPLACE + FIND使用。
  3. 如果您熟悉傳統的字符串分割技術
    RIGHT + LEN + FIND該組合是安全的。

TEXTAFTER 函數

雖然這個函數非常簡單並且公式也很容易理解,Microsoft 365 訂閱版本只能用於

=TEXTAFTER(CELL("filename", A1), "]")

■ 工作原理

TEXTAFTER是一個新的 Excel 函數,用於提取指定分隔符後的文本。

  • CELL("filename", A1)對於通過 得到的字符串,將分隔符設置為"]"設置為。
  • "]"它將僅返回 後面的部分,即工作表名稱。

■ 推薦給這些人

REPLACE函數+FIND函數

該函數格式簡單,對於熟悉替換操作的人來說很容易上手。

它還具有高度兼容性,因為它適用於所有 Excel 版本。

不過,如果你不知道如何使用FIND函數獲取字符個數然後進行替換的話,直觀上理解可能會有些困難。

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

■ 工作原理

  1. 第一的,CELL("filename", A1)獲取包含文件名和工作表名稱的字符串。
  2. FIND("]", … )"]"找出裡面有什麼角色。
  3. 從字符串的開頭(第一個字符)"]"一次性全部為空字符""替換為並刪除它。
  4. 因此,"]"僅保留緊隨其後的工作表名稱。

■ 推薦給這些人

  • “REPLACE”更容易想像
  • 您使用的是舊版本的 ExcelTEXTAFTER不能使用)
  • 我想寫盡可能短和簡單的公式。在這種情況下

RIGHT函數+LEN函數+FIND函數

組合 RIGHT、LEN 和 FIND 的問題是公式會變長。

然而,由於它僅包含已經存在很長時間的功能,因此對於習慣它的人來說可能更容易使用。

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

■ 工作原理

  1. CELL("filename", A1)獲取字符串“工作簿的完整路徑+工作表名稱”。
  2. FIND("]", CELL("filename", A1))在該字符串內"]"找出其中的字符。
  3. LEN(… ) - FIND(… )在,"]"計算後面有多少個字符。
  4. 如果從字符串右側提取這麼多內容,您將僅獲得工作表名稱。

■ 推薦給這些人

  • 熟悉 Excel 函數的傳統組合的人員
  • RIGHTLENFIND那些在計算字符數時沒有困難的人
  • 適用於任何版本的 Excel如果你想使用穩定的方法

概括

  • 如果您想使用 Excel 365 輕鬆實現TEXTAFTER一項選擇
  • 即使使用舊版本也足夠簡單REPLACE + FIND
  • 如果您擅長傳統字符串提取RIGHT + LEN + FIND

所有函數最終都是相同的,因為它們僅從“CELL(“filename”)”的返回值中提取工作表名稱。

請根據您的Excel版本和熟悉的操作方法選擇易於使用的版本。

這是在 Excel 單元格中顯示工作表名稱的函數的摘要。請利用它。

記住 CELL(“文件名”) 的作用

CELL 函數返回有關指定單元格的各種信息。
他們之中,CELL("filename", A1)如果你這樣寫,它將返回書籍的完整路徑+文件名+工作表名稱。
例如,像這樣的字符串:

C:UsersSampleUserDocuments[SampleBook.xlsx]Sheet1

該字符串包含三項內容:“文件夾位置(路徑)”、“文件名(帶擴展名)”和“工作表名稱”。

  • 文件夾位置(路徑):C:UsersSampleUserDocuments
  • 文件名:SampleBook.xlsx(實際上是[ ]包圍的)
  • 工作表名稱:工作表1

“CELL(“文件名”)”連接所有這些並返回它們。

如何在單元格中顯示Excel文件名和文件保存目的地

到目前為止,我們已經介紹了使用 CELL(“filename”) 在單元格中顯示工作表名稱的三種方法。

事實上,通過稍微應用這個功能,還可以提取文件名(帶擴展名)和完整路徑(文件夾路徑部分)。

如何只提取Excel文件名

CELL(“filename”, A1) 的結果包含 [filename] 形式的文件名。

在這裡,我們將介紹如何使用Excel 365的新功能TEXTAFTER和TEXTBEFORE,以及如何在舊版Excel中實現它們。

如何在 Excel 365 中執行此操作

=TEXTBEFORE(TEXTAFTER(CELL("filename", A1),"["),"]")
  • 第 1 步:發短信
    TEXTAFTER(CELL("filename", A1), "[")提取緊接“[”之後的字符串。
    示例:“C:…[SampleBook.xlsx]Sheet1”→“SampleBook.xlsx]Sheet1”。
  • 第 2 步:文本之前
    下一個TEXTBEFORE(..., "]")用於僅提取“]”之前的部分。
    示例:“SampleBook.xlsx]Sheet1”→“SampleBook.xlsx”,僅保留文件名。

該機制很容易理解,因為它想像字符串在“[”字符之後和“]”字符之前分隔。

Excel 365 以外的方法

如果您使用的是舊版本的 Excel,我們建議使用 REPLACE 函數等方法。

在下面的示例中,首先刪除從開頭到“[”的所有內容,然後刪除“]”之後的所有內容,僅保留文件名。

=REPLACE(REPLACE(CELL("filename", A1),1,FIND("[",CELL("filename", A1)),""),FIND("]",REPLACE(CELL("filename", A1),1,FIND("[",CELL("filename", A1)),"")),99,"")
  • 步驟1:刪除最多“[”
    FIND("[", CELL("filename", A1))找到“[”的位置,並用空白字符替換。
    示例:“C:…[SampleBook.xlsx]Sheet1”→“SampleBook.xlsx]Sheet1”。
  • 步驟2:刪除“]”後面的內容
    在剩餘的“SampleBook.xlsx]Sheet1”中,進一步FIND("]", ...)用於使“]”後面的字符為空。
    示例:“SampleBook.xlsx]Sheet1”→“SampleBook.xlsx”並完成文件名。

公式很長,但其思想是“我們只是刪除不必要的部分兩次”。

如何僅提取文件夾位置(路徑)

如果您只想提取文件夾位置(路徑),[該公式甚至更簡單,因為您只需要獲得 before 。

從字符串的開頭[將其視為之前的切割。

如何在 Excel 365 中執行此操作

=TEXTBEFORE(CELL("filename", A1),"[")

TEXTBEFORE(...,"[")提取“[”字符之前的整個字符串。
示例:“C:...[SampleBook.xlsx]Sheet1” → 只能提取“C:...”,因此您可以知道文件夾的位置(路徑)。

Excel 365 以外的方法

=LEFT(CELL("filename", A1),FIND("[",CELL("filename", A1))-1)
  • 步驟1:檢查“[”的位置
    FIND("[", CELL("filename", A1))獲取“[”的字符數。
  • 步驟2:用LEFT獲取“[”之前的部分
    使用 LEFT 函數僅提取“[”之前的數字(數字減 1)。
    示例:“C:...[SampleBook.xlsx]Sheet1”→“C:...”,您可以提取路徑。

概括

  • CELL(“文件名”)牙齒,“完整路徑+[文件名]工作表名稱”將被退回。
  • 只是文件名[ ]去掉中間的部分就可以得到它。
    • 使用 Excel 365TEXTAFTER/TEXTBEFORE很容易分開。
    • 舊ExcelREPLACE或者FIND用於去除不需要的部分。
  • 只是文件夾位置(路徑)→ 僅剪切“[”之前的部分。
    • 使用 Excel 365TEXTBEFORE(...,"[")
    • 對於舊版 ExcelLEFT(..., FIND("[",...)-1 )

這個公式乍一看可能很長,但實際上只是決定在哪裡剪切和刪除什麼的簡單問題。

請根據您使用的Excel版本啟動。

一旦習慣了字符串操作,顯示文件名和路徑並將它們合併到自動化機制中就變得很容易。

有關 Excel 單元格中顯示工作表名稱功能的常見問題解答

我們整理了有關在單元格中顯示工作表名稱的功能的常見問題和解答列表。

CELL(“文件名”) 的工作原理

CELL(“filename”) 到底返回什麼?

以字符串形式返回保存的工作簿、文件名和工作表名稱的位置(路徑)。例如,格式為“C:UsersSampleUserDocuments[TestBook.xlsx]Sheet1”。

我想知道為什麼指定A1。我可以使用任何細胞嗎?

基本上,無論您指定哪個單元格,結果都是相同的。 CELL 函數是一種根據單元格參數檢索信息的機制,但在返回文件名或路徑時,各處都會返回相同的值,因此通常按照慣例使用 A1。

錯誤“#VALUE!”的原因是什麼?

常見原因是文件從未保存過。如果書籍是新創建的,則路徑和文件名不確定,因此 CELL(“filename”) 可能會返回錯誤。

可以隨時使用 CELL(“文件名”) 嗎?在此過程中,值會發生變化嗎?

文件保存後,只要打開工作簿就基本沒問題了。即使中途保存,只要路徑和文件名不改變就沒有問題。但請注意,如果文件完全未保存,則會出現錯誤。

關於版本和兼容性

我找不到 TEXTAFTER 和 TEXTBEFORE 函數,我該怎麼辦?

這些都是Microsoft 365(持續更新版本)這是Excel中添加的一個功能。它不包含在一次性版本的 Excel 2019 和 2021 中,因此請考慮使用 REPLACE、LEFT、FIND 等來代替拆分字符串。

除了 Microsoft 365 之外,還有其他方法可以提取 Excel 中的文件名嗎?

常用的方法是使用REPLACE去掉多餘的部分,結合LEFT和FIND來計算位置。具體來說,很容易理解,分兩步:刪除“[”之前的部分→刪除“]”之後的部分。

如果我在受保護的工作表的情況下使用 CELL(“文件名”) 會出現任何問題嗎?

保護工作表僅限制單元格編輯,因此 CELL 函數返回的信息不會改變。請放心,無論是否受到保護,它都會起作用。

提取文件名和文件夾位置時的問題

如果我只想顯示文件夾位置,該怎麼寫?

通過編寫 TEXTBEFORE(CELL(“文件名”, A1),”[“)(對於 Microsoft 365 Excel)或 LEFT(CELL(“文件名”, A1),FIND(“[“,CELL(“文件名”, A1))-1)(對於非 Microsoft 365 Excel),您可以僅提取“[”之前的部分。

當您想顯示工作表名稱時,最簡單的公式是什麼?

閱讀更多:[Excel] 如何禁用加載項 |管理 Excel 加載項和 COM 加載項

對於 Microsoft 365 以外的 Excel,標準方法是組合 RIGHT 和 FIND。例如,如果您編寫 =RIGHT(CELL(“文件名”, A1),LEN(CELL(“文件名”, A1))-FIND(“]”,CELL(“文件名”, A1))),則可以僅提取“]”後面的部分並將其用作工作表名稱。

我想確定文件名中是否包含特定單詞。容易嗎?

常見的方法是使用TEXTAFTER提取文件名部分,然後使用FIND函數搜索單詞。如果沒有找到就會出錯,所以可以通過IF函數和ISERROR結合來判斷是否存在。

我想在一個單元格中顯示文件名、文件夾位置和工作表名稱。我應該如何組合它們?

例如,如果將文件夾部分單獨檢索為 TEXTBEFORE(...,”[“),將文件名部分檢索為 TEXTBEFORE(TEXTAFTER(...,”[“),”]”),將工作表名稱檢索為 TEXTAFTER(...,”]”) 並將每個部分顯示在相鄰單元格中,則更容易理解。

文件複製和共享相關

當我複制工作表時,CELL(“文件名”) 會發生什麼情況?

如果您只是在同一工作簿中添加新工作表,工作簿的保存位置和文件名將保持不變。由於僅複製工作表名稱,因此 CELL(“文件名”) 中包含的工作表名稱部分將更改為新工作表的名稱。

保存到共享文件夾時,CELL(“文件名”) 中會返回哪些字符?

如果是共享文件夾,則網絡路由(服務器名稱、文件夾名稱...)將以字符串形式返回。它可以像本地路徑一樣對待,但請注意,服務器名稱或文件夾層次結構越長,字符串就越長。

如果我在另一台計算機上打開該文件,CELL(“文件名”)的值會改變嗎?

如果文件保存的位置發生變化,則內容也會發生變化,並返回該位置對應的路徑。如果您在同一位置打開它,則字符串幾乎相同,但如果您的計算機環境中的驅動器名稱或分配不同,則路徑符號可能會有所不同。

是否可以通過引用另一個工作簿來調用 CELL(“文件名”)?

這是可能的,但由於它被視為外部引用,因此如果另一個工作簿的保存位置發生更改,鏈接可能會損壞。雖然您可以指定不同的書籍名稱並引用它,但在操作過程中需要注意書籍的位置。

其他 Excel 相關文章

單擊此處查看其他 Excel 相關文章。請看一下。