谷歌表自定义函数来计算彩色单元格:CELLCOLOR & VALUESBYCOLORALL

  • Share This
Michael Brown

本教程介绍了我们为谷歌表提供的Function by Color插件中的2个新函数:CELLCOLOR & VALUESBYCOLORALL。 使用它们不仅可以对单元格的颜色进行求和和计数,还可以对共同的内容进行计数。 包括现成的SUMIFS & COUNTIFS公式;)

如果你经常在谷歌表格中使用彩色单元格,你可能已经尝试过我们的Function by Color插件。 你不知道,它现在还有两个功能,可以进一步扩展你对彩色单元格的操作。 CELLCOLOR 按颜色分类的价值所有 在本教程中,我将向你介绍这两个函数,并向你提供一些现成的公式。

    用Function by Color对有颜色的单元格进行求和和计数

    在我们深入了解这两个新的自定义函数之前,我想简单介绍一下我们的Function by Color插件,以防你不熟悉它。

    这个用于谷歌表格的插件可以检查所选单元格中的字体和/或填充颜色,并且。

    • 有共同色调的数字之和
    • 计入有颜色的单元格,甚至是空白的单元格
    • 在这些突出显示的单元格中找到平均/最大/最小值
    • 以及更多

    总共有13个函数来计算你的彩色单元。

    以下是它的工作原理。

    1. 你选择要处理的范围。
    2. 选择你想考虑的字体和/或填充色调,并根据你的任务来挑选功能。
    3. 选择计算每行/列或整个范围的记录。
    4. 选择你想看到结果的单元格。
    5. 撞击 插入功能 .

    例如,在这里的每一行中,我把所有 "正在进行中 "的项目加起来--背景是蓝色的。

    =SUM(VALUESBYCOLOR("light cornflower blue 3", "", B2:E2))

    提示:这里有一个详细的插件教程,这里有一篇博客文章,其中有一些例子。

    正如你所看到的,该插件使用了标准的SUM函数,以及里面的一个特殊函数:VALUESBYCOLOR。

    VALUESBYCOLOR函数

    VALUESBYCOLOR是我们的自定义函数。

    注意:在没有附加组件的电子表格中,你不会发现它。

    它返回那些与你在附加组件中选择的颜色相对应的单元格。

    =VALUESBYCOLOR("浅矢车菊蓝3", "", B2:E2)

    看到了吗? 它只得到上面提供的每个项目的那些记录,这些记录根据我的设置是彩色的。 而这些数字是由我在工具中选择的那些标准函数之一计算的:SUM。

    很酷,是吧?)

    但是,该插件漏掉了一件事。 这个公式不能用于SUMIFS和COUNTIFS,所以你仍然不能同时按共同色调和单元格内容等多个条件来计算。 而且,我们已经被问了很多关于这个的问题

    我很高兴地告诉你,我们已经通过最新的更新(2021年10月)使之成为可能!现在Function by Color又包含了2个自定义函数,可以帮助你实现这个目标 :)

    按颜色划分功能的额外功能

    我们实现的两个新函数叫做VALUESBYCOLORALL和CELLCOLOR。 让我们看看它们需要什么参数,以及你如何用你的数据来使用它们。

    注意:由于这些函数是自定义的,它们是我们的Function by Color插件的一部分。 你需要安装该插件,否则,你将无法使用这些函数,它们返回的结果将丢失。

    提示:观看这个视频或继续阅读,或同时进行以获得更好的理解;)博文末尾甚至还有一个练习电子表格;)。

    按颜色分类的价值所有

    这个自定义函数需要3个参数。

    VALUESBYCOLORALL(fill_color, font_color, range)
    • 填充颜色 - 背景色的RGB代码或颜色名称(根据谷歌表调色板)。

      提示:虽然参数是必须的,但你完全可以通过输入一对双引号来使函数忽略填充颜色:""

    • 字体_颜色 - 文本颜色的RGB代码或颜色名称(根据Google表的调色板)。

      提示:该参数也是必需的,但当你需要忽略字体颜色时,也需要一对双引号""。

    • 范围 - 这里没有什么花哨的东西,只是一个你想处理的单元格的范围。

    你是否注意到VALUESBYCOLORALL很容易被误认为是插件使用的VALUESBYCOLOR函数? 要小心,因为有很大的区别。 看一下这个截图。

    这些公式是用B2 & C2写的,但你可以偷看一下它们在B8 & C8中相应的样子。

    =VALUESBYCOLOR("浅绿色3", "", A2:A7)

    =VALUESBYCOLORALL("浅绿色3", "", A2:A7)

    提示:颜色名称取自谷歌表调色板。

    这两个函数有相同的参数,甚至它们的名字也如此相似

    然而,他们返回不同的数据集。

    • VALUESBYCOLOR只返回那些在A列出现绿色填充的记录列表。
    • VALUESBYCOLORALL,反过来,返回与原始范围(6个单元格)相同大小的范围--C2:C7.但这个范围内的单元格只有在A列中相应的单元格具有所需的填充颜色时才包含记录。 其他单元格保持空。

    尽管这对你来说可能是一样的,但与其他函数结合起来就会产生巨大的不同。 而这正是让你用COUNTIFS或SUMIFS等函数检查颜色和单元格内容的原因。

    CELLCOLOR

    下一个函数非常简单:它检查单元格的颜色,并返回每个单元格中使用的颜色名称或RGB代码(这是你的选择)的列表。 它甚至被称为:CELLCOLOR。

    你可能不直接需要这些颜色名称,但你可以在其他函数中使用它们,例如,作为一个条件。

    这个函数也需要3个参数。

    CELLCOLOR(range, color_source, color_name)
    • 范围 - 那些你想检查颜色的单元格。
    • 颜色_来源 - 告诉函数要看哪里。
      • 用字 "填补" 用双引号来检查背景颜色
      • "字体" - 用于文字颜色
      • "两个" - 填充和文本颜色都是如此
    • 颜色_名称 - 你的方式,告诉你要返回什么样的名字。
      • 为真 可以得到你在谷歌表格调色板中看到的名字,比如说 红色 深蓝色 1
      • 失败 获得颜色的RGB代码,例如 #ff0000 #3d85c6

    例如,下面的公式返回A2:A7的每个单元格中使用的填充和字体颜色列表。

    =CELLCOLOR(A2:A7, "both", TRUE)

    那么这些函数如何与IF、SUMIFS、COUNTIFS一起使用? 如何根据颜色设置搜索条件?

    按颜色和内容对单元格进行求和和计数--公式示例

    让我们试着在一些简单的情况下使用VALUESBYCOLORALL和CELLCOLOR。

    如果有颜色,那么...

    在这里,我有一份通过3项测试的学生的简短名单。

    我想在E列中标记为PASS的行,只有当一行中的所有单元格都是绿色时(通过所有考试的学生)。 我将在IF函数中使用我们的CELLCOLOR来检查颜色并返回所需的字符串。

    =IF(COUNTIF(CELLCOLOR(B2:D2, "fill",TRUE), "light green 3")=3, "PASS"," )

    以下是它的作用。

    1. CELLCOLOR(B2:D2, "fill",TRUE) 返回一行中使用的所有填充颜色。
    2. COUNTIF(CELLCOLOR(B2:D2, "fill",TRUE), "light green 3")=3 取出这些颜色,并检查'浅绿色3'(我在单元格中使用的颜色)是否正好连续出现3次。
    3. 如果是这样,IF返回'PASS',否则,单元格保持空。

    COUNTIFS:按颜色&计数;有1个公式的值

    COUNTIFS是另一个函数,它最终可以按多个标准计数,即使其中一个标准是颜色。

    我们假设有每个班次和每个员工的利润记录。

    使用我们在COUNTIFS里面的两个自定义函数,我可以计算每个员工执行销售计划的次数(绿色单元格)。

    例1.COUNTIFS + CELLCOLOR

    我将在有数据的表格旁边列出所有经理,并为每个雇员输入单独的公式。 我将从CELLCOLOR开始。

    =COUNTIFS($A$2:$A$10,E2,CELLCOLOR($C$2:$C$10, "fill",TRUE), "浅绿色3")

    1. 公式首先检查的是A列:如果有'Leela'(E2中的一个名字),它就会考虑到这个记录。
    2. 我需要检查的第二件事是C列中的单元格是否被染成了浅绿色3。

      提示:使用谷歌表调色板检查单元格颜色。

    由于COUNTIFS本身不能只拾取颜色,我使用我们的CELLCOLOR作为条件范围。

    请记住,CELLCOLOR返回每个单元格使用的颜色列表。 当我将其嵌入COUNTIFS时,后者会扫描该列表,搜索所有出现的 "浅绿色3"。 这与E列的名称相结合,可以得到所需的结果。 很简单:)

    例2:COUNTIFS+VALUESBYCOLORALL

    如果你选择VALUESBYCOLORALL,也会发生同样的情况。 把它作为第二个条件的范围输入。

    =COUNTIFS($A$2:$A$10,E2,VALUESBYCOLORALL("浅绿色3",",$C$2:C$10),")

    你还记得VALUESBYCOLORALL返回什么吗? 一个数值列表,其中所有符合你的颜色要求的单元格都包含记录。 所有其他单元格保持空。

    因此,当VALUESBYCOLORALL被放到COUNTIFS时,公式只计算那些不是空的单元格:""(或者,换句话说,对应于所需的颜色)。

    SUMIFS:按颜色&对单元格进行求和;用1个公式计算数值

    SUMIFS的故事就像COUNTIFS一样。

    1. 采取我们的自定义函数之一:CELLCOLOR或VALUESBYCOLORALL。
    2. 把它作为一个应该测试颜色的范围。
    3. 根据你选择的功能输入条件:CELLCOLOR为颜色名称,VALUESBYCOLORALL为 "非空"("")。

    注意:SUMIFS不接受任何东西,只接受一个简单的范围作为它的第一个参数。 总数_范围 如果你试图在这里嵌入我们的一个自定义函数,那么这个公式就不会起作用。 所以请记住这一点,并确保将CELLCOLOR和VALUESBYCOLORALL作为一个单元输入。 准则 而不是。

    这里有几个例子。

    例1.SUMIFS + CELLCOLOR

    看看这个公式。

    =SUMIFS($C$2:$C$10,A$2:A$10,E2,CELLCOLOR($C$2:$C$10, "fill",TRUE), "浅绿色 3")

    1. CELLCOLOR从C2:C10获取所有的填充颜色,SUMIFS检查其中是否有 "浅绿色3"。
    2. SUMIFS还从A2:A10扫描E2-的名称。 利拉 .
    3. 一旦这两个条件得到满足,C2:C10的金额就会加到总数中。

    例2.SUMIFS+VALUESBYCOLORALL

    同样的情况发生在VALUESBYCOLORALL上。

    =SUMIFS($C$2:$C$10,$A$2:$A$10,E2,VALUESBYCOLORALL("浅绿色3",",$C$2:$C$10),")

    1. VALUESBYCOLORALL返回只有所需填充颜色的单元格包含数值的范围。 SUMIFS考虑到所有非空的单元格。
    2. SUMIFS也从E2扫描A2:A10的 "Leela"。
    3. 一旦这两个条件得到满足,C2:C10的相应金额就会被累计。

    希望本教程解释了这些函数的工作原理,并提示了使用这些函数的可能方法。 如果你在应用这些函数时仍有困难,请在评论区与我见面;)

    沿用电子表格进行练习

    按颜色划分的功能--自定义功能--示例(复制一份电子表格)。

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.