Concaténer en colonne en ignorant une valeur (ici 0)

Signaler
-
Messages postés
3115
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2021
-
La question à la con... désolée

J'ai excel 365

Sur la colonne A, partant de A1, j'ai

2
0
3
0
12
5
0
4

Sur la colonne B, partant de B1, j'ai

6
8
0
0
4
9
1
0

Je veux que sur la colonne C, partant de C1, s'affichent les cellules <> 0 des deux précédentes colonnes SVP.

2
3
12
5
4
6
8
4
9
1

Quelles est la formule (que je pense avoir trouvée...) et, surtout, surtout, par pitié, sa syntaxe (pas de VBA svp !)

Si 0 est gênant, la même formule en ignorant les cellules vides ira très bien (je dégage le 0).

Merci beaucoup

8 réponses

Messages postés
53362
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
2 mars 2021
15 403
Bonjour.

Est-ce que tes 2 listes sont toujours composées de 8 cellules ?
Est-ce que tes 2 listes ont toujours le même nombre de cellules ?
Bonjour Raymond,

Est-ce que tes 2 listes sont toujours composées de 8 cellules ?
Est-ce que tes 2 listes ont toujours le même nombre de cellules ?

Non, et Non, c'est pour donner un exemple.

Le nombre cellule varie d'une liste à l'autre (mais au sein des listes, le nombre de cellules est fixe).

Parfois, les nombres peuvent être remplacés par du texte.

Ce que je souhaite est d'éliminer les cellules vides (sans texte ou sans nombre) lors d'une simple concaténation qui se fait en colonne (en ligne, pas de pb). C'est tout, si j'ose dire :-)
Messages postés
3115
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2021
864
Bonjour PetitMartin,

Je ne sais pas si tu l'as remarqué mais j'ai souligné le mot supprimé les cellules contenant un 0.
Si tu tiens à conserver tes deux colonnes telles quelles il faudra le faire dans des colonnes hors du tableau et faire référence à ces deux nouvelles colonnes pour alimenter ta colonne C.

Je cherche toujours le moyen d'éviter ce calcul intermédiaire.
J'espère que d'autres membres vont s'immiscer comme Raymond, que je salue, l'a fait. Il a certainement une idée ; tu devrais répondre à sa question

Cordialement
Euh...

J'ai reçu un mail m'indiquant que a part de PapyLuc51 m'a répondu, mais rien n'apparait...

Désolé
Messages postés
3115
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2021
864
Bonjour

Excuse moi je l'ai annulée car ça ne correspondait pas à la demande, j'étais parti sur une concaténation des deux colonnes en excluant les 0 et non pas sur une suite : colonne A sans les 0 suivie de colonne B sans les 0.

Ce que j'avais mis aurai inscrit en C1 26 le 2 de A1 et le 6 de B1 or ce n'est pas ce que tu attends.

Désolé de m'être précipité.

Cordialement
Bonjour PapyLuc,

Je suis aussi preneur de cette formule, si tu veux bien !

Merci ;-)
Messages postés
3115
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2021
864
OK

donc pour les deux nombres côte à côte

=SI(A1>0;A1;"")&SI(B1>0;B1;"")


Cette formule donne du texte en résultat

Si tu veux un signe de séparation (exemple tiret du 6) lorsqu'il y a deux nombres à concaténer

=STXT(SI(ET(A1=0;B1=0);"";SI(ET(A1>0;B1>0);A1&"-"&B1;SI(ET(A1>0;B1=0);A1;B1)));1;99)


j'ai ajouter STXT pour transformer en texte lorsqu'il n'y a qu'un seul nombre sur les deux colonnes

En fouillant la toile, j'ai trouvé une formule mais elle recopie toutes les cellules contenant une valeur y compris le 0, il faudrait donc supprimer en amont les cellules contenant 0

=SI(A1="";DECALER(B1;-NBVAL(A:A);0);A1)


Je n'ai pas encore trouvé le moyen de lire uniquement les cellules >0. Il faudra peut-être passer par du VBA

Ce fichier avec les 3 exemples
https://www.cjoint.com/c/KBvm2FbauXr

Cordialement
Génial, merci !
Ben en fait, je viens de tester, j'ai toujours les O. Même en les supprimant, je me retrouve avec des cellules vides...
Messages postés
53362
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
2 mars 2021
15 403
Salut.
Le nombre cellule varie d'une liste à l'autre. Parfois, les nombres peuvent être remplacés par du texte. Ce que je souhaite est d'éliminer les cellules vides (sans texte ou sans nombre) lors d'une simple concaténation qui se fait en colonne (en ligne, pas de pb). C'est tout, si j'ose dire

Déjà, si tu nous disais comment tu fais en ligne, et si en plus tu nous indiquais cette formule que tu "penses avoir trouvée", cela serait une bonne piste pour nos réflexions.
Parce que d'une part il ne s'agit pas du tout de concaténation, et qu'ensuite la solution n'est pas si simple que tu as l'air de le croire !
Et tu as bien raison de préciser "si j'ose dire", car ou bien il faut du VBA pour écrire une macro, ce que tu refuses d'emblée, ou bien il faut effectuer diverses manipulations (copier, coller, filtrer, trier ...) comme évoqué au post #9 par PapyLuc51 !
Messages postés
3115
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
4 mars 2021
864
Bonjour,

En revenant sur les manipulations intermédiaires, je me suis inspiré du travail de notre ami
Jacques Boisgontier en allant à :

Données Validation / liste conditionnelle en fonction d'une colonne

Travail en 4 étapes

https://www.cjoint.com/c/KBxjFoOUSNQ

Après c'est du VBA

Cordialement