首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何根据行中带有条件格式或VBA的颜色对单元格进行着色

如何根据行中带有条件格式或VBA的颜色对单元格进行着色
EN

Stack Overflow用户
提问于 2022-11-07 00:25:18
回答 1查看 39关注 0票数 2

我试图根据第1-6行对列A( Ys)进行着色。我想要它,所以如果它是绿色和红色变成黄色,只是绿色变成绿色,只是红色变成红色。这张图显示了我想要什么的基本想法。

我不知道任何宽容的格式公式,这可能使这成为可能。我在VBA的信息上搜索了这个网站,并试图学习它。如果你能解决这个问题,请你解释每一步,以便我能更好地理解它,为未来。

EN

回答 1

Stack Overflow用户

发布于 2022-11-07 06:16:24

有趣的是,有一种方法可以用条件格式来实现,但这使用了一个鲜为人知的技巧:GET.CELL函数(更多信息)。

此函数不能在单元格中使用,但可以在命名范围内使用,因此,其思想是创建一个命名范围,给它一个类似于"BackgroundColorIndex“的名称,并按如下方式定义它:

代码语言:javascript
复制
=GET.CELL(63,INDIRECT("rc",FALSE))

然后,您可以创建一个名为"Color“的工作表,在其中定义您的颜色:

其中,每个索引都是使用BackgroundColorIndex函数确定的。

然后,我建议为每种颜色(GreenIndex、YellowIndex和RedIndex)创建命名范围,以便稍后我们可以参考它们。

现在,我们需要创建另一个版本的BackgroundColorIndex,但是它不会引用单元格本身,它将始终引用包含数据的工作表中的相应单元格。

让我们用以下定义将其命名为BackgroundColorIndexSheet1

代码语言:javascript
复制
=GET.CELL(63,INDIRECT("Sheet1!rc",FALSE))

(请注意,您需要将"Sheet1“替换为工作表的名称。)

然后,您将创建一个新的工作表。我们叫它"Sheet2“吧。这将是我们计算的地方。

它表示,工作表、A列和标头将与Sheet1相同,但里面的公式将是=BackgroundColorIndexSheet1

例如,在我的例子中,我有以下值。

然后,我们可以添加几个助手列,如下所示:

公式:

  • J2:=SUMIF(B2:G2,">0")/MAX(COUNTIF(B2:G2,">0"),1)
  • K2:=IF(J2=GreenIndex,GreenIndex,0)
  • L2:=IF(J2=Redindex,RedIndex,0)
  • M2:=IF(SUM(K2:L2)>0,SUM(K2:L2),IF(J2>0,YellowIndex,0))

现在,我们可以在条件格式规则中使用输出列中的值。例如:

其结果将是:

当值发生变化时,您需要按F9刷新计算。您需要将工作簿保存为.xlsm,因为我们使用的是GET.CELL

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74340816

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档