如何取得Excel目前的列名?

如何取得Excel目前的列名?

Excel中取得儲存格目前行號和目前列名的函數是什麼?

答案1

您可以使用ROWCOLUMN函數來執行此操作。如果省略這些公式的參數,則使用目前儲存格。這些可以直接使用OFFSET功能,或任何其他可以將行和列指定為數值的函數。

例如,如果您=ROW()在儲存格 D8 中輸入,則傳回值為 8 =COLUMN()

如果你想要列字母,可以使用該CHAR函數。我不建議使用字母來表示列,因為當傳遞到雙字母列名稱時事情會變得棘手(無論如何,僅使用數字更符合邏輯)。

無論如何,如果您仍然想獲取列字母,您可以簡單地將 64 新增至列號(64 比 少一個字元A),因此在前面的範例中,如果將儲存格的值設為=CHAR(COLUMN()+64),則傳回的值將是D。如果您希望儲存格的值是儲存格位置本身,則完整的公式將為=CHAR(COLUMN()+64) & ROW()


僅供參考,我從 ASCII 表中得到了 64。您也可以使用該CODE公式,因此使用此公式更新後的公式將是=CHAR(COLUMN() + CODE("A") - 1)。由於 的最小值COLUMN始終為 1,因此必須減去 1,然後整個公式的最小回傳值為B

但是,這不適用於兩個字母的列。在這種情況下,您需要以下公式來正確解析兩個字母的列:

=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()

我不確定是否有更簡單的方法來做到這一點,但我知道這在細胞A1和細胞之間都可以正常工作ZZ99,沒有任何問題。然而,這說明了為什麼最好避免使用基於字母的列標識符,並堅持使用純基於數字的公式(例如,使用列號而不是帶字母的字母OFFSET)。

答案2

嘗試以下功能:

=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")

解釋:ADDRESS(row_num, column_num, [abs_num])[abs_num] = 4= 相對位址。這意味著返回值中沒有“$”。對於列“AB”,將ADDRESS返回“AB1”。替補去掉“1”。

答案3

嘗試這個

=SUBSTITUTE(SUBSTITUTE(CELL("address"),"$" & ROW(),""), "$", "")

這為您提供了準確的列標題,沒有任何 $ 等。

答案4

為了取得列名稱,我使用了以下公式。

對於特定的單元格:

=SUBSTITUTE(CELL("address",H3),"$" & ROW(H3),"")

對於目前儲存格:

=SUBSTITUTE(CELL("address"),"$" & ROW(),"")

嘗試這個變體。它適用於 3 個字母的列,並且不會在前端留下“$”:

=SUBSTITUTE(ADDRESS(ROW(XFD123),COLUMN(XFD123),4),ROW(XFD123),"")

相關內容