【问题标题】:In Excel, format header row's color based on last cell value in a consecutive range在 Excel 中,根据连续范围中的最后一个单元格值格式化标题行颜色
【发布时间】:2016-05-25 04:59:39
【问题描述】:

我可能想多了,但我已经做了好几个小时了,无法让它发挥作用。

我的工作表设置为联系人日志,其中一些行(在 A 列中包含 ID# 的行)用作“标题”。在每个“标题”行下方,我在 B 列中记录日期。通常,标题行是绿色的。但我希望 Excel 检查每个“标题”下 B 列中的最后一个日期(例如,ID# 101 的 5/24/16,ID# 102 的 5/13/16 等)。如果最后一个日期比今天的日期(当前 5/25/16)超过 1 周,我希望“标题”行变为红色:

A            B
ID#          DATE
101 (green)
             5/1/16
             5/20/16
             5/24/16
102 (red)
             5/2/16
             5/13/16
103 (green)
             5/7/16
             5/19/16

如果我要添加一行并在 102 下输入今天的日期,标题行将变回绿色。

A            B
ID#          DATE
101 (green)
             5/1/16
             5/20/16
             5/24/16
102 (green)
             5/2/16
             5/13/16
             5/25/16
103 (green)
             5/7/16
             5/19/16

我很乐意使用条件格式来更改颜色,但我真的很难找出一个公式来引用有限值范围内的最后一个值(在 B 列中)。我希望这是有道理的,任何帮助都将不胜感激!

【问题讨论】:

  • 可能有一位 Excel 大师可以给你一个纯 Excel 的答案,但我猜这样做需要 VBA (Visual Basic for Excel)。
  • 可能是这样,但我想我会检查所有相同的。获得一些似乎在正确轨道上的额外反馈,所以手指交叉。不过谢谢你的想法。

标签: excel excel-formula


【解决方案1】:

给 A2 一个默认的绿色填充,然后选择 A2 并添加一个带有红色填充的基于公式的条件格式:

 =OFFSET(B2,IFERROR(MATCH(TRUE,A3:A40<>"",0)-1, COUNTA(B3:B40)),0)<(TODAY()-7)

将“A40”扩展到您希望它覆盖单个块中的最大日期数(即它需要包含至少下一个“标题")。

您可以复制 > pastespecial > 格式以将 CF 扩展到其他标题单元格

IFERROR, COUNTA 是为了涵盖下面没有更多“标题”的情况,因此我们只计算 ColB 中的值的数量(假设该列中它们下面没有其他内容)

没有经过广泛测试,但似乎确实有效

【讨论】:

  • 非常感谢!这是非常接近。唯一的问题是,当我添加其他标题时,似乎只有最后一个标题会在最近的日期(即 7 天内)添加到该标题下方时恢复为绿色。无论在该标题下输入的日期如何,上面的所有其他标题都保持红色(因此使用您的示例,101 保持红色,而当我添加 6/1/16 时,103 变为绿色)。好像没遇到过这个问题?虽然我不了解您公式的所有内部工作原理,但我想我已经准确地遵循了它,所以不确定问题出在哪里......
  • 我没有看到这个问题。示例文件:dropbox.com/s/gc70r99klbyzo2z/…
  • 感谢您发送示例。我弄清楚了这个问题。我在每个标题下方包含空白行,认为该公式只会检查标题行下方的日期,直到遇到空白(空)值(我的错误;数组经验有限)。所以在你的例子中,我最初有 B4 到 B7 空白,认为 A2 会改变颜色,因为我只更改了 B3 的日期。但是,只要填充每个部分的最后一个单元格,您的公式就可以很好地工作。我绝对可以解决这个问题,再次感谢您!
猜你喜欢
  • 2015-11-16
  • 2013-06-10
  • 2014-10-12
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
  • 1970-01-01
  • 2015-10-07
  • 1970-01-01
相关资源
最近更新 更多