条件格式多行中的第一个非空白单元格

时间:2014-04-08 20:42:32

标签: excel excel-vba excel-formula conditional-formatting vba

希望这会阻止链条。

如果您想要更多背景,请查看链接的问题,但我需要从FIRST(最左侧)非空白单元格+后面的后11列条件格式化多行(2,000+)。不确定条件格式公式是否需要它,但我能够得到每一行的起始单元格,可以获得结束单元格(见下文)。

行中第一个填充单元格的单元格地址(*数据从第2行开始,值从第C列开始,在第P列结束):

{=(ADDRESS(2,COLUMN(INDEX(C2:P2,MATCH(1,IF(C2:P2<>0,IF(C2:P2<>"",1)),0)))))}

^这让我得到了每行最左边的填充单元格的绝对文本版本。我在帮助列中有所有这些地址。然后我能够获得格式所需的停止点(从上面的公式返回的单元格右侧的第12个单元格),但我必须手动输入从上面的公式派生的单元格地址:

=ADDRESS(2,COLUMN(OFFSET(N2,0,11,1,1)))

我无法将起始单元格公式嵌套在第二个公式中,或者它会中断。

谢谢!

期望的结果(忽略不同的颜色,它们可以是相同的):

enter image description here

1 个答案:

答案 0 :(得分:1)

我添加了一个辅助列C,它找到了行中的第一个非空白(我的数据从D列到了AZ列)

=MATCH(TRUE,INDEX((D2:AZ2<>0),0),0)

应用于D2到AZ4的我的条件格式规则是在以下情况成立时突出显示:

==AND(COLUMN(D2)<($C2+11+COLUMN($D2)),COLUMN(D2)>=$C2+COLUMN($C2))

您可以修改此项以将帮助列放在您希望的位置,并使用命名范围。

(必须添加条件才能在第一个实例之前开始着色!)