Вы не пытались решить эту проблему самостоятельно, что обычно является требованием этого форума, но я нашел проблему сложной, поэтому:
Поскольку вы включили тег VBA
Вот пользовательская функция, использующая регулярные выражения, которая может делать то, что вы хотите.
Формула представляет собой формулу массива. Если у вас установлена последняя версия Excel с динамическими массивами c, вы можете ввести формулу в E2
, и результаты будут отображаться справа.
Если у вас нет этой функции, вы можно отобразить результаты формулы отдельно, заключив в INDEX
, или вы можете ввести ее в виде массива E2:J2
Пожалуйста, прочтите примечание в начале UDF относительно раннего или позднего связывания.
'Установить ссылку на регулярные выражения Microsoft VBScript 5.5' или использовать позднюю привязку
Option Explicit
Function inputCompVars(ByVal S As String) As String()
Dim RE As RegExp, MC As MatchCollection, M As Match
Const sPat As String = "\(([^=]+)=([^,]+)"
Dim sTemp() As String, I As Long
Set RE = New RegExp
With RE
.Global = True
.Pattern = sPat
If .test(S) = True Then
Set MC = .Execute(S)
ReDim sTemp(0 To MC.Count)
sTemp(0) = MC(0).SubMatches(0)
I = 0
For Each M In MC
I = I + 1
sTemp(I) = M.SubMatches(1)
Next M
End If
inputCompVars = sTemp
End With
End Function
Это используется с чем-то вроде:
E2: =inputCompVars(FORMULATEXT($A2))
или, если вы не используете не имеют динамических c массивов:
E2: =IFERROR(INDEX(inputCompVars(FORMULATEXT($A2)),1,COLUMNS($A:A)),"")
и заполняются правильно при необходимости.
Если вам нужна формула Решение и Excel 2013+, вы можете попробовать:
E2: =FILTERXML("<t><s>" &SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(FORMULATEXT($A2),"=",","),"(",","),",","</s><s>")&"</s></t>","//s[contains(.,'Payload_Decode')][1]")
F2: =IFERROR(FILTERXML("<t><s>" &SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(FORMULATEXT($A2),"=",","),"(",","),",","</s><s>")&"</s></t>","//s[contains(.,'Payload_Decode')][" & COLUMNS($A:A)*2&"]"),"")
и выбрать F2
и заполнить вправо.
Если у вас есть более ранние версии, вам необходимо сообщить нам какая версия.