问:怎么给带颜色的单元格添加序号?

你好,我是刘卓。欢迎来到我的公号,excel函数解析。最近天冷了,大家注意保暖。昨天有人问了我一个问题,怎么给带颜色的单元格添加序号。正好我手头也没什么案例了,今天就来分享下ta这个问题吧。
-01-

具体应用

下图A列是数据源,有些单元格设置为红色底纹。B列是想要的序号结果。题目的要求是:当A列的单元格是红色底纹时,在B列的对应位置输入序号0;当A列的单元格没有设置底纹(默认为白色)时,在B列的对应位置输入的序号要从1递增。

如果你也遇到过类似的问题,可以先自己想想怎么办?

下面先说说我的公式,然后再慢慢讲解。在B1单元格输入公式=IF(ys,0,INDIRECT("r[-1]c",0)+1),下拉填充。

你可能看到公式里有个ys,这是个什么东西?其实它是一个定义的名称。我们在之前的文章《宏表函数get.cell获取单元格的信息》也说过,想要用函数获取单元格的底纹颜色,只能用宏表函数get.cell。而宏表函数只能在定义名称里使用。

第一步,先获取单元格的底纹颜色。

首先选中B1单元格,然后点击【公式】-【定义名称】,弹出新建名称对话框。在名称里输入ys,在引用位置输入=GET.CELL(63,$A1),点确定。这样名称就定义好了。用定义名称,一定要注意相对引用的位置关系。

接下来就可以用ys这个名称来获取单元格的底纹颜色了。在B1单元格输入公式=ys,按回车,然后双击填充柄填充。可以看到红色底纹的单元格返回的数字是3(颜色索引值),无填充底纹的单元格返回的数字是0。至此,第一步工作就完成了。
第二步,添加序号。
有了上一步B列的颜色索引值,就可以对其进行判断了。当颜色索引值大于0时,即单元格是红色底纹时,让其返回0;否则,当颜色索引值不大于0时,即单元格无底纹时,让其返回上一个单元格再加1。

有了这个思路就好写公式了,比如我在B2单元格输入公式=IF(ys>0,0,B1+1),向下填充,发现结果是对的。

可是当公式填充到B1单元格就会出现问题。因为B1单元格已经是第一个单元格了,它的上一个单元格是谁呢?

我们用r1c1的相对引用来解决这个问题,INDIRECT("r[-1]c",0)返回活动单元格的上一个单元格。r[-1]c中的r表示行,c表示列。[]表示相对引用,-1表示活动单元格向上偏移一行。c后面没有列号,表示活动单元格所在的列。

虽然用这种方法还是返回上一个单元格,但是它更为奇特。当在B1单元格输入公式=INDIRECT("r[-1]c",0)时,不但不会出错,还会返回B列的最后一个单元格(B1048576)的值。

也就是说B1单元格的上一个单元格是B1048576。而B1048576基本不会有东西,是空白单元格,所以结果是0。从而解决了第一行不能引用上一个单元格的问题。
按照这个思路我又想了下vba的方法,也挺方便的。
代码如下:
Sub 给带颜色的单元格添加序号() Dim rng As Range, r As Range, n As Integer Set rng = Range("a1:a" & Cells(Rows.Count, 1).End(xlUp).Row) For Each r In rng If r.Interior.ColorIndex > 0 Then r.Offset(0, 1) = 0 n = 0 Else n = n + 1 r.Offset(0, 1) = n End If NextEnd Sub
链接:

https://pan.baidu.com/s/1MDg5pVeb9vv3mt-oYaV3Lw

提取码:bdq7
(0)

相关推荐

  • 教学管理菜鸟成长记27-规范录入工作表数据9-各种序号难不倒之下集

    关键词:Excel2016:ROW函数:COUNTIF函数:序号 话说昨天二师兄教会小菜利用函数来制作不一样的序号列,世界杯都顾不上看了,通宵达旦研究工作中可能需要用到序号的各种情形,一大早就来到高家 ...

  • 快速给Excel合并单元格添加序号

    点击下方 ↓ 关注,每天免费看Excel专业教程 置顶公众号或设为星标 ↑ 才能每天及时收到推送 个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiR ...

  • 批量对Excel合并单元格添加序号!

    批量对Excel合并单元格添加序号!关注微信公众号[Excel职场联盟]关注微信公众号[Excel情报局]让你奔跑的更快一些![爱心][爱心][爱心][爱心][爱心][爱心]烦躁的时候千万不要说话,也 ...

  • 快速给合并单元格添加序号

    个人微信号 | (ID:LiRuiExcel520) 微信服务号 | 跟李锐学Excel(ID:LiRuiExcel) 微信公众号 | Excel函数与公式(ID:ExcelLiRui) vlooku ...

  • 给合并单元格添加序号

    原创作者 | 李锐 微信公众号 | Excel函数与公式(ID:ExcelLiRui) 个人微信号 | (ID:ExcelLiRui520) 给合并单元格添加序号 今天我来结合一个实际案例,介绍快速给 ...

  • Excel只要遇到带公式的单元格就自动填充颜色,一个值得收藏的职场技能!

    Excel情报局 Excel职场联盟 生产挖掘分享Excel基础技能 Excel爱好者大本营 用1%的Excel基础搞定99%的职场问题 做一个超级实用的Excel公众号 Excel是门手艺玩转需要勇 ...

  • Excel将标颜色的单元格保护起来!

    Excel情报局 Excel职场联盟 生产挖掘分享Excel基础技能 Excel爱好者大本营 用1%的Excel基础搞定99%的职场问题 做一个超级实用的Excel公众号 Excel是门手艺玩转需要勇 ...

  • 蜻蜓翅膀上带颜色的小格,有什么用?总算知道了

    无论是生在城市,还是长在乡村,抓蜻蜓都是儿时夏日的一项主要娱乐活动,当然,现在出生在大城市的孩子是没有这份乐趣了,因为蜻蜓已经不是随处可见,即便是在公园之中,也不过是零星几只. 凡是儿时拿着网子捕过蜻 ...

  • VBA实战技巧27:根据颜色汇总单元格数据

    excelperfect 本文给出了一种根据单元格背景色汇总单元格数据的方法:使用VBA创建一个自定义函数来实现该目的. 我们希望这个函数工作的方式是,填充了颜色的单元格来表示额外的信息,例如代表诸如 ...

  • Excel对相同颜色的单元格快速求和!

    自我提升也是一种修养数万Excel爱好者聚集地 2021年3月5日 周五 [Excel情报局|文案回收铺子] 真正的在乎,会以陪伴代替言语 今天工作中遇到一个问题,如何对相同颜色的单元格求和呢?换句话 ...