Excel 中的错误?用于标记重复项的条件格式也突出显示了唯一值

mir*_*lav 45 windows duplicate conditional-formatting microsoft-excel office365

如果我让 Excel 突出显示两个重复值PT_INTERNAL2859736,那么也会*736突出显示唯一值。为什么会发生这种情况以及如何停止将唯一值突出显示为重复?

在我发现这个案例之前,我认为重复值规则是可靠的。

在此处输入图片说明

该问题可以根据图像重现。

现在,如果您重现了该行为,请尝试删除其中一个PT_值。另一个将失去突出显示,但*736会保留它!

         在此处输入图片说明

这是重复值功能的预期行为(我忽略了它的用处)吗?或者这是一个必须报告的缺陷?


iliansky更新(2021-01-25):

类似无证行为也可以与其它符号如观察到的<><=>=当这些符号被放置在一个单元中的文本的开头和有2或更多个非空单元中的列。请参阅此处的示例(每列是一个单独的示例)。

在处理行通常以 .xml 开头的 xml 文件时,这可能会成为一个问题<

cyb*_*mad 51

这确实是因为*被视为通配符。

解决方法是使用公式插入波浪号 ( ~) 以转义*条件格式的星号 ( ):

=COUNTIF(A:A,SUBSTITUTE(A1,"*","~*"))>1
Run Code Online (Sandbox Code Playgroud)

  • 当我被提醒 Excel 中的转义字符是 `~` 时,我总是感到惊讶。 (19认同)
  • @Selkie - 我至少习惯了 Python 和 Javascript 中的 `\\`。(编辑:哈,即使在 StackExchange 的评论中也使用它作为转义字符)。[这似乎也使格式化变得棘手......] (6认同)
  • 并且正则表达式使用`\\`(编辑:并且,SU中的注释也是如此) (6认同)
  • 谢谢你。您指出了众所周知的功能,我实际上找不到与我询问的条件格式相关的功能。我做了进一步的研究并试图回答我的问题的重要部分[这是否是一个错误](https://superuser.com/a/1411624/287473)。 (3认同)

mir*_*lav 30

经过对行为和文档的进一步研究,我可以从高层次的角度回答这个问题:

这与其说是缺陷,不如说是一种未记录的行为。

其他答案提醒我们在 Excel 公式中使用通配符 ( *, ?, ~)。之前未回答的问题是它们是否也需要条件格式。Microsoft在以下文章中记录了条件格式的重复值模式:

这些文章中没有提到搜索重复项的内部算法仍然尊重通配符 ( *, ?, ~)。相反,在功能中明确命名了对通配符的支持,其中通配符的存在是显而易见的和预期的:

但是回到重复:可以讨论样本值PT_INTERNAL2859736定义是否*736重复。按常识来说,没有。在 Excel 中,显然是的。Excel 也可能仅使用其标准搜索算法(支持通配符)来搜索具有重复值的单元格……并且显示重复值的结果可能非常出人意料,正如您在问题或此处所见:

在此处输入图片说明

基于上述,我会说这不是缺陷,而是一种意外且未记录的行为。

这在现实生活中带来了一个问题。你没有被警告过,你需要一个特殊的公式来发现真正的重复项。您刚刚看到重复值条件格式类型,没有进一步解释。今天,我拿了一个包含 2000 个值的列表来为客户提供数据,并且仅在巧合和仔细检查结果后才发现误报。我几乎删除了唯一值,因为它们在列表中的某处有重复。

从 Excel 的角度来看,当前的行为是合乎逻辑的,但对于没有经验的用户使用来说却是一个巨大的感叹号。如果应该修复某些内容,至少是文档。

  • 我敢肯定,如果您花时间仔细记录并提交此文件,它会因 **按设计而设计** 关闭。 (4认同)
  • 我会说这实际上是一个缺陷,因为 Excel 的行为不一致。即使我们将您示例的案例 2 和 3 原谅为“格式化重复值”意味着“格式化找到重复但未找到重复的值”。您的第一个链接(查找并删除重复项,Office 官方文档!)中描述的两个功能仍然不适用相同的逻辑。“删除重复项”不会删除通配符匹配项。如果您遵循 Office 文档,您将 (1) 突出显示重复项,(2) 单击删除重复项,(3) 仍然突出显示重复项(您必须自己找到对应项)。 (3认同)
  • 虽然我也赞成目前投票率较高的答案,但这是我最喜欢的,因为它实际上认为这不是错误。不过,我确实很欣赏其他答案中包含的解决方案,以使 '*' 表现得像正常字符一样。 (2认同)

Saa*_*kke 14

如果谷歌excel asterisk wildcard conditional formatting你会发现有人用同样的问题。

建议的解决方案是使用自定义公式来检查值是否重复。

公式如下所示:
=SUMPRODUCT(--(("~"&A2)=("~"&$A$2:$A$4)))>1

在此处输入图片说明

结果是:

在此处输入图片说明