You're welcome. I'm glad it worked for you.
I went ahead and wrote a script for use with "Format from other fields" that takes the scenarios into account I mentioned in my last post. Another difference is that it takes tags having more than 3 values into account and leaves them unchanged. I wasn't going to post it unless you couldn't use that last script I gave, but I'll post it anyway. I could probably tidy it up a bit using variable operations but meh.
$ifequal($meta_num(publisher),3,$if($and($not($strcmp($meta(publisher,0),$meta(publisher,1))),$not($strcmp($meta(publisher,0),$meta(publisher,2))),$not($strcmp($meta(publisher,1),$meta(publisher,2)))),$meta_sep(publisher,'; '),$if($not($strcmp($meta(publisher,0),$meta(publisher,1))),$meta(publisher,0); $meta(publisher,1),$if($not($strcmp($meta(publisher,0),$meta(publisher,2))),$meta(publisher,0); $meta(publisher,2),$meta(publisher,0)))),$ifequal($meta_num(publisher),2,$if($not($strcmp($meta(publisher,0),$meta(publisher,1))),$meta(publisher,0); $meta(publisher,1),$meta(publisher,0)),[$meta_sep(publisher,'; ')]))