2017-01-04 4 views
0

Я ищу некоторую помощь, я пытаюсь разработать способ получения данных из двух значений и показать, какая разница в другой области.Excel - Отображение недостающих значений

Пример

 A       B 
1 The cat and dog   | 
2 The and dog    | cat 
3 cat and dog    | the 
4 the cat     | and dog 

Любые идеи?

+0

Идеальный результат должен быть «кошкой и собакой», если не показывать то, что отсутствует в поле. – Piglet

+0

Разве это не прямо? A1 показывает кошку и собаку, поэтому в B1 ничего не существует, поскольку это идеальное утверждение. A2 «The and dog» Отсутствует «cat», который отображается в B2, поскольку это неверное утверждение. – Piglet

ответ

5

Используйте UDF:

Function LeftOver(Str1 As String, Str2 As String) As String 
Dim spltstr 

For Each spltstr In Split(Str2) 
    Str1 = Trim(Replace(Str1, spltstr, "", , , vbTextCompare)) 
Next spltstr 

LeftOver = Replace(Str1, " ", " ") 
End Function 

Тогда вы бы поставить это в B1:

=LeftOver($A$1,A1) 

enter image description here

+0

Спасибо, это отлично работает :)! – Piglet

0

Используя VBA, вы можете создать пользовательскую функцию, которая разбивает minuend на массив, анализирует вычитание в словаре и циклически проходит через массив minuend для удаления элементов в вычитании, чтобы вернуть разницу. Надеюсь, что была полезной

0

Попробуйте это маленький User Defined Function:

Public Function WhatsMissing(s1 As String, s2 As String) As String 
    Dim IsInThere As Boolean 
    With Application.WorksheetFunction 
     ary1 = Split(.Trim(LCase(s1)), " ") 
     ary2 = Split(.Trim(LCase(s2)), " ") 
    End With 
    For Each a1 In ary1 
     IsInThere = False 
     For Each a2 In ary2 
      If a2 = a1 Then IsInThere = True 
     Next a2 
     If Not IsInThere Then WhatsMissing = WhatsMissing & " " & a1 
    Next a1 
End Function 

enter image description here

 Смежные вопросы

  • Нет связанных вопросов^_^