Google Sheet 如何根据单元格颜色计算或求和单元格

Google Sheet 如何根据单元格颜色计算或求和单元格

在本文中,我们将介绍一个有用的工具,可以根据电子表格单元格的颜色进行计算。利用这个功能,您可以快速分析和得出基于颜色编码区分的数据的结论。Google Sheets提供了各种内置功能和自定义脚本来完成这些任务,无论您是想计算给定颜色的单元格数量还是计算与特定颜色相关的值的总和。为了满足各种用户偏好和能力水平,本课程将涵盖一些基于颜色计数或求和单元格的技巧。

我们假设您对Google Sheets有基本了解,并在整个课程中熟悉其用户界面。为了确保您能够轻松跟随,我们将提供逐步的说明和截图。让我们开始发现Google Sheets基于单元格颜色的计算的潜力吧!

根据单元格颜色计数或求和单元格

这里我们将首先向工作表添加一个脚本,然后使用公式完成任务。因此,让我们看一个简单的过程,了解如何在Google Sheet中根据单元格颜色计数或求和单元格。

步骤1

假设您有一个Google Sheet,其中有不同的单元格颜色。

首先,点击”扩展”,然后选择”App Scripts”。

扩展 > App Scripts

步骤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;
};

Google Sheet 如何根据单元格颜色计算或求和单元格

步骤3

然后点击一个空单元格,将公式输入为=countcoloredcells(A2:C7,E2),然后按下回车键以获取第一个值。

空单元格 > 公式 > 回车键

Google Sheet 如何根据单元格颜色计算或求和单元格

然后为所有颜色重复此步骤。

注意

如果您想要计算总和,请使用以下代码,并使用公式=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表格中根据单元格颜色进行计数或求和,以突出显示特定的数据集。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程