Excel MAC 2019 Помогите сравнить символы в ячейках

У меня есть лист Excel с двумя столбцами (A и B), каждая ячейка содержит текст, я хотел бы иметь возможность создать третий столбец (C) с символами, которые отличаются между ними.

Нужно пройти 50 000 строк.

Пример:

Пример таблицы в Excel

Другой пример:

Column A2: ABCDEFG
Column B2: AB"CDEFGED
Column C2: "ED (The difference between the 2)

Это возможно? Работа в Excel Mac 2019


person PaulW.    schedule 27.05.2020    source источник
comment
Я удалил его, так как он на самом деле не работал =(. В нем отсутствовал символ в C3 именно по той причине, которую я упомянул в своем посте. Или ваши фактические данные не отражают данные вашего образца? Также есть некоторая ошибка в ваших данных образца .Правда ли, что вас не интересует одинарная кавычка в A3?   -  person JvdV    schedule 27.05.2020
comment
Он представляет данные и, кажется, отлично работает с тем, что я проверял до сих пор. Два столбца содержат имена, и между двумя наборами данных существуют расхождения, в основном из-за неправильного ввода данных. 90% различий между LTD и Limited, хотя они есть, брошены повсюду. Это нормально, когда одно имя в одном столбце полностью отличается от другого, у меня возникают проблемы. Это отлично подходит, так что еще раз спасибо. После этих 50 000 еще 200 000 строк :(   -  person PaulW.    schedule 27.05.2020
comment
Я восстановлю ответ, чтобы вы заметили ошибку в ячейке C3... А пока я посмотрю, смогу ли я придумать что-нибудь еще.   -  person JvdV    schedule 27.05.2020
comment
Является ли VBA вариантом для вас, используя UDF для решения этой проблемы? Намного легче.   -  person JvdV    schedule 28.05.2020


Ответы (1)


Было бы интересно посмотреть, может ли кто-нибудь придумать формулу, делающую это. Вместо этого я пошел другим путем, используя UDF:

Function Difference(str1 As String, str2 As String) As String

Dim x As Long
Dim tmp As String

'Grab chars from str2
tmp = str1
For x = 1 To Len(str2)
    tmp = Replace(tmp, Mid(str2, x, 1), "", Count:=1)
Next
Difference = tmp

'Grab chars from str1
tmp = str2
For x = 1 To Len(str1)
    tmp = Replace(tmp, Mid(str1, x, 1), "", Count:=1)
Next
Difference = Difference & tmp

End Function

Звонить с C2 по: =Difference(A2,B2)

введите здесь описание изображения

person JvdV    schedule 27.05.2020
comment
@ScottCraner, я знаю, как вы можете прочитать в комментариях выше, я удалил это, но ОП говорит, что это работает. Восстановлено, чтобы показать ему, что это на самом деле неисправно - person JvdV; 27.05.2020
comment
@PaulW, пожалуйста, проверьте данные! Это НЕ правильно, я просто восстановил, чтобы вы заметили ошибку в C3. - person JvdV; 27.05.2020
comment
Извините, пришлось что-то быстро съесть, весь день смотрел на эту кашу данных. Я вижу ошибку, если буква существует в первой ячейке, она не считает дубликат во второй. Есть ли способ обойти это? Всем еще раз спасибо за помощь - person PaulW.; 27.05.2020
comment
Возможно, но я не могу вспомнить ни одного банкомата. я удалю это сейчас - person JvdV; 27.05.2020
comment
@PaulW., я пошел другим путем, вы можете добавить эту UDF, и она должна удовлетворить ваши потребности. - person JvdV; 28.05.2020
comment
@ScottCraner, я считаю, что достиг предела своих возможностей, пытаясь решить это с помощью простой формулы. Было бы интересно посмотреть, возможно ли это. Вместо этого я пошел на риск, используя UDF. - person JvdV; 28.05.2020
comment
Я пытался какое-то время и бросил. Я не верю, что формула может это сделать. - person Scott Craner; 28.05.2020