Note: The other languages of the website are Google-translated. Back to English

如何在Excel中創建動態命名範圍?

一般, 命名範圍 對於Excel用戶非常有用,您可以在列中定義一系列值,為該列命名,然後可以通過名稱而不是其單元格引用來引用該範圍。 但是大多數時候,您需要添加新數據,以擴大將來引用範圍的數據值。 在這種情況下,您必須返回 公式 > 名稱管理員 並重新定義範圍以包括新值。 為避免這種情況,您可以創建一個動態的命名範圍,這意味著在每次向列表中添加新的行或列時都不需要調整單元格引用。

通過創建表在Excel中創建動態命名範圍

使用功能在Excel中創建動態命名範圍

使用VBA代碼在Excel中創建動態命名範圍

Office選項卡在Office中啟用選項卡式編輯和瀏覽,並使您的工作更加輕鬆...
Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%
  • 重用任何東西: 將最常用或最複雜的公式,圖表等添加到您的收藏夾中,並在將來快速重用它們。
  • 超過20種文字功能: 從文本字符串中提取數字; 提取或刪除部分文字; 將數字和貨幣轉換為英文單詞。
  • 合併工具:將多個工作簿和工作表合二為一; 合併多個單元格/行/列,而不會丟失數據; 合併重複的行和總和。
  • 分割工具:根據價值將數據分割成多個工作表; 一本工作簿可轉換為多個Excel,PDF或CSV文件; 一列到多列。
  • 跳過粘貼 隱藏/過濾的行; 計數與求和 按背景色; 向多個收件人批量發送個性化電子郵件。
  • 超級過濾器: 創建高級過濾方案並應用於任何工作表; 分類 按星期,日期,頻率等 篩選 用粗體,公式,註釋...
  • 超過300個強大的功能; 適用於 Office 2007-2021 和 365; 支持所有語言; 在您的企業或組織中輕鬆部署。

箭頭藍色右氣泡 通過創建表在Excel中創建動態命名範圍

如果使用的是Excel 2007或更高版本,則創建動態命名範圍的最簡單方法是創建命名Excel表。

假設您有一系列跟隨數據,這些數據需要變為動態命名範圍。

文檔動態範圍1

1。 首先,我將為此範圍定義範圍名稱。 選擇範圍A1:A6並輸入名稱 日期名稱框,然後按 Enter 鍵。 以相同的方式將範圍B1:B6的名稱定義為Saleprice。 同時,我創建一個公式 =總和(促銷價) 在空白單元格中,請參見屏幕截圖:

文檔動態範圍2

2。 選擇範圍並單擊 插入 > 枱燈,請參見屏幕截圖:

文檔動態範圍3

3。 在 創建表格 提示框,選中 我的桌子有標題 (如果該範圍沒有標題,請取消選中它),然後單擊 OK 按鈕,範圍數據已轉換為表格。 查看屏幕截圖:

文檔動態範圍4 -2 文檔動態範圍5

4。 並且,當您在數據後輸入新值時,命名範圍將自動調整,並且創建的公式也將更改。 請參閱以下屏幕截圖:

文檔動態範圍6 -2 文檔動態範圍7

筆記:

1.您輸入的新數據必須與上述數據相鄰,這意味著新數據與現有數據之間沒有空白行或列。

2.在表中,您可以在現有值之間插入數據。


箭頭藍色右氣泡 使用功能在Excel中創建動態命名範圍

在Excel 2003或更早版本中,第一種方法將不可用,因此這是您的另一種方法。 以下 偏移量() 函數可以幫到您,但這有點麻煩。 假設我有一個數據范圍,其中包含我定義的範圍名稱,例如, A1:A6 範圍名稱是 日期B1:B6 範圍名稱是 銷售價格,同時,我為 銷售價格。 看截圖:

文檔動態範圍2

您可以通過以下步驟將範圍名稱更改為動態範圍名稱:

1。 點擊 公式 > 名稱管理員,請參見屏幕截圖:

文檔動態範圍8

2。 在 名稱管理員 對話框中,選擇要使用的項目,然後單擊 編輯 按鈕。

文檔動態範圍9

3。 在彈出 編輯名稱 對話框中,輸入此公式 = OFFSET(Sheet1!$ A $ 1、0、0,COUNTA($ A:$ A),1) 文本框,請參見屏幕截圖:

文檔動態範圍10

4。 然後點擊 OK,然後重複步驟2和步驟3以復制此公式 = OFFSET(Sheet1!$ B $ 1、0、0,COUNTA($ B:$ B),1)進入 的文本框 銷售價格 範圍名稱。

5。 動態命名範圍已創建。 當您在數據後輸入新值時,命名範圍將自動調整,並且創建的公式也將更改。 查看屏幕截圖:

文檔動態範圍6 -2 文檔動態範圍7

備註: 如果範圍的中間有空白單元格,則公式的結果將是錯誤的。 那是因為不計入非空白單元格,因此您的範圍將比其應有的短,並且該範圍中的最後一個單元格將被保留。

提示:此公式的解釋:

  • = OFFSET(參考,行,列,[高度],[寬度])
  • -1
  • = OFFSET(Sheet1!$ A $ 1、0、0,COUNTA($ A:$ A),1)
  • 參考 對應於起始單元格位置,在此示例中 Sheet1!$ A $ 1;
  • 表示要相對於起始單元格向下移動的行數(如果使用負值,則向上移動),在此示例中,0表示列表將從第一行開始
  • 對應於您將相對於起始單元格向右移動的列數(或使用負值向左移動)。在以上示例公式中,0表示向右擴展0列。
  • [高度] 對應於從調整位置開始的範圍的高度(或行數)。 $ A:$ A,它將計算在A列中輸入的所有項目。
  • [寬度] 對應於從調整位置開始的範圍的寬度(或列數)。 在上面的公式中,列表將為1列寬。

您可以根據需要更改這些參數。


箭頭藍色右氣泡 使用VBA代碼在Excel中創建動態命名範圍

如果您有多列,則可以重複並為其餘所有列輸入單獨的公式,但這將是一個漫長的重複過程。 為了使事情變得簡單,可以使用代碼自動創建動態命名範圍。

1。 激活您的工作表。

2。 按住 ALT + F11 鍵,然後打開 Microsoft Visual Basic for Applications窗口.

3。 點擊 插入 > 模塊,然後將以下代碼粘貼到 模塊窗口.

VBA代碼:創建動態命名範圍

Sub CreateNamesxx()
'Update 20131128
Dim wb As Workbook, ws As Worksheet
Dim lrow As Long, lcol As Long, i As Long
Dim myName As String, Start As String
Const Rowno = 1
Const Colno = 1
Const Offset = 1
On Error Resume Next
Set wb = ActiveWorkbook
Set ws = ActiveSheet
lcol = ws.Cells(Rowno, 1).End(xlToRight).Column
lrow = ws.Cells(Rows.Count, Colno).End(xlUp).Row
Start = Cells(Rowno, Colno).Address
wb.Names.Add Name:="lcol", RefersTo:="=COUNTA($" & Rowno & ":$" & Rowno & ")"
wb.Names.Add Name:="lrow", RefersToR1C1:="=COUNTA(C" & Colno & ")"
wb.Names.Add Name:="myData", RefersTo:="=" & Start & ":INDEX($1:$65536," & "lrow," & "Lcol)"
For i = Colno To lcol
    myName = Replace(Cells(Rowno, i).Value, " ", "_")
    If myName <> "" Then
        wb.Names.Add Name:=myName, RefersToR1C1:="=R" & Rowno + Offset & "C" & i & ":INDEX(C" & i & ",lrow)"
    End If
Next
End Sub

4。 然後按 F5 鍵來運行代碼,然後將生成一些動態命名範圍,這些範圍以第一行值命名,並且還會創建一個動態範圍,稱為 邁德特 它涵蓋了整個數據。

5。 在行或列之後輸入新值時,範圍也會擴大。 查看屏幕截圖:

文檔動態範圍12
-1
文檔動態範圍13

筆記:

1.使用此代碼,範圍名稱不會顯示在 名稱框,為了方便查看和使用範圍名稱,我已經安裝了 Excel的Kutools,其 導航窗格,列出了創建的動態範圍名稱。

2.使用此代碼,可以垂直或水平擴展整個數據范圍,但要記住,輸入新值時,數據之間不應有空白行或列。

3.使用此代碼時,數據范圍應從單元格A1開始。


相關文章:

在Excel中輸入新數據後如何自動更新圖表?


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (4)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
感謝好文章
網站主持人對此評論進行了最小化
您是一位非常好的老師: 1)循序漸進的方法; 2) 你不會用明顯的材料或結論讓學生厭煩; 3)但你包括所有必要的材料。 我期待著你的更多教程。
網站主持人對此評論進行了最小化
請幫助我正在嘗試在 excel 2016 上創建一個動態命名範圍,鍵入“=offset(DATAENTRY!$B$6,,,counta(DATAENTRY!$B$6:$B$13))" 但它仍然給我一個錯誤提示不是一個公式。
網站主持人對此評論進行了最小化
真的,真的沒有幫助
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護