Вариант решения: Выпадающие списки + пользовательская функция
S2=GetValue(C2;D2;E2;F2;G2;H2;I2;M2;N2)
===================================
' пользовательская функция анализа условий покупки
Public Function GetValue(C As String, D As Variant, E As String, _
F As Variant, G As Variant, H As String, I As String, M As Variant, N As Variant) As Variant
With ActiveSheet
If C Like "Покупка" And E Like "Рынок" And H Like "Безнал" And I Like "Безнал" Then
GetValue = ((G * D) - (F * D)) - ((G * D) * N - (F * D) * N)
ElseIf C Like "Покупка" And E Like "Рынок" And H Like "Безнал" And I Like "Наличные" Then
GetValue = ((G * D) - (F * D)) - ((G * D) * M - (F * D) * N)
ElseIf C Like "Покупка" And E Like "Рынок" And H Like "Наличные" And I Like "Безнал" Then
GetValue = ((G * D) - (F * D)) - ((G * D) * N - (F * D) * M)
ElseIf C Like "Покупка" And E Like "Рынок" And H Like "Наличные" And I Like "Наличные" Then
GetValue = ((G * D) - (F * D)) - ((G * D) * M - (F * D) * M)
Else
GetValue = 0
End If
End With
End Function
Подробнее в:
https://disk.yandex.ru/i/LHxPwf-lRqQLyg