Страницы: 1
RSS
Вычесть совпадающее значение одной ячейки из другой
 
Столбец 1 содержит данные такого формата:

автомобиль   замена моторного масла
замена в автомобилях масла акпп
замена ламп авто
замена ламп авто на светодиодные
замена ламп автомобиля на   светодиодные
замена ламп в автомобиле   круглосуточно западный округ
замена ламп машина

Столбец 2 содержит данные формата:

автомобиль   автомобилях автомобиля автомобиле
автомобиль автомобилях   автомобиля автомобиле
авто
авто
автомобиль автомобилях   автомобиля автомобиле
автомобиль автомобилях   автомобиля автомобиле
машина машины машине

Нужно, чтобы в столбце 3 отображались данные из столбца 1, за минусом найденного совпадения содержащегося во втором столбце.

Вот так:
замена моторного масла
замена в  масла акпп
замена   ламп
замена   ламп  на светодиодные
замена   ламп  на светодиодные
замена ламп   в  круглосуточно западный округ
замена   ламп
Изменено: daniil.dnk - 14.01.2020 17:48:13
 
Трудно, наверное, работать в Excel, когда файлы для примеров закончились...
 
Файл в формате Эксель покажите.
Изменено: Максим В. - 14.01.2020 17:28:50
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
сорян, не думал, что вы так быстро ответите!
 
Если все ключевые слова вынести в один столбец, можно обойтись такой формулой:
=СЖПРОБЕЛЫ(ЗАМЕНИТЬ(Таблица4[@[Столбец 1]];СУММ(ЕСЛИОШИБКА(ПОИСК(" "&$F$2:$F$9&" ";" "&Таблица4[@[Столбец 1]]&" ");0));СУММ(ЕЧИСЛО(ПОИСК(" "&$F$2:$F$9&" ";" "&Таблица4[@[Столбец 1]]&" "))*ДЛСТР($F$2:$F$9));""))
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Вау круто спасибо!!!
 
Максим В., почему-то не получается скопировать формулу, чтобы она работала.
И когда нажал 2 раза, чтобы посмотреть формулу, написалось #ЗНАЧ
Чего я не учёл и как можно вашу формулу внедрить в другой документ. Это макрос или что?

#ЗНАЧ!
замена в масла акпп
замена ламп
замена ламп на светодиодные
замена ламп на светодиодные
замена ламп в круглосуточно западный   округ
замена ламп
 
Это формула массива. Копируете в одну ячейку. Вводите сочетанием клавиш Ctrl+Shift+Enter. Формула обернется фигурными скобками {...}. Далее протягиваете на нужный диапазон.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., данная формула массива должна ли работать в обычной (не умной таблице)?
 
Максим В., скопировал формулу в другой файл, но что-то не получается, в чем может быть ошибка? (данные отображаются, но они не корректно отображаются)
 
daniil.dnk, завтра смогу посмотреть. Сейчас нет компьютера под рукой.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., очень буду ждать!
 
daniil.dnk, формула расчитана на то, в тексте есть только одно слово из списка. Если их несколько, то получается ерунда.
Изменено: Максим В. - 15.01.2020 09:23:45
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., а сможете поправить формулу для моего случая или новую тему создать необходимо?
 
daniil.dnk, мне кажется, что в таком виде задача не для формул. Ждите ответа от программистов.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Максим В., макрос нужен? Программисты здесь напишут?
 
Откуда же мне знать. Посчитают задачу интересной- напишут.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
daniil.dnk написал:
Программисты здесь напишут?
Я не программист, но напишу (если ещё актуально)
Код
Function Udalenie(sA As String, sb As String) As String
    Dim i As Long, k As Long
    Dim a() As String, b() As String
    Dim sTxt As String, d As Boolean
    a = Split(sA, " ")
    b = Split(sb, " ")
    For i = 0 To UBound(a)
        For k = 0 To UBound(b)
            If a(i) = b(k) Then
                d = True
                Exit For
            Else
                d = False
            End If
        Next k
        If d = False Then
            sTxt = sTxt & " " & a(i)
        End If
    Next i
    Udalenie = Trim(sTxt)
End Function
 
Классный макрос. только что пригодилось ускорить дело.

Кто-то  может этот макрос изменить чтоб оно из столбца 1 вычитало значения сразу двух следующих столбцов?
 
Макрос менять не нужно, нужно передать в его второй параметр две колонки
Код
=Udalenie(Таблица4[@[Столбец 1]];Таблица4[@[Столбец 22]]&" "&Таблица4[@[Столбец 33]])
см. пример. Формулу записал в колонку G.
Страницы: 1
Наверх