This functionality is so close to being there.
The only thing stopping you from doing it is that a calculated field seems to always be considered to have content, even before it is first evaluated.
For example, I created a calculated field, [Calculating Value X], with Standard editing, and the expression;
If(IsEqual([Calculating Value X],,),[Artist]+[Album], NotEmpty)
It seems that on the first pass processing this, MC might set the field to [Artist]+[Album]. But the result is always NotEmpty, so I assume that either MC considers a calculated field to always have content, or MC evaluates the expression a second time, finds the field has content, and sets it to NotEmpty.
I tried a second expression that used IfElse() instead of If(), because the If function always puts out a value for either true or false. We want a value output if a condition is met, and nothing to be done if it is not.
IfElse(IsEqual([Calculating Value X],,),[Artist]+[Album])
This always evaluates as empty, which leads me to conclude that MC does consider a calculated field to always contain some value, even on first evaluation.
I tried the expression;
FirstNotEmpty([Calculating Value X], [Artist]+[Album])
But just got the output "Expression Error (Circular Reference)", which while true, is a little strange because MC normally evaluates an expression from the inside out, and allows its current value to be used in an expression. I tried a few more variations of this expression but didn't get a working version.
.
.
.
I then I cracked it... almost.
IfElse(IsEmpty([Calculating Value X], 1),[Artist]+[Album])
Gives an evaluated output of "[Artist]+[Album]...". In my example, "Mariah Carey+Music Box...".
It adds the three dots at the end. Now I forget what the three dots mean in an output. Something like an incomplete expression? Hendrik has explained this before. But that is so close to a solution.
Strangely, an Expression Column of;
removeright([Calculating Value X], 2)
Removes the three dots. That's right, removing two characters of the results above, removes three dots. Strange.
If the above worked, to re-evaluate the expression, you just delete the value in the calculated field. If the field already has a value in it, the complex calculation shouldn't be evaluated again. Of course, you would have to test that with your real-world example. Mark_h.
So I guess someone just needs to solve the issue of the three trailing dots, if it can be solved.