Thanks for the additional information. It didn't address question 2 though. As has been noted a couple of times, you cannot achieve formatting of individual parts of a formula result while it is still a formula.
I also mentioned earlier that "the easiest way to bold the allergens would be if there is, or could be made, a list of such allergens." That is, not trying to copy the formatting from column L of 'Ingredients' but simply finding any allergen names in the resulting text in E35 (merged I note) and formatting them there.
So this suggestion below
replaces the formula in E35 with the formula result**, then looks through it for any words that match column P of 'Ingredients' and bolds them. See if this might suffice or at least be heading in a direction that might be some use to you. Please test in a
copy of your workbook.
VBA Code:
Sub BoldAllergens()
Dim RX As Object, M As Object
Set RX = CreateObject("VBScript.RegExp")
RX.Global = True
RX.IgnoreCase = True
With Sheets("Ingredients")
RX.Pattern = "\b(" & Application.TextJoin("|", 1, .Range("P3", .Range("P" & Rows.Count).End(xlUp)).Value) & ")\b"
End With
With Sheets("APP").Range("E35")
.Value = .Value
For Each M In RX.Execute(.Value)
.Characters(M.firstindex + 1, Len(M)).Font.Bold = True
Next M
End With
End Sub
**
One option might be to leave the formula in E35 and have my code copy that formula result to a similar merged cell elsewhere on the sheet, format it there & use that for your label.
That could be set up to repeat the process any time the formula result in E35 changes.