基于背景颜色的Excel公式单元格

时间:2017-02-02 09:38:13

标签: excel vba excel-vba excel-formula formulas

我需要在EXCEL中使用一个公式,在单元格背景为红色的单元格旁边的单元格中放置一个数字1。见下面的例子。

enter image description here

如果没有VBA,这有可能吗?

3 个答案:

答案 0 :(得分:6)

这可以从Name Manager完成,可以通过按 Ctrl + F3 来访问。

您需要创建一个命名引用(我称之为“颜色”),并将其引用到公式栏中的=GET.CELL(63,OFFSET(INDIRECT("RC",FALSE),0,-1))

现在,您可以使用右侧的1个单元格来确定单元格的颜色索引号:

Example

因为红色是旁边单元格中的颜色索引3,您可以应用公式:

=IF(color=3,1,0)

答案 1 :(得分:4)

打开VBA编辑器并添加新模块。通过转到Developer标签并点击Visual Basic来执行此操作。如果您在功能区上没有开发人员选项卡,则需要添加它(快速进行Google搜索)。打开VBA编辑器后,右键单击左侧有工作簿名称的VBA项目并插入模块。

将以下代码放入新模块中:

Function IsRed(rng As Range) As Integer
    IsRed = (rng.Interior.Color = vbRed) * -1
End Function

然后您可以使用公式=IsRed(A1)来确定A1是否有红色背景

注意:这使用标准颜色中的默认红色

答案 2 :(得分:3)

您可以使用自动过滤器在没有VBA的情况下手动实现:

  1. 确保列上方的标题带有颜色,并且列在您希望放置值1的列上方

  2. 添加自动过滤器(选择两列,单击功能区“数据”选项卡上的“过滤器”按钮)

  3. 单击带有颜色的列上的下拉过滤器,然后单击“按颜色过滤”,选择“红色”

  4. 在第二列中,在每个可见单元格中输入1。 (在第一个单元格中输入1,然后填写。或者,选择所有单元格,键入1然后按ctrl-enter)