добавь в макрос условие: Если количество строк с одинаковыми значениями одновременно в столбце с заголовком столбца «Интерес к компоненту Х» и «Влияние на компонент У»:
Равно 7, то к значению последовательно к четырем значениям в столбце «Влияние на компонент У» прибавить 0,12, потом 0,24, потом 0,36, а из значения других четырех значений в столбце «Влияние на компонент У» последовательно вычесть 0,12, потом 0,24, потом 0,36. При этом одно значение остается таким же, как было изначально
Sub ОбработкаСовпаденийДвухСтолбцов()
    Dim ws As Worksheet ' Активный лист
    Dim lastRow As Long ' Последняя заполненная строка
    Dim colInterestX As Integer ' Столбец "Интерес к компоненту Х"
    Dim colInfluenceY As Integer ' Столбец "Влияние на компонент У"
    Dim dict As Object ' Словарь для группировки по комбинации значений
    Dim key As Variant ' Ключ: InterestX|InfluenceY
    Dim rowColl As Collection ' Коллекция строк для каждой группы
    Dim i As Long ' Счетчик строк
    Dim msgError As String ' Сообщение об ошибках
    Dim countProcessed2 As Integer ' Количество обработанных групп по 2 строки
    Dim countProcessed3 As Integer ' Количество обработанных групп по 3 строки
    Dim countProcessed4 As Integer ' Количество обработанных групп по 4 строки
    
    ' Инициализация объектов
    Set ws = ActiveSheet ' Использовать активный лист (измените на Sheets("ИмяЛиста") для конкретного листа)
    Set dict = CreateObject("Scripting.Dictionary") ' Словарь для группировки
    
    ' Поиск столбцов по заголовкам (точное совпадение)
    On Error Resume Next
    colInterestX = ws.Rows(1).Find(What:="Интерес к компоненту Х", LookIn:=xlValues, LookAt:=xlWhole).Column
    colInfluenceY = ws.Rows(1).Find(What:="Влияние на компонент У", LookIn:=xlValues, LookAt:=xlWhole).Column
    On Error GoTo 0
    
    ' Проверка наличия столбцов
    If colInterestX = 0 Or colInfluenceY = 0 Then
        MsgBox "Не найдены необходимые столбцы:" & vbCrLf & _
               "- «Интерес к компоненту Х»" & vbCrLf & _
               "- «Влияние на компонент У»", vbCritical
        Exit Sub
    End If
    
    ' Определение последней строки с данными
    lastRow = ws.Cells(ws.Rows.count, colInterestX).End(xlUp).row
    
    ' ==============================
    ' Группировка строк по комбинации двух столбцов
    ' Ключ: Значение InterestX | Значение InfluenceY (разделитель — |)
    ' ==============================
    For i = 2 To lastRow ' Начало с 2-й строки (после заголовков)
        Dim interestVal As Variant
        Dim influenceVal As Variant
        interestVal = ws.Cells(i, colInterestX).Value
        influenceVal = ws.Cells(i, colInfluenceY).Value
        
        ' Игнорирование строк с пустыми значениями в любом из столбцов
        If Not IsEmpty(interestVal) And Not IsEmpty(influenceVal) Then
            Dim combinedKey As String
            combinedKey = CStr(interestVal) & "|" & CStr(influenceVal) ' Создание ключа
            
            ' Добавление строки в группу
            If Not dict.Exists(combinedKey) Then
                Set rowColl = New Collection
                rowColl.Add i
                dict.Add combinedKey, rowColl
            Else
                dict(combinedKey).Add i
            End If
        End If
    Next i
    
    ' ==============================
    ' Обработка групп из 2 строк
    ' ==============================
    countProcessed2 = 0
    For Each key In dict.Keys
        Set rowColl = dict(key)
        If rowColl.count = 2 Then ' Только группы с 2 строками
            countProcessed2 = countProcessed2 + 1
            
            ' Получение номеров строк из коллекции
            Dim row1_2 As Long: row1_2 = rowColl(1)
            Dim row2_2 As Long: row2_2 = rowColl(2)
            
            ' К значению одного значения в столбце «Влияние на компонент У» прибавить 0,15,
            ' а из значения второго значения в столбце «Влияние на компонент У» вычесть 0,15
            If IsNumeric(ws.Cells(row1_2, colInfluenceY).Value) Then
                ws.Cells(row1_2, colInfluenceY).Value = _
                    ws.Cells(row1_2, colInfluenceY).Value + 0.15
            Else
                msgError = msgError & "Строка " & row1_2 & ": Невозможно изменить (не число)" & vbCrLf
            End If
            
            If IsNumeric(ws.Cells(row2_2, colInfluenceY).Value) Then
                ws.Cells(row2_2, colInfluenceY).Value = _
                    ws.Cells(row2_2, colInfluenceY).Value - 0.15
            Else
                msgError = msgError & "Строка " & row2_2 & ": Невозможно изменить (не число)" & vbCrLf
            End If
        End If
    Next key
    
    ' ==============================
    ' Обработка групп из 3 строк
    ' ==============================
    countProcessed3 = 0
    For Each key In dict.Keys
        Set rowColl = dict(key)
        If rowColl.count = 3 Then ' Только группы с 3 строками
            countProcessed3 = countProcessed3 + 1
            
            ' Получение номеров строк из коллекции
            Dim row1_3 As Long: row1_3 = rowColl(1)
            Dim row2_3 As Long: row2_3 = rowColl(2)
            Dim row3_3 As Long: row3_3 = rowColl(3)
            
            ' К значению одного значения в столбце «Влияние на компонент У» прибавить 0,33,
            ' а из значения второго значения в столбце «Влияние на компонент У» вычесть 0,33
            If IsNumeric(ws.Cells(row1_3, colInfluenceY).Value) Then
                ws.Cells(row1_3, colInfluenceY).Value = _
                    ws.Cells(row1_3, colInfluenceY).Value + 0.33
            Else
                msgError = msgError & "Строка " & row1_3 & ": Невозможно изменить (не число)" & vbCrLf
            End If
            
            If IsNumeric(ws.Cells(row2_3, colInfluenceY).Value) Then
                ws.Cells(row2_3, colInfluenceY).Value = _
                    ws.Cells(row2_3, colInfluenceY).Value - 0.33
            Else
                msgError = msgError & "Строка " & row2_3 & ": Невозможно изменить (не число)" & vbCrLf
            End If
        End If
    Next key
    
    ' ==============================
    ' Обработка групп из 4 строк
    ' ==============================
    countProcessed4 = 0
    For Each key In dict.Keys
        Set rowColl = dict(key)
        If rowColl.count = 4 Then ' Только группы с 4 строками
            countProcessed4 = countProcessed4 + 1
            
            ' Получение номеров строк из коллекции
            Dim row1_4 As Long: row1_4 = rowColl(1)
            Dim row2_4 As Long: row2_4 = rowColl(2)
            Dim row3_4 As Long: row3_4 = rowColl(3)
            Dim row4_4 As Long: row4_4 = rowColl(4)
            
            ' К значению одного значения в столбце «Влияние на компонент У» прибавить 0,13,
            ' а из значения второго значения в столбце «Влияние на компонент У» вычесть 0,13,
            ' из значения третьего значения – вычесть 0,38,
            ' к четвертому значению прибавить 0,38
            If IsNumeric(ws.Cells(row1_4, colInfluenceY).Value) Then
                ws.Cells(row1_4, colInfluenceY).Value = _
                    ws.Cells(row1_4, colInfluenceY).Value + 0.13
            Else
                msgError = msgError & "Строка " & row1_4 & ": Невозможно изменить (не число)" & vbCrLf
            End If
            
            If IsNumeric(ws.Cells(row2_4, colInfluenceY).Value) Then
                ws.Cells(row2_4, colInfluenceY).Value = _
                    ws.Cells(row2_4, colInfluenceY).Value - 0.13
            Else
                msgError = msgError & "Строка " & row2_4 & ": Невозможно изменить (не число)" & vbCrLf
            End If
            
            If IsNumeric(ws.Cells(row3_4, colInfluenceY).Value) Then
                ws.Cells(row3_4, colInfluenceY).Value = _
                    ws.Cells(row3_4, colInfluenceY).Value - 0.38
            Else
                msgError = msgError & "Строка " & row3_4 & ": Невозможно изменить (не число)" & vbCrLf
            End If
            
            If IsNumeric(ws.Cells(row4_4, colInfluenceY).Value) Then
                ws.Cells(row4_4, colInfluenceY).Value = _
                    ws.Cells(row4_4, colInfluenceY).Value + 0.38
            Else
                msgError = msgError & "Строка " & row4_4 & ": Невозможно изменить (не число)" & vbCrLf
            End If
        End If
    Next key
    
    ' ==============================
    ' Вывод результата
    ' ==============================
    Dim msgResult As String
    msgResult = "Обработка завершена:" & vbCrLf & _
                "- Групп из 2 строк: " & countProcessed2 & vbCrLf & _
                "- Групп из 3 строк: " & countProcessed3 & vbCrLf & _
                "- Групп из 4 строк: " & countProcessed4 & vbCrLf & vbCrLf
    
    If msgError <> "" Then
        msgResult = msgResult & "Предупреждения:" & vbCrLf & msgError
    Else
        msgResult = msgResult & "Нет ошибок."
    End If
    
    If countProcessed2 = 0 And countProcessed3 = 0 And countProcessed4 = 0 Then
        MsgBox "Не найдено групп из 2, 3 или 4 строк с одинаковыми значениями в столбцах «Интерес к компоненту Х» и «Влияние на компонент У»", vbExclamation
    Else
        MsgBox msgResult, vbInformation, "Результат обработки"
    End If
    
    ' Очистка памяти
    Set dict = Nothing
    Set ws = Nothing
End Sub