如何在 Google 表格中根據單元格顏色進行計數或求和?


在這篇文章中,我們將瞭解一個有用的工具,它允許您根據電子表格單元格的顏色進行計算。利用此功能,您可以快速分析和得出對已透過顏色編碼進行視覺區分的資料的結論。無論您是想計算特定顏色的單元格數量,還是計算與特定顏色相關的值的總和,Google 表格都提供各種內建函式和自定義指令碼來完成這些任務。為了適應各種使用者的偏好和能力水平,本課程將介紹多種根據單元格顏色進行計數或求和的技術。

在本課程中,我們將假設您對 Google 表格有基本的瞭解,並且熟悉其使用者介面。為了確保您可以輕鬆地跟隨操作,我們將提供分步說明和螢幕截圖。因此,讓我們開始並發現 Google 表格基於單元格顏色的計算的潛力吧!

根據單元格顏色進行計數或求和

這裡我們將首先向工作表新增一個指令碼,然後使用公式來完成任務。讓我們看一個簡單的過程,瞭解如何在 Google 表格中根據單元格顏色進行計數或求和。

步驟 1

考慮一個 Google 表格,其中包含不同的單元格顏色。

首先,點選“擴充套件程式”並選擇“App Script”。

擴充套件程式 > App Script。

步驟 2

然後用以下程式碼替換現有程式碼,並儲存程式碼。

程式碼

function countColoredCells(countRange,colorRef) {
   var activeRg = SpreadsheetApp.getActiveRange();
   var activeSht = SpreadsheetApp.getActiveSheet();
   var activeformula = activeRg.getFormula();
   var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
   var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
   var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
   var BackGround = activeSht.getRange(colorRefAddress).getBackground();
   var countCells = 0;
   for (var i = 0; i < backGrounds.length; i++)
      for (var k = 0; k < backGrounds[i].length; k++)
         if ( backGrounds[i][k] == BackGround )
            countCells = countCells + 1;
   return countCells;
};

步驟 3

然後點選一個空單元格,輸入公式 =countcoloredcells(A2:C7,E2),然後點選回車鍵以獲取第一個值。

空單元格 > 公式 > 回車。

然後對所有顏色重複此步驟。

注意

如果要計算總和,請使用以下程式碼並使用公式 =sumcoloredcells(A2:C7,E2)。

程式碼

function sumColoredCells(sumRange,colorRef) {
   var activeRg = SpreadsheetApp.getActiveRange();
   var activeSht = SpreadsheetApp.getActiveSheet();
   var activeformula = activeRg.getFormula();
   var countRangeAddress = activeformula.match(/\((.*)\,/).pop().trim();
   var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
   var sumValues = activeSht.getRange(countRangeAddress).getValues();  
   var colorRefAddress = activeformula.match(/\,(.*)\)/).pop().trim();
   var BackGround = activeSht.getRange(colorRefAddress).getBackground();
   var totalValue = 0;
   for (var i = 0; i < backGrounds.length; i++)
      for (var k = 0; k < backGrounds[i].length; k++)
         if ( backGrounds[i][k] == BackGround )
            if ((typeof sumValues[i][k]) == 'number')
               totalValue = totalValue + (sumValues[i][k]);
   return totalValue;
};

結論

在本教程中,我們使用了一個簡單的示例來演示如何在 Google 表格中根據單元格顏色進行計數或求和,以突出顯示特定資料集。

更新於: 2023-08-21

13K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告