заменить слова в предложении - PullRequest
0 голосов
/ 16 мая 2018

Если ячейка A1 содержит значения, я хочу знать, как исключить их из предложения (A2).

Пример:

  • Без изменений (оригинал):

    A1 = (null)  
    A2 = 1,2,3,4,5,6,7,8,9  
    
  • После изменения:

    if A1 = 2,5,8   
    A2 = 1,3,4,6,7,9  
    

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Эту функцию можно использовать на рабочем листе или в VBA:

Function removeWords(words, wordsToExclude) As String
    Dim w: For Each w In Split(words, ",")
        If InStr(wordsToExclude, w) = 0 Then removeWords = removeWords & "," & w
    Next: removeWords = Mid(removeWords, 2)
End Function

Пример:

Чтобы получить вывод, соответствующий вашему примеру:

img

... или если вы не хотите «жестко кодировать» исходные значения, подобные этим, вы можете вместо этого ссылаться на ячейку, например:

img

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

0 голосов
/ 16 мая 2018

После ввода значений в A1 и A2 , запустите этот короткий макрос:

Sub removewords()
    Dim veto As Boolean, temp As String
    ary1 = Split([a1], ",")
    ary2 = Split([a2], ",")
    For Each a In ary2
        veto = False
        For Each b In ary1
            If a = b Then veto = True
        Next b
        If Not veto Then temp = temp & "," & a
    Next a
    [a2] = Mid(temp, 2)
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...