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

Excel Formula Cell Based on Background color

我需要 EXCEL 中的一个公式,在单元格背景为红色的单元格旁边的单元格中放置一个数字 1。请参阅下面的示例。

没有 VBA 这可能吗?

打开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是否有红底

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

这可以从 Name Manager 完成 这可以通过按 Ctrl+F3.

来访问

您需要创建一个命名引用(我称之为 "color")并在公式栏中引用 =GET.CELL(63,OFFSET(INDIRECT("RC",FALSE),0,-1))

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

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

=IF(color=3,1,0)

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

  1. 确保在带有颜色的列上方和要放置值 1 的列上方有标题

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

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

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