首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么连字符搞砸了我的重复查找条件格式?

为什么连字符搞砸了我的重复查找条件格式?
EN

Stack Overflow用户
提问于 2021-10-01 04:41:09
回答 1查看 55关注 0票数 0

我有一张我用作科学论文数据库的工作表。我从不同的来源复制期刊文章的标题(一些可能来自电子邮件,其他的可能是网页上的链接,或者只是文章页面上的标题)。我设置了条件格式,如果我添加的是列表中已经存在的标题,它会让我知道。我注意到有一些标题“忽略”了条件格式,而且看起来所有的违规者中都有连字符。如果我删除连字符,则条件格式将起作用。因此,来自相同标题的连字符之间存在一些“差异”,这使得条件格式无法将它们视为相同的。

Shared sheet

有问题的标题示例:

端到端连续生物处理:对单克隆抗体设施设计、商品成本和开发成本的影响

端到端连续生物处理:对单克隆抗体设施设计、商品成本和开发成本的影响

端到端连续生物处理:对单克隆抗体的设施设计、商品成本和开发成本的影响

这种差异是什么,有没有办法解决它?我是否需要编写一个脚本来查找/替换连字符才能使其正常工作?

提亚

EN

回答 1

Stack Overflow用户

发布于 2021-10-02 10:52:49

仅仅因为字符看起来相同,并不意味着它们是相同的。你弄错了连字符和破折号的相似之处。从视觉上看,它们几乎是相同的--破折号比连字符略宽。

破折号被认为是“特殊字符”(即它们不是键盘上的键),但它们在html中被广泛使用。因此,例如,如果您从网站复制了一个项目,那么您可能无意中复制了破折号而不是连字符。

您可以使用CODE函数来识别字符的确切性质。

你会问“这个区别是什么,有没有办法修复它?我需要编写一个脚本来查找/替换连字符才能正常工作吗?”

这有什么区别?

重要的是要认识到,尽管这些示例看起来是相同的,但还有其他不同之处,不仅仅是连字符和破折号。

  • Example#1 - Hyphen - CODE返回"45"

  • Example#2 - Dash - CODE返回"8208"

  • Example#3 - Dash - CODE返回“8208”。

代码语言:javascript
复制
- But there are other factors that contribute to fail to trigger the conditional formatting rule:
- Length = 128 (vs 127 for the other examples). There is an additional comma (after "cost of sales")
- the word "Impact" is spelled with an upper case "I" (lower case for the other examples)

正在向前发展

你需要一个脚本吗?否(IMHO)

有没有办法解决这个问题?如上所述,除了连字符和破折号之外,还有更多的区别。而且,随着时间的推移,差异的数量和类型可能会增加。然而,有一个解决“连字符Vs破折号”的问题,这是这个问题的焦点。

公式和格式化

您的数据当前位于列A中,并且列A也受条件格式的影响。

  • 从列A中删除条件格式规则
  • 在单元格中插入此公式B2

=arrayformula(if(LEN($A2:A)-LEN(SUBSTITUTE($A2:A, char(8208), ""))=0,A2:A,arrayformula(substitute(A2:A,char(8208),char(45)))))

对于列B的自定义条件格式设置,请在列B中选择范围并设置其格式,条件公式为“

  • is”,然后输入此公式:选择首选格式样式,然后单击“Done.

”。

公式逻辑

  • arrayformula使公式能够自动填充column.
  • LEN($A2:A)-LEN(SUBSTITUTE($A2:A, char(8208), ""))=0
    • 中的所有相关单元格,以测试字符串中的破折号。它用nil值替换破折号的任何/所有实例(char(8208)),然后将长度与调整后的长度进行比较。如果该值为零,则string.

中没有破折号

  • IF:测试任何连字符,
    • 如果字符串不包含任何短划线,则使用该值,否则,字符串必须包含短划线,因此请用短划线替换连字符,并使用替换的值
      • arrayformula(substitute(A2:A,char(8208),char(45)))

然后,条件格式设置规则将查找列中的重复值,并设置任何/所有重复值的格式。

您将注意到,尽管包含破折号,但Example#3并未被标记为重复。这是因为"Impact“的拼写和"cost of sales”后面的逗号。

示例

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69400472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档