none
条件格式公式不更新 RRS feed

  • 问题

  • 问题描述:

    我在工作表中设置了一个比较复杂的公式条件格式,并为满足条件的单元格设置背景色。设置完后显示正常,可是当我关闭此工作簿后重新打开的时候发现背景色没了。
    PS:条件格式中的公式仍然存在,只是背景色没有了。再次重新设置该条件格式颜色又会显示出来,再关再开又没了。

    我怀疑是不是因为公式中包含了某些特殊的函数或者其它特殊原因导致工作表没有重新计算该条件格式的公式。请问这种可能性存在吗?

    使用的公式:
    =IF(FIND(A1,A2)>0,AND(IFERROR(MID(A2,FIND(A1,A2)-1,1)=";",TRUE),OR(MID(A2,FIND(A1,A2)+LEN(A1),1)=";",MID(A2,FIND(A1,A2)+LEN(A1),1)=“”)),FLASE)

    我想做的事情其实蛮简单:
    A1单元格中有一个数值,A2单元格中包含若干个由分号连接起来的数值组成的字符串。我希望判断A2单元格中包含A1数值。条件满足就设置背景色为红色。

    例如:
    A1=1
    A2=1;2;3
    则A1∈A2

    A1=1
    A2=11;2
    则A∉A2

    我用的公式很土,想必有更简单的公式可以轻松搞定。求解。谢谢。


    foch

    2014年9月5日 12:06

答案

  • =(LEFT(A2,LEN(A1)+1)=A1&";")+(RIGHT(A2,LEN(A1)+1)=";"&A1)+COUNTIF(A2,"*;"&A1&";*")

    =COUNTIF(A2,A1&";*")+COUNTIF(A2,"*;"&A1)+COUNTIF(A2,"*;"&A1&";*")

    这两个公式都很好理解吧^_^

    如果不是用于条件格式,公式还可以简化成:

    =SUM(COUNTIF(A2,{"*;","*;",""}&A1&{";*","",";*"}))数组


    在单元格里横行的小妖同学

    QQ:76332468

    http://pure-shadow.blog.sohu.com/

    专业方向:EXCEL操作



    2014年9月13日 8:58

全部回复

  • 你好,

    请问,条件格式在Excel文件关闭后重开,丢失背景色的问题,是出现在这个特定的文件还是所有的Excel文件?

    如果是出现在这个特定的文件,我建议我们可以尝试设置在Excel文件打开手动计算(地址:公式=》计算选项=》手动)

    如果是所有文件出现,有可能是Excel插件造成的,我建议我们可以尝试在安全模式下打开,并且检查插件。

    ====

    同时,根据你的描述,我们可以尝试使用如下的条件格式规则来达到你的要求:

    =ISNUMBER(FIND("1",$E1))

    谢谢。

    微软一站式示例脚本库: http://blogs.technet.com/b/onescript


    2014年9月8日 2:47
    版主
  • Hello George.Zhao

    非常感谢您的回复.

    这个问题不是针对特定的Excel文件存在.而是如果条件格式中的公式设置成下面这样不管换哪个工作簿实验就会出现问题.
    =IF(FIND(A1,A2)>0,AND(IFERROR(MID(A2,FIND(A1,A2)-1,1)=";",TRUE),OR(MID(A2,FIND(A1,A2)+LEN(A1),1)=";",MID(A2,FIND(A1,A2)+LEN(A1),1)=“”)),FLASE)

    我今天换了一个公式,实现的是相同的功能,但是不再出现上次的问题.原因不清楚.

    此外,跟计算模式似乎无关.因为上次出现那个问题的时候我首先就将计算模式在手动自动间切换了很多次做实验,没有效果.

    跟插件似乎也没有关系.因为我在没有改变任何Excel环境的情况下换个公式问题就消失了.

    最后,=ISNUMBER(FIND("1",$E1))不满足我的要求.比如11;22;33中包含1这个字符,但是不包含1这个数字.我要的效果是完全匹配某个数字. 虽然我已经换了一个公式解决了,可是如果您有比较简洁的公式可以实现,还是非常乐意学习.谢谢!


    foch

    2014年9月8日 11:45
  • =(LEFT(A2,LEN(A1)+1)=A1&";")+(RIGHT(A2,LEN(A1)+1)=";"&A1)+COUNTIF(A2,"*;"&A1&";*")

    =COUNTIF(A2,A1&";*")+COUNTIF(A2,"*;"&A1)+COUNTIF(A2,"*;"&A1&";*")

    这两个公式都很好理解吧^_^

    如果不是用于条件格式,公式还可以简化成:

    =SUM(COUNTIF(A2,{"*;","*;",""}&A1&{";*","",";*"}))数组


    在单元格里横行的小妖同学

    QQ:76332468

    http://pure-shadow.blog.sohu.com/

    专业方向:EXCEL操作



    2014年9月13日 8:58
  • 你好. 小妖同学

    你给的三个公式都很棒,事实上我自己后来写的是=COUNTIF(A2,A1)+COUNTIF(A2,A1&";*")+COUNTIF(A2,"*;"&A1)+COUNTIF(A2,"*;"&A1&";*")。因为A2可能只有一个值。

    不过我的提问中没有强调,所以你给的三个公式都符合我的提问要求。

    我觉得数组公式=SUM(COUNTIF(A2,{"*;","*;",""}&A1&{";*","",";*"}))这个最赞。

    只是我奇怪为什么Excel里面不允许在条件格式中使用常量数组呢? 貌似有些时候使用数组公式也是可以的,我想求证一下在条件格式中到底可不可以使用数组公式,有哪些限制?使用之后会不会有什么不好的副作用?


    foch

    • 已编辑 mrfoch 2014年9月14日 1:25 格式修正
    2014年9月14日 1:24