Simplifier un tableau

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Victor21

XLDnaute Barbatruc
Supporter XLD
Bonjour le forum.

Est-il possible, à partir d'un tableau contenant des cellules fusionnées en vertical (C'est ainsi que je le reçois !!) de compiler les lignes correspondant à ces cellules fusionnées ?

Je m'explique :
Au départ
Dans les cellules fusionnées B3:B4, un libellé sur 3 caractères.
Dans les cellules non fusionnées C3:C4, un libellé sur 4 caractères
Dans les cellules D3:J4, des "X", ou rien
A l'arrivée :
Dans la En L3, les 3 premiers caractères de C3, s'ils existent, sinon le libellé en B3 (Ca, je sais faire)
Dans les cellules M3:S3, les "X de D3:J4

Et ainsi de suite dans tout le tableau (non trié)

D'avance, merci à qui pourra m'aiguiller (Excel 2003 - Win XP)
 

Pièces jointes

Re : Simplifier un tableau

Rebonjour à tous.

Voilà où j'en suis (utilisation de formules).
Restent quelques erreurs sur lesquelles je me casse encore les dents, mais je suis têtu...
🙂
Une solution en VBA ne serait pas pour me déplaire, mais là, je suis sec.

A bientôt de lire vos suggestions,

Bien cordialement,

Patrick
 

Pièces jointes

Re : Simplifier un tableau

Bonjour,

Un essai à base de SOMMEPROD, mais qui devrait pouvoir être simplifié :

en M3 :

Code:
=SI($B3="";"";SI(SOMMEPROD((GAUCHE($C$3:$C$23;3)=
SI($C3="";$B3;GAUCHE($C3;3)))*(D$3:D$23="X"))>0;1;""))

Formule à recopier vers la droite et vers le bas

Essaye et dis nous

@+
 
Re : Simplifier un tableau

Bonjour, Tibo.

Merci pour ton aide.

Ta formule fonctionne sur les lignes où des cellules sont fusionnées.
Hélas pas sur les lignes où il n'y a pas de fusion (ex :8,9,10,18).

Mais c'est un départ que je vais approfondir.

Bien cordialement,

Patrick
 
Re : Simplifier un tableau

re,

Un autre essai :

toujours en M3 :

Code:
=SI($B3="";"";SI($C3="";(D3="x")*1;(SOMMEPROD((GAUCHE($C$3:$C$23;3)=$B3)*
(D$3:D$23="X")*1)>0)*1))

à recopier vers le bas et vers la droite

Mettre un format personnalisé pour éviter l'affichage des zéros

Je te laisse tester à nouveau

@+
 
Re : Simplifier un tableau

Re, Tybo

On (tu) avance à pas de géant.
Le problème est pratiquement résolu.
😎

Reste le cas particulier de la ligne 21.

Que de difficultés pour utiliser un tableau créé par quelqu'un qui privilégie la présentation au détriment de l'agencement des données...
🙄

Dans tous les cas, merci pour ton aide qui m'a été d'un grand secours.

Bien cordialement,
Patrick.
 
Re : Simplifier un tableau

rere,

De retour avec un changement de stratégie.

On passe cette fois avec des formules matricielles dont le but est de déterminer le numéro de la ligne suivante en colonne B.

En M3 :

Code:
=SI($B3="";"";(NB.SI(DECALER(D3;;;SI(NBVAL($B4:$B10)=0;6;
MIN(SI(($B4:$B$23<>"")*LIGNE($B4:$B$23)>0;($B4:$B$23<>"")*
LIGNE($B4:$B$23)))-LIGNE()));"x")>0)*1)

à valider matriciellement, c'est-à-dire en appuyant sur CTRL + MAJ + ENTREE

Des accolades apparaissent alors de chaque côté de la formule dans la barre de formule.

Je joins le fichier avec la formule

Je te laisse à nouveau tester

@+
 

Pièces jointes

Re : Simplifier un tableau

Rerere, Tybo

D'abord, merci pour ta patience.

Tes propositions précédentes convenaient, ainsi que la matricielle, sauf pour le cas de la ligne 21.
En effet =SI($B3="";""... ne peut convenir, car en ligne 21, je dois récupérer les 4 positions de X correspondant à C21, bien que B21 soit vide.

La solution n'est-elle pas de récupérer, d'abord, en colonne L, le bon libellé sur 3 caractères, et ensuite seulement de s'occuper des "X" ?

C'est ce que je tente avec en L3
=SI(B3="";"";SI(NBVAL(M3:S3)=0;"";SI(C3="";B3;GAUCHE(C3;3))))
mais le cas de la ligne 21 me pose encore problème.

A suivre...

Bien cordialement,
Patrick.
 
Re : Simplifier un tableau

re,

Dans mon esprit et sur la base de ce que j'ai compris, la matricielle règle le problème de la ligne 21.

S'il s'agit de regrouper sur la ligne NEY les X liés à NEY1, NEY2 et PCO, ça fonctionne.

Ainsi, si je mets un X en J21, il est bien pris en compte sur la ligne NEY en S19.

A moins que quelque chose ne m'ait échappé ou que je n'aurais pas bien compris, ce qui est également possible ...

A te (re)lire avec plus de précisions et notamment ce que tu attends comme résultat (un exemple).

@+
 
Re : Simplifier un tableau

Tibo.

Je m'aperçois que je n'ai pas été suffisamment précis dans ma demande, et m'en excuse.

La valeur du libellé à prendre en compte est,
- en cas de cellules fusionnées, les 3 premiers caractères de la colonne C
- en cas de cellules non fusionnées : la colonne B.

Je te joins un fichier avec en rouge les valeurs attendues.

Bien cordialement,

Patrick
 

Pièces jointes

Re : Simplifier un tableau

re,

Plus besoin de matricielle cette fois.

en L3 :

Code:
=SI(B3="";SI(GAUCHE(C3;3)<>GAUCHE(C2;3);GAUCHE(C3;3);"");B3)

à recopier vers le bas

en M3 :

Code:
=SI([COLOR=red]$[/COLOR]L3="";"";SI($C3="";(D3="X")*1;(SOMMEPROD((GAUCHE($C$3:$C$23;3)=$L3)*
(D$3:D$23="X")*1))>0)*1)

à recopier vers la droite et vers le bas

@+
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
250
Affichages
17 K
Retour