Найти часть строки, которая отличает строку в одной ячейке от строки в другой ячейке

294
JAT86

У меня есть два столбца со строками, и я хочу знать, какие части строки из одного столбца имеют с другим столбцом. Я проверил это решение Сравните 2 текстовых ячейки и показать разницу в третьей ячейке | Супер пользователь, но это не работает для моей проблемы.

На приведенном ниже снимке экрана я хочу, чтобы в столбце результатов была строка, Elementaryпоскольку это то, что отличается B2от A2. Я попытался использовать =SUBSTITUTE(A2,B2,"")на основе решения по ссылке выше, но формула делает противоположное, отображая общие строки в обоих столбцах:

formula screenshot

Как я могу сделать так, Elementaryчтобы вместо этого отображалась строковая разница ( )?

1

1 ответ на вопрос

3
DavidPostill

Как я могу заставить его отображать разницу строк (элементарный)?

Вот пользовательская функция, WORDDIFкоторая может делать то, что вы хотите.

Чтобы установить пользовательскую функцию ...

  • Alt + F11, чтобы открыть редактор VBA
  • В меню VBA выберите «Вставка»> «Модуль».
  • Вставьте приведенный ниже код в окно редактирования VBA.

Вернувшись в Excel, поместите эту формулу в C1

=WORDDIF(A1,B1) 

Код:

Function WORDDIF(rngA As Range, rngB As Range) As String  Dim WordsA As Variant, WordsB As Variant Dim ndxA As Long, ndxB As Long, strTemp As String  WordsA = Split(rngA.Text, " ") WordsB = Split(rngB.Text, " ")  For ndxB = LBound(WordsB) To UBound(WordsB) For ndxA = LBound(WordsA) To UBound(WordsA) If StrComp(WordsA(ndxA), WordsB(ndxB), vbTextCompare) = 0 Then WordsA(ndxA) = vbNullString Exit For End If Next ndxA Next ndxB  For ndxA = LBound(WordsA) To UBound(WordsA) If WordsA(ndxA) <> vbNullString Then strTemp = strTemp & WordsA(ndxA) & " " Next ndxA  WORDDIF = Trim(strTemp)  End Function 

Источник https://www.mrexcel.com/forum/excel-questions/486708-compare-two-strings-find-difference.html

Я не могу поверить, что в Excel 2016 изначально нет этой чрезвычайно полезной функции. Большое спасибо. JAT86 6 лет назад 0
@ JAT86 Excel - это первичное приложение для работы с электронными таблицами, а не инструмент для управления текстом. Есть бесконечные «чрезвычайно полезные функции», которые изначально не включены. Máté Juhász 6 лет назад 0

Похожие вопросы