Formula question

I had a CONCATENATE formula in the initial value field that was working great to bring the contact name and their company together in a non-readable format. However, I realized that when a contact changes a company, this wasn’t being updated. I thought it was because the formula was an “initial” value and I moved it over to the Formula field. However, this doesn’t work either. What am I doing wrong? This is the formula I have been using:

CONCATENATE([First Name]," “,[Last Name],” | ",[Company])

Perhaps make the column a virtual column?