"If" ohne zweites Argument

Ich hab mich heute furchtbar in "If"-Clauses verheddern.

Ich kenne es von anderen Programmiersprachen so, dass if eine Bedingung prüft, ob die wahr ist - wenn nicht, KANN man quasi einen "else" wert angeben. Muss aber nicht.
Ich habe begriffen, dass if(x,y,z) offenbar anders funktoniert und IMMER ein "z" erwartet, oder geht es auch anders.

Konkret:
Ich habe mir - Dank Eurer Hilfe - nun endlich eine Formel geschrieben, die abhängig von der Laufzeit eines Albums und der Anzahl der Tracks eine Grobsortierung macht, ob es sich um eine Single, eine EP oder ein Album handelt. Das funktioniert auch super.

Tagfeld formatieren %releasetype%:
$if($grtr($add($mul($num($left(%totaltime%,2),1),60),$num($left($cutLeft(%totaltime%,3),2),1)),29),Album,$if($less(%totaltracks%,4),Single,$if($less(%totaltracks%,7),EP,Album)))

Nun will ich aber "Album" noch weiter aufbohren und anhand von "Signalwörtern" im Albumtitel aus Album ggf,. "Live", "Remix", "Bonus", "Collection" etc. machen.

Dazu habe ich ein zusätzliches Tagfeld formatieren definiert und das extra prüft, ob %releasetype% aus dem vorherigen Schritt auf "Album" steht (da ich EP und Single nicht weiter aufbohren will).

Das sieht dann so aus... (Beispiel)
$if($and($eql(%releasetype%,Album),$grtr($strstr(%album%,Concert),0)),Live,Album)

Das funktioniert zwar auch - was ich übersehen habe ist, dass er zwar "Live" nur setzt, wenn beide Bedingungen erfüllt sind und ansonsten wieder auf Album zurückspringt - auch, wenn es sich um eine Single oder EP handelt, so dass damit die erste Formatierung in jedem Fall überschrieben wird.

Und klar, ich könnte nach jeder Abfrage das 1. nochmal nachschießen, nach dem Motto:

$if($and($eql(%releasetype%,Album),$grtr($strstr(%album%,Concert),0)),Live,$if($grtr($add($mul($num($left(%totaltime%,2),1),60),$num($left($cutLeft(%totaltime%,3),2),1)),29),Album,$if($less(%totaltracks%,4),Single,$if($less(%totaltracks%,7),EP,Album))))

... das endet aber spätestens dann, wenn ich in der nächsten "Abfrage" schaue, ob "Konzert" im Albumtitel vorkommt, also so was wie

$if($and($eql(%releasetype%,Album),$grtr($strstr(%album%,Konzert),0)),Live,$if($grtr($add($mul($num($left(%totaltime%,2),1),60),$num($left($cutLeft(%totaltime%,3),2),1)),29),Album,$if($less(%totaltracks%,4),Single,$if($less(%totaltracks%,7),EP,Album))))

würde dann auch immer die erste Abfrage (Concert) wieder überschreiben...

Was ich also "brauche", ist so was wie
$if($and($eql(%releasetype%,Album),$grtr($strstr(%album%,Concert),0)),Live)

Also auf gut deustch, wenn "Concert" in %album% titel ist, setzte %realesetype% auf Live, wenn nicht = "Do nothing" (und lass %realesetype% so wie er ist...)

Hab ich hier irgendeine Chance?!

Das wird Dir zwar nicht gefallen, aber ich bin halt ein Pragmatiker. :wink:

Ich filtere nach %album% HAS Concert, schaue nochmals über die Ergebnisse drüber und fülle mein Tagfeld LIVE mit einer 1.

Ja, genau so mache ich das auch (bzw. so habe ich meinen Bestand "bereinigt").

Bei neuen Alben gucke ich bisher auch "zu Fuß" drüber und mache dann aus dem Album ein "Live" oder "Bonus". Aber ... ich merke auch, dass ich das (zu) oft vergesse und einfach die Vorschläge (in dem Fall "Album") durchbestätige. Daher hätte ich gerne, dass er mir direkt "Live" etc... vorschlägt :wink:
Ist zugegeben nicht lebenswichtig, aber so schön, wenn man es doch irgendwie geschafft hat... :wink:

Ich bin nicht sicher ob ich Deine Anforderung richtig verstehe, aber obige Bedingung ist hiermit zu erreichen:
$if($grtr($strstr(%album%,Concert),0),Live,nichts)
angewendet auf Dein Feld RELEASETYPE.

Das Wort "nichts" müsstest Du durch rein gar nichts ersetzen, also nur das letzte Komma stehen lassen.

Die Formel prüft, ob im Feld %album% das Wort Concert vorkommt (mithilfe von $strstr und der Position eines Treffers). Ist die Bedingung "Trefferposition grösser als 0" = True, wird Live zurückgegeben, sonst nichts.

Leider nein (vielleicht haben wir uns da missverstanden), bei der Lösung leert er das Feld RELEASETYPE.

Wenn es also aus der vorherigen Aktion (da TOTALTRACKS=1) mit "Single" gefüllt wurde,
und ich
$if($grtr($strstr(%album%,Concert),0),Live,nichts)
anwende (und diese NOT TRUE ist), macht mp3tag trotzdem etwas, "es" leert das Feld RELEASETYPE, statt es auf "Single" stehen zu lassen.
Was ich also bräuchte, ist so etwas wie

$if($grtr($strstr(%album%,Concert),0),Live,< beibehalten >)...

... und im Schreiben dämmert mir, ob so was wie

$if($grtr($strstr(%album%,Concert),0),Live,%releasetype%) funktionert...

Ich probier es mal gerade aus...

UPDATE:
Scheint zu funktionieren - Danke für Deinen Ansatz, @LyricsLover , er hat mich zur Lösung geführt.