Je suis content que la formule vous ait fonctionnée bien. Alors, laissez-moi expliquer un peu:
Ici, le * s'agit simplement de la multiplication. Quand une valeur booléenne est utilisée dans une formule mathématique, elle est convertie en valeur numérique (1 par vraie et 0 par fausse).
Donc, si la formule est evaluée quand condition est vraie, le résultat est:
concat(substring(valeur1, 1, 100 * (1)), substring(valeur2, 1, 100 * (0)))
donc
concat(substring(valeur1, 1, 100), substring(valeur2, 1, 0))
La valeur de substring(valeur1, 1, 100) serait les premiers 100 charactéres de valeur1, et la valeur de substring(valeur2, 1, 0) est un string vide, donc le résultat final c'est simplement les premiers 100 charactéres de valeur1.
Vous pourriez vérifier que le procès est similaire quand condition est fausse.