Excel:以文本形式存储的数字重复误报

Excel:以文本形式存储的数字重复误报

情况:

我正在创建一个粗略的、希望是临时的 EPOS 系统,仅使用 Excel 来实现整体简单性,我正准备将库存添加到库存中。这需要将修改后的条形码扫描到一列中,并在以下列中包含相应的数据。修改后的条形码(>1000)长度为 17 位数字(12 UPC + 5 Ext),这些数字是正确识别同一项目的唯一变体所必需的(例如,同一期不同封面的漫画)。我已经主动将此列设置为文本,因为我需要考虑任何前导零,并且通常条形码不会应用任何数学运算。但是,我也格式化了该列中的重复项,以避免重复输入的错误。

问题:

尽管单元格被视为文本,但为了进行比较,Excel 显然仍将它们读取为数字,因为第 16 位和第 17 位数字均未被考虑,从而导致误报。

笔记:

  • 如果我将非数字字符附加到值中,它将被正确识别为唯一(即使使用相同的非数字字符)。不幸的是,这不能用作解决方案,因为这需要重新打印 1000 个条形码,这对于我们当前的规模来说是不合理的成本和时间浪费。
  • 在条形码开头添加撇号通常会导致该值被视为文本,但仍会导致误报。此外,如果不删除应用单元格的范围,就无法删除撇号,因为 Excel 会在删除时自动重新插入该字符。

理想的解决方法:

  • 强制 Excel 将范围/列视为文字文本,无论其是否为非数字内容

免责声明:

我在 Stack Exchange 和其他网站上阅读了数小时有关此类问题的问题 - 所有这些问题都通过“格式化为文本”解决。这不是此问题的解决方案,而且我还没有找到与此特定问题相关的其他问题,因此我不认为这是重复的。

谢谢大家的帮助!

编辑(基于回复/建议的答案):

  • 需要文本的列/单元格被格式化为文本任何数据条目。
  • 数据直接通过条形码扫描仪输入,条形码扫描仪自动回车,没有前导/尾随字符(非打印或其他)。
  • 上面提到的突出显示重复功能是默认的 Excel:样式>条件格式>突出显示单元格规则>重复值。
  • 辅助列可以并且是用于解决问题(在条形码前面附加“#”) - 然而,由于此列消耗的计算机资源有限(随着库存的增加,对性能的影响明显),我不认为这是一个永久的解决方案。

答案1

使用条件格式use a formula方法突出显示重复项。

当文本是“长”数字时,其他方法似乎存在问题。

在以大数字作为文本的列中查找重复项

假设您的条形码位于 A1:A10000(由于资源有限,您不希望范围比最终可能达到的范围更大)。

=AND(SUMPRODUCT(N($A1=$A$1:$A$10000))>1,LEN($A1)>0)

或者

=AND(SUMPRODUCT(--($A1=$A$1:$A$10000))>1,LEN($A1)>0)

在此处输入图片描述

答案2

如果在输入数据之前输入列已经格式化为文本,那么这不是困难的根源。你说是这样,那么继续……

如果您所做的只是使用输入值查找一个值,并且被搜索的值在其输入之前也被格式化为文本,那么 Excel 就会这样做。就是这样。

这里有一个故障点:绝对必须在将列设置为文本之后输入两列中的所有数据。

不幸的是,如果您在正确输入数据(见上文)后强迫 Excel 将它们视为数字,那么您就毁了它。因此,例如,如果您想要“严格”地清理数据以进行搜索,确保所有数据都具有相同数量的字符或其他内容,并且通过使用(例如)TEXT()对值应用精确格式来做到这一点,那么您就是在强制它们经过 15 个有效数字的筛选,并且会看到它们被截断。这只是一种可以强制将它们视为数字而无需您真正考虑的方法。(例如,通过使用(例如)确保所有数据都有 17 位数字TEXT(A1,"00000000000000000"),以避免因条形码阅读器呈现其输出的某些方式而产生的挫败感(请注意,这些方式是由用户选择的,或者由于没有选择而呈现,而不是读者的失误)。

接下来,我将引用您所说的事实,即添加明确的非数字文本会使事情变得正确。是的,因为 Excel 不再将它们视为数字。这表明,在执行查找之前,有一只“中间的猴子”将正确格式化并输入的数据视为数字。

因此,我们来到了可能失败的地方:(引用你的问题)

“但是,我也对该列的重复项进行了格式化,以避免重复条目的错误。”

老兄……这到底是什么意思?它到底包含什么?例如,Excel 中根本没有任何“重复格式化”功能。因此,这强烈表明,您不是直接在存储的数据中查找,and/or不是直接使用条形码阅读器输入的数据。这表明您有辅助列,这些辅助列中有一个或多个列的版本正在接受IF()测试,以通过在辅助列中显示空白(“”)来“删除”重复项。

非常有暗示性,问题在于这些公式在某些时候将条目视为数字,而不是始终将它们视为文本,从头到尾。而且...

更成问题的是...

这些辅助列不能格式化为文本,否则其公式将无法工作。因此,即使您在此重复搜索中从未将输入的数据或存储的查找数据视为数字,公式的结果也会被视为数字!

所以它们的输出是数字。

因此被截断。

我会认真审视这一切。

相关内容