如何在不使用VBA的情况下实现Excel红色单元格触发数值赋值?
嘿,这个需求挺典型的——毕竟Excel原生函数没法直接读取单元格填充色,不过不用VBA完全能搞定,分两种情况给你说最实用的方案:
情况1:A列的红色是手动填充的(非条件格式)
这种情况得靠自定义名称+宏表函数的组合(放心,不用写VBA代码,只是定义个名称而已):
第一步:创建识别填充色的自定义名称
- 点击顶部菜单栏的「公式」→「定义名称」
- 在弹出的窗口里:
- 名称框填个好记的,比如
GetFillColor - 「引用位置」里输入公式:
=GET.CELL(38,INDIRECT("RC[-1]",FALSE))——这个公式的作用是,自动获取当前单元格左侧相邻单元格的填充色索引值 - 点击「确定」保存
- 名称框填个好记的,比如
第二步:在目标单元格写判断公式
在B2单元格输入:=IF(GetFillColor=3,8,"")- 小提示:
3是Excel默认红色填充的索引值,如果你的红色是自定义的,先选中那个红色单元格,在它右边的单元格输入=GetFillColor,就能得到对应的索引值,把公式里的3替换成这个数字就行 - 拖动B2的填充柄往下拉,就能批量应用到B列其他单元格
- 小提示:
注意:修改A列单元格颜色后,公式不会自动刷新,按
F9键就能手动刷新结果
情况2:A列的红色是通过条件格式设置的
这个就简单多了,直接复用条件格式的判断逻辑就行!
比如你的条件格式规则是「A2的值大于10时填充红色」,那B2直接写:=IF(A2>10,8,"")
这样只要A2满足条件格式的触发规则,B2就会自动显示8,而且会实时刷新,完全不用手动操作
内容的提问来源于stack exchange,提问作者Annalise Azzopardi
相关产品推荐
相关产品推荐

