为什么 Excel 将这两个看起来相同的单元格视为不同?

为什么 Excel 将这两个看起来相同的单元格视为不同?

我遇到了一个不寻常的问题,Excel 将包含明显相等值的单元格视为不同的值。

为了复制该问题,我附上了一个显示此行为的电子表格这里

如果你不想下载它,那么它看起来是这样的:

两个看似相同的细胞

Excel 将单元格 A2 和 B2 视为不同,尽管两者都有“G”。单元格 C2 正在用 进行测试=EXACT(A2,B2)

真正的问题是,当我将这些数据导入到 R 中时,它会将它们视为不同的数据并阻止对数据进行正确的分析。

在这种情况下,我可以删除这些单元格,重新输入“G”,它们现在将相同,但我有一个巨大的数据集中许多相同的字符被视为不同的字符。

这是什么原因造成的?有没有快速的方法可以自动修复更大版本的问题?

答案1

此类问题通常是由@ScottCraner 在评论中提到的问题引起的。原因如下...

使用您在问题中提供的电子表格剪切,假设......

  • G在单元格后面有一个空格A2,并且
  • 不是G单元格后面有一个空格B2

如果是这样的话,尽管从我们看来它们是一样的……

  • 单元格A2将被 excel 视为相等"G ",并且
  • ExcelB2会将单元格视为等于"G"

因此,你会进入FALSE牢房C2

您需要修剪和清理所有包含尾随不可打印字符的单元格(删除尾随和前导空格、回车符等),以确保单元格中数据的一致性。

您可以通过重新输入应该存在的值来手动执行此操作,但是如果您有很多单元格可能存在此问题,则创建宏可能会节省时间。

使用 VBA 完成任务

对于一段很棒的代码,你可以使用电子表格大师这是为了

处理 Excel 数据的修剪(删除前导和结束空格)和清理(删除不可打印的字符)过程。

Sub CleanTrimCells_Evaluate()
'PURPOSE: A Fast way to Clean/Trim cell values in user selection
'AUTHOR: Armando Montes
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim rng As Range
Dim Area As Range

'Weed out any formulas from selection
  If Selection.Cells.Count = 1 Then
    Set rng = Selection
  Else
    Set rng = Selection.SpecialCells(xlCellTypeConstants)
  End If

'Trim and Clean cell values
  For Each Area In rng.Areas
    Area.Value = Evaluate("IF(ROW(" & Area.Address & "),CLEAN(TRIM(" & Area.Address & ")))")
  Next Area

End Sub

相关内容