按選定單元格繪製圖表

假設你我需要將下表中的數據與2021年不同國家的汽車銷量值進行可視化(實際數據取自這裡,順便提一下):

按選定單元格繪製圖表

由於數據系列(國家)的數量很大,試圖一次將它們全部塞進一個圖表中,要么會導致糟糕的“意大利麵條圖”,要么為每個系列構建單獨的圖表,這非常麻煩。

這個問題的一個優雅的解決方案是只在當前行的數據上繪製圖表,即活動單元格所在的行:

實現這一點非常容易——您只需要 3 行中的兩個公式和一個小宏。

Step 1. 當前行號

我們需要的第一件事是一個命名範圍,它計算我們活動單元格現在所在的工作表上的行號。 在選項卡上打開 公式 - 名稱管理器 (公式 - 名稱管理器),點擊按鈕 創建 (創造) 並在那裡輸入以下結構:

按選定單元格繪製圖表

這裡:
  • 名字 – 任何適合我們變量的名稱(在我們的例子中,這是 TekString)
  • 面積 – 此後,您需要選擇當前工作表,以便創建的名稱是本地的
  • 範圍 – 這裡我們使用函數 CELL (細胞),它可以為給定的單元格發出一堆不同的參數,包括我們需要的行號——“行”參數負責這個。

步驟 2. 鏈接到標題

要在圖表的標題和圖例中顯示選定的國家/地區,我們需要從第一列獲取對具有其(國家)名稱的單元格的引用。 為此,我們創建另一個本地(即 面積 = 當前工作表,而不是 Book!)具有以下公式的命名範圍:

按選定單元格繪製圖表

在這裡,INDEX 函數從給定範圍(A 列,我們的簽署國所在的位置)中選擇一個具有我們之前確定的行號的單元格。

步驟 3. 鏈接到數據

現在,以類似的方式,讓我們獲取一個包含當前行中所有銷售數據的範圍的鏈接,活動單元格現在位於該範圍。 使用以下公式創建另一個命名範圍:

按選定單元格繪製圖表

在這裡,第三個參數為零,它導致 INDEX 不是返回單個值,而是返回整個行作為結果。

步驟 4. 替換圖表中的鏈接

現在選擇表格標題和第一行數據(範圍)並使用基於它們構建圖表 插入 - 圖表 (插入——圖表). 如果您在圖表中選擇了包含數據的行,則該函數將顯示在公式欄中 (系列) 是 Excel 在創建任何圖表以引用原始數據和標籤時自動使用的特殊功能:

按選定單元格繪製圖表

讓我們小心地將函數中的第一個(簽名)和第三個(數據)參數替換為步驟 2 和 3 中的範圍名稱:

按選定單元格繪製圖表

圖表將開始顯示當前行的銷售數據。

步驟 5. 重新計算宏

最後的接觸仍然存在。 Microsoft Excel 僅在工作表上的數據發生更改或按下某個鍵時才重新計算公式 F9,並且我們希望在選擇更改時進行重新計算,即當活動單元格在工作表上移動時。 為此,我們需要在工作簿中添加一個簡單的宏。

右鍵單擊數據表選項卡並選擇命令 資源 (源代碼). 在打開的窗口中,輸入選擇更改事件的宏處理程序代碼:

按選定單元格繪製圖表

正如您可以輕鬆想像的那樣,它所做的只是在活動單元格的位置發生變化時觸發工作表重新計算。

第 6 步:突出顯示當前行

為清楚起見,您還可以添加條件格式規則以突出顯示圖表上當前顯示的國家/地區。 為此,請選擇表並選擇 主頁 — 條件格式 — 創建規則 — 使用公式確定要格式化的單元格 (主頁 - 條件格式 - 新規則 - 使用公式確定要格式化的單元格):

按選定單元格繪製圖表

在這裡,公式檢查表中的每個單元格的行號是否與存儲在 TekRow 變量中的數字匹配,如果匹配,則觸發使用所選顏色的填充。

就是這樣——簡單而美麗,對吧?

筆記

  • 在大表上,所有這些美感都會減慢 - 條件格式是一種資源密集型的事情,並且每個選擇的重新計算也可能很繁重。
  • 當意外選擇表格上方或下方的單元格時,為防止數據在圖表上消失,您可以使用表格的嵌套 IF 函數向 TekRow 名稱添加額外的檢查:

    =IF(CELL(“行”)<4,IF(CELL(“行”)>4,CELL(“行”)))

  • 突出顯示圖表中的指定列
  • 如何在 Excel 中創建交互式圖表
  • 坐標選擇

發表評論