I found the solution using a Power Automate flow. The image below does the following…
1 – The flow triggers whenever a list item is created or modified.
2 – Initialise variable #1 and copy the value from the lookup field.
3 – Initialise variable #2 and copy the value from the field which will hold the copy of the lookup value (which will be a hidden column and is only used for concatenation purposes)
4 – Test if variable #1 is different from variable #2. This is to prevent the flow from going into an infinite loop i.e. without it the flow would always modify the list item, and therefore trigger itself again. So if it’s the same, do nothing.
5 – If variables #1 and #2 are different, update the list item and copy the value from variable #1 into the field which will store the variable #1 value.
After that my calculated field uses the contents of that hidden column which I copied the lookup value into.
Hope this helps someone.