1

У меня необычная проблема, Excel обрабатывает ячейки, содержащие явно одинаковые значения, как будто они разные.

Чтобы повторить проблему, я приложил электронную таблицу, показывающую это поведение здесь.

Если вы не хотите его скачивать, то это выглядит так:

Две явно идентичные клетки

Excel обрабатывает ячейки А2 и В2 так, как будто они разные, хотя буква "G" в обоих случаях. Ячейка C2 проверяет это с =EXACT(A2,B2) .

Реальная проблема заключается в том, что когда я импортирую эти данные, скажем, в R, он обрабатывает их как разные и препятствует надлежащему анализу данных.

В этом случае я могу удалить эти ячейки, набрать "G", и теперь они будут одинаковыми, но у меня есть огромный набор данных, в котором многие идентичные символы рассматриваются как разные.

Что вызывает это? И есть ли быстрый способ автоматически исправить большую версию этого?

1 ответ1

2

Подобные проблемы обычно возникают из-за проблемы, о которой @ScottCraner упоминал в комментариях. Причина этого заключается в следующем ...

Используя сокращение таблицы, которое вы предоставили в своем вопросе, скажем ...

  • есть пробел после G в ячейке A2 , и
  • в ячейке G после B2 нет пробела

Если это так, хотя визуально для нас они выглядят одинаково ...

  • ячейка A2 будет видна Excel как равная "G " , и
  • ячейка B2 будет видна Excel как равная "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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .