Подобные проблемы обычно возникают из-за проблемы, о которой @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