【问题标题】:Excel conditional formating based on the multiple cells and values基于多个单元格和值的 Excel 条件格式
【发布时间】:2017-05-19 19:59:39
【问题描述】:

我正在尝试对特定数据库实施各种条件格式。在这里寻找答案,但找不到类似的东西。可能不可能,但值得一试。
我正在执行各种数据清理和验证。
情况如下:(小样本,在这个特定文件中处理 100k 数据条目)

最终我想要的是将最后一个“UNDERSCORE”之后的低级描述字符与更高级别的最后一个“UNDERSCORE”之后的字符进行比较的公式(突出显示)。如果不匹配,则突出显示单元格?

要求太多,是的,不是的,也许吧?我愿意接受有关如何执行各种数据清理和验证的任何其他建议!

谢谢!

【问题讨论】:

  • 什么是“低级”和“高级”?
  • @NetMage 高亮显示。
  • @pnuts 数据输入错误。应该是地铁,这些差异就是我要寻找的
  • @pnuts 希望?查找高一级下划线后的最后一个字符是什么,与低一级比较,如果不相等-高亮?

标签: excel validation excel-formula excel-2010 data-cleaning


【解决方案1】:

如果您必须使用最后一个“UNDERSCORE”字符,并且不能依赖于后缀为四个字符,则公式会变得相当复杂。为简单起见,我假设较高级别总是缺少较低级别的最后五个字符,如果您必须通过最后一个“DASH”字符,那么这会更长。

使用此公式突出显示单元格,将两个名称 LEVELS 和 DESCRS 定义为两列:

=IFNA(MID(B2,FIND("[]",SUBSTITUTE(B2,"_","[]",LEN(B2)-LEN(SUBSTITUTE(B2,"_",""))))+1,999)<>MID(INDEX(DESCRS,MATCH(LEFT(A2,LEN(A2)-5),LEVELS,0),1),FIND("[]",SUBSTITUTE(INDEX(DESCRS,MATCH(LEFT(A2,LEN(A2)-5),LEVELS,0),1),"_","[]",LEN(INDEX(DESCRS,MATCH(LEFT(A2,LEN(A2)-5),LEVELS,0),1))-LEN(SUBSTITUTE(INDEX(DESCRS,MATCH(LEFT(A2,LEN(A2)-5),LEVELS,0),1),"_",""))))+1,999),FALSE)

这使用SUBSTITUTE 的一个非常好的技巧来查找字符的最后一次出现。

顺便说一句,我可能会编写一个 Perl 程序来解析数据并查找错误。

【讨论】:

  • LEVELSDESCR 是您需要为 LevelDescription 列定义的名称,以便公式可以搜索和匹配他们。或者您可以用绝对列引用代替它们(如$A$B)。
  • @NetMage 感谢您的欢迎回复!但是,它没有对我的数据运行任何格式。更高级别总是缺少最后五个字符,所以这不是问题。然而,描述中“下划线”之后的最后一个字符的数量会有所不同,因此在这种情况下,需要查找下划线并将比较设为高级别。
  • 您是否将其设置为针对描述列的条件格式?你定义了这两个名字吗?您可以将公式作为公式粘贴到说明右侧的单元格中,以查看您在该单元格中得到 TRUE 或 FALSE 以验证它是否有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-04
  • 2013-04-17
  • 2023-04-02
  • 2013-09-05
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多