如果我让 Excel 突出显示两个重复值PT_INTERNAL2859736
,那么唯一值*736
也会突出显示。为什么会发生这种情况?我该如何停止将唯一值突出显示为重复值?
我以为重复值规则是可靠的,直到我发现这个案例。
可以根据图像重现该问题。
现在,如果您重现了该行为,请尝试删除其中一个PT_
值。另一个值将失去突出显示,但*736
将保留突出显示!
这是预期的行为吗重复值功能(我忽略了它的实用性)?或者这是一个需要报告的缺陷?
更新者伊利安斯基(2021-01-25):
<
当其他符号(例如、>
、<=
)>=
位于单元格文本开头且列中有 2 个或更多非空单元格时,也可以观察到类似的未记录行为。查看示例这里(每列都是一个单独的例子)。
在处理 xml 文件(其中行通常以 开头)时,这可能会成为一个问题<
。
答案1
确实如此,因为*
它被视为通配符。
解决这个问题的方法是使用公式插入波浪号 ( ~
),以便*
在条件格式中转义星号 ( ):
=COUNTIF(A:A,SUBSTITUTE(A1,"*","~*"))>1
答案2
在对行为和文档进行进一步研究之后,我可以从高层次的角度回答这个问题:
这是一种未记录的行为,而不是缺陷。
其他答案提醒我们在 Excel 公式中使用通配符 ( *
, ?
, ~
)。之前未回答的问题是,它们是否也适用于条件格式。Microsoft 记录了重复值以下文章中介绍了条件格式的模式:
这些文章中没有提到查找重复项的内部算法仍然尊重通配符(*
, ?
, ~
)。相反,在功能中明确指出了对通配符的支持,其中通配符的存在是显而易见且预期的:
- 标准搜索框
- 类似函数搜索()、搜索B(),COUNTIF(),...
但回到重复:可以讨论样本值PT_INTERNAL2859736
和*736
是否重复根据定义。从常识上讲,不是。在 Excel 中,显然是的。Excel 可能只是使用其标准搜索算法(支持通配符)来搜索具有重复值的单元格……并且显示重复值的结果可能非常出乎意料,正如您在问题或此处看到的那样:
基于上述情况,我认为这不是一个缺陷,而是一种意外的、未记录的行为。
这在现实生活中带来了问题。你没有被警告,你需要一个特殊的公式来发现真正的重复。你只是被重复值条件格式类型,无需进一步解释。今天,我拿了一个包含 2000 个值的列表来为客户提供数据,在巧合和仔细检查结果后才发现误报。我差点删除了唯一值,因为列表中某处有重复值。
从 Excel 的角度来看,当前的行为是合乎逻辑的,但对于没有经验的用户来说,这是一个巨大的感叹号。如果有什么需要修复的话,至少是文档。