【问题标题】:How do I conditionally format cells based on an indirect formula that references "moving" cells如何根据引用“移动”单元格的间接公式有条件地格式化单元格
【发布时间】:2015-05-04 16:35:47
【问题描述】:

Stackoverflow 社区,

我正在使用 Excel '10。我目前有一个间接公式,它引用 4 个单元格来确定总和范围的 x,y 坐标。

公式:=IFERROR(SUM(INDIRECT(G27&G26):INDIRECT(H27&H26)),"无记录")

如何使用条件格式突出显示公式求和的单元格?

【问题讨论】:

  • 您能举一些例子说明 G27、G26、H27 和 H26 是什么吗?
  • G27 和 G26 将是单元格坐标 - 例如。 G27 = C 和 G26 = 12; H27 = E 和 H26 = 9。所以上面的公式将求和(C12:E9)。我的问题是如何使用条件格式根据公式突出显示单元格 C12:E9。

标签: arrays vba excel conditional-formatting


【解决方案1】:

您可以为给定的单元格范围创建新的条件格式,将当前行号和列号与间接引用单元格进行比较。

R1C1 风格

=IF(AND(ROW(RC)>=R26C7,ROW(RC)<=R26C8,COLUMN(RC)>=R27C7,COLUMN(RC)<=R27C8),1,0)

=ROW(RC) 会给你本地单元格的当前行号

=COLUMN(RC) 将为您提供本地单元格的当前列号。

A1 样式

=IF(AND(ROW(A1)>=$G$26,ROW(A1)<=$H$26,COLUMN(A1)>=COLUMN(INDIRECT($G$27&$G$26)),COLUMN(A1)<=COLUMN(INDIRECT($H$27&$H$26))),1,0)

由于我们使用 A1 样式,您必须使用 COLUMN(INDIRECT()) 将间接列引用字母转换为数字。

在这种情况下,'A1' 显示在公式中,因为这是我有条件格式化的区域中的第一个单元格。您应该将其更改为范围内的第一个单元格。

【讨论】:

  • 嗨,Brino,虽然我以前从未见过这个公式,但我正在理解它......慢慢地 - 当我将公式粘贴到规则中时,Excel 指出有一个错误 - 那里关于特定错误的其他信息很少。
  • CHAR(64+COLUMN(A1)) 对于 2 或 3 个字母的列名,如“AA”,这将失败
  • 幸运的是,我的列没有超过 H。它没有准确地选择所有单元格。我应该注意,可突出显示的范围来自 C8:G12。这对您的配方有何影响?我相信仍然需要调整。谢谢
  • 抱歉,我已经更正了。在您的情况下,如果您希望格式仅适用于 C8:G12,您将突出显示您的单元格,然后使用公式 =IF(AND(ROW(C8)>=$G$26,ROW(C8)=COLUMN(INDIRECT($G$27&$G$26)),COLUMN(C8)
  • @Brino 感谢您的所有支持 - 这很有效。太奇怪了,虽然公式完全一样,但是当我从这个站点复制并粘贴公式时会产生错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
  • 2018-03-13
  • 2019-05-25
  • 1970-01-01
相关资源
最近更新 更多