Remplacer des "0" par "" sous condition

Bonjour,

J'ai une matrice :

capture d ecran 2026 08 27 105056

et je voudrai obtenir :

capture d ecran 2026 08 27 105143

soit une chaine vide quand il n'y a plus que des "0".

Comment faire ?

Merci d'avance.

Bonjour,

Sur XL 365 avec votre matrice 1D en A1:I1 vous pouvez utiliser par exemple :

=LET(
    _src;A1:J1;
    _join; "|" & JOINDRE.TEXTE("|";VRAI;_src);
    _res;SIERREUR(REGEX.EXTRAIRE(_join;"^(.*?\|10\|)");_join);
    FRACTIONNER.TEXTE(_res;"|";; VRAI)
)

Ou bien une alternative un peu plus "idiomatique" pour bien remplir de "" les cellules suivantes :=EXCLURE(
REDUCE("";A1:I1; LAMBDA(a;v;
LET(
_isReached; OU(SIERREUR(PRENDRE(a;-1;-1); FAUX); v=10);
ASSEMB.H(a; ASSEMB.V(SI(_isReached;"";v); _isReached))
)
));
-1;1
)

Ne fonctionne pas si 10 est la première cellule

Bonjour à tous !

Une double approche (selon la compréhension du besoin...) :

Merci à tous deux, vos formules fonctionnent bien.

Daniel

Bonjour

en utilisant RECHERCHEX en version référentielle (sur la base du fichier de JFL)
on part de la première cellule C3 et la fin de la plage souhaitée est la première valeur <>0 en partant de la fin (le -1 du RECHERCHEX)

=C3:RECHERCHEX(VRAI;C3:L3<>0;C3:L3;C3;0;-1)

ou avec PRENDRE et EQUIVX (également en partant de la fin avec -1)
=PRENDRE(C3:L3;;EQUIVX(VRAI;C3:L3<>0;0;-1))

image

Stéphane

Re, merci pour votre retour,

Il me semble que ceci marche bien aussi :

=SCAN(0;A1:I1;LAMBDA(a;v;SI(OU(a="";a=10);"";v)))

Mais je crois que je résoud un problème différent... Moi j'ai compris de récupérer tout ce qui est "à gauche" du 10.

Je n'ai pas été suffisamment explicite. Il faut supprimer les "0" à droite (comme pour un nombre, mais dans l'autre sens). @raccourcix merci pour tes solutions qui fonctionnent bien.

Daniel

Rechercher des sujets similaires à "remplacer condition"