Это невозможно с формулой, но с vba.
Sub test()
Dim rng As Range
Dim s As String
Dim s1 As String, s2 As String, s3 As String
Dim k1 As Integer, k2 As Integer, k3 As Integer
Set rng = ActiveCell
s1 = Range("AH343")
s2 = Range("AI343")
s3 = Range("Aj343")
s = "Charging Staff: " & s1 & " " & " Charging Staff: " & s2 & " " & " CAP_ID: " & s3
k1 = InStr(s, s1)
k2 = InStr(s, s2)
k3 = InStr(s, s3)
rng = s
With rng
.Font.Bold = False
.Characters(k1, Len(s1)).Font.Bold = True
.Characters(k2, Len(s2)).Font.Bold = True
.Characters(k3, Len(s3)).Font.Bold = True
End With
End Sub
Это тот же код, использующий оператор for.
Sub test2()
Dim rng As Range
Dim s As String
Dim vS As Variant, vK()
Dim i As Integer
Set rng = ActiveCell
vS = Range("Ah343").Resize(1, 3)
s = "Charging Staff: " & vS(1, 1) & " " & " Charging Staff: " & vS(1, 2) & " " & " CAP_ID: " & vS(1, 3)
For i = 1 To UBound(vS, 2)
ReDim Preserve vK(1 To i)
vK(i) = InStr(s, vS(1, i))
Next i
rng = s
With rng
.Font.Bold = False
For i = 1 To 3
.Characters(vK(i), Len(vS(1, i))).Font.Bold = True
Next i
End With
End Sub