An "OR" "AND" "IF" "THEN" function script wish

I would like to have the following function and I have no idea if it's possible. Believe me, I have searched the forum for hints, but I'm not good at this and haven't found anything that resembles what I want.

I want to populate the tag %ARTIST%

IF the tag %FEATURING% has a value
THEN I want this value copied to %ARTIST% in this format
%ARTIST% = "Featuring: %FEATURING%"

OR
IF the tag %FEATURING% does not exist but the tag %VOCALS% exists
THEN I want this value copied to %ARTIST% in this format
%ARTIST% = "Vocals by: %VOCALS%"

OR
IF both the tags %FEATURING% AND %VOCALS% exists
THEN I want both values copied to %ARTIST% in this format
%ARTIST% = "Featuring:%FEATURING% with Vocals by: %VOCALS%"

OR
IF none of the tags %FEATURING% or %VOCALS% exist
THEN I want %BAND% values copied to %ARTIST% in this format
%ARTIST% = %BAND%

I hope that this explanation is clear. I'll be very grateful to anyone who can help me with this.

//Windjammer

I came up with
Action type: Format value
Field: ARTIST
Format string: $if($and(%FEATURING%,%VOCALS%),Featuring:%FEATURING% with Vocals by: %VOCALS%,$if(%FEATURING%,Featuring: %FEATURING%,$if(%VOCALS%,Vocals by: %VOCALS%,%BAND%)))

Hahaha! You are brilliant dano! A cosmetic space was missing in the "with" part, after the colon so here is the "perfect" code:

Format string: $if($and(%FEATURING%,%VOCALS%),Featuring: %FEATURING% with Vocals by: %VOCALS%,$if(%FEATURING%,Featuring: %FEATURING%,$if(%VOCALS%,Vocals by: %VOCALS%,%BAND%)))

THANK YOU!

What if I have a lot more tags (more than 20) that, if they have a value, I want an new tag populated by this value semi-colon separated if more than 1? Do I have to write the $if($and( part covering all alternatives of is there a simpler way?

//Windjammer

You could use [ ;%VOCALS%] which returns
;%VOCALS%
if %VOCALS% has a value.