concatener + variables

androu

XLDnaute Nouveau
Bonjour,



j'essaye de creer une formule qui me permette de concatener des informations (chiffre + texte) de differentes cellules en fonction de 2 variables
tableau ci dessous +joint:

dans la cellule resultat je voudrais voir apparaitre pour chaque ligne les informations de la colonne "quantite dispo" correspondant au couple "model" + "mois ddé"

ex:
pour GDP5110 de la premier ligne le resultat devra etre:
292 TBA 54 156

pour GRO0490 de la deuxieme ligne le resultat devra etre:
240

pour GDP5110 de la troisieme ligne le resultat devra etre:
174 86

ainsi de suite

evidement le resultat sera le meme pour toutes lignes qui ont le meme couple "model" + "mois ddé"

MODEL mois ddé quantite dispo Resultat
GDP5110 2 292
GRO0490 2 240
GDP5110 3 174
GRO0490 4 840
GRN0571 5 300
GDP5110 2 TBA
GRN0571 2 will be informed
GRO0490 7 600
GDP5110 2 54
GRO0290 2 220
GDP5110 3 86
GRO0490 8 240
GRO0290 2 174
GRO0490 7 240
GRN0571 2 360
GRO0490 7 TBA
GRN0571 6 324
GDP5110 2 156
GRO0490 9 will be informed



Merci de votre aide :)

Androu
 

Pièces jointes

  • concatener+ variable.zip
    10.9 KB · Affichages: 49
  • concatener+ variable.zip
    10.9 KB · Affichages: 53
  • concatener+ variable.zip
    10.9 KB · Affichages: 49

Tibo

XLDnaute Barbatruc
Re : concatener + variables

Bonjour,

Une tentative avec une formule matricielle :

en D2 :

Code:
=$C2&" "&
SI(SOMME(($A$2:$A$20&$B$2:$B$20=$A2&$B2)*1)>=[COLOR=Red][B]2[/B][/COLOR];INDEX($C$1:$C$20;PETITE.VALEUR(
SI(($A$2:$A$20&$B$2:$B$20=$A2&$B2);($A$2:$A$20&$B$2:$B$20=$A2&$B2)*
LIGNE($A$2:$A$20));[B][COLOR=Red]2[/COLOR][/B]));"")
&" "&
SI(SOMME(($A$2:$A$20&$B$2:$B$20=$A2&$B2)*1)>=[B]3[/B];INDEX($C$1:$C$20;
PETITE.VALEUR(
SI(($A$2:$A$20&$B$2:$B$20=$A2&$B2);($A$2:$A$20&$B$2:$B$20=$A2&$B2)*
LIGNE($A$2:$A$20));[COLOR=Red][B]3[/B][/COLOR]));"")
&" "&
SI(SOMME(($A$2:$A$20&$B$2:$B$20=$A2&$B2)*1)>=[B][COLOR=Red]4[/COLOR][/B];INDEX($C$1:$C$20;PETITE.VALEUR(
SI(($A$2:$A$20&$B$2:$B$20=$A2&$B2);($A$2:$A$20&$B$2:$B$20=$A2&$B2)*
LIGNE($A$2:$A$20));[COLOR=Red][B]4[/B][/COLOR]));"")
&" "&
SI(SOMME(($A$2:$A$20&$B$2:$B$20=$A2&$B2)*1)>=[COLOR=Red][B]5[/B][/COLOR];INDEX($C$1:$C$20;PETITE.VALEUR(
SI(($A$2:$A$20&$B$2:$B$20=$A2&$B2);($A$2:$A$20&$B$2:$B$20=$A2&$B2)*
LIGNE($A$2:$A$20));[B][COLOR=Red]5[/COLOR][/B]));"")
&" "&
SI(SOMME(($A$2:$A$20&$B$2:$B$20=$A2&$B2)*1)>=[COLOR=Red][B]6[/B][/COLOR];INDEX($C$1:$C$20;PETITE.VALEUR(
SI(($A$2:$A$20&$B$2:$B$20=$A2&$B2);($A$2:$A$20&$B$2:$B$20=$A2&$B2)*
LIGNE($A$2:$A$20));[B][COLOR=Red]6[/COLOR][/B]));"")
On note dans cette formule que les sous formules concaténées sont très semblables (chiffres en rouge qui changent).

En nommant ces sous-formules (il en faut au moins autant qu'il peut y avoir de concaténation possibles) :

Insertion - Nom - Définir

test_1 - Fait référence à :

Code:
=SI(SOMME((Feuil3!$A$2:$A$20&Feuil3!$B$2:$B$20=Feuil3!$A2&Feuil3!$B2)*1)>=[COLOR=Red][B]2[/B][/COLOR];
INDEX(Feuil3!$C$1:$C$20;PETITE.VALEUR(SI((Feuil3!$A$2:$A$20&Feuil3!$B$2:$B$20=
Feuil3!$A2&Feuil3!$B2);(Feuil3!$A$2:$A$20&Feuil3!$B$2:$B$20=Feuil3!$A2&
Feuil3!$B2)*LIGNE(Feuil3!$A$2:$A$20));[B][COLOR=Red]2[/COLOR][/B]));"")&" "
test_2 est défini avec la même formule, mais en remplaçant 2 par 3

pour test_3, on remplace 3 par 4

etc...

ce qui permet de remplacer la formule proposée initialement par celle-ci :

Code:
=C2&" "&test_1&test_2&test_3&test_4&test_5&test_6
Les sous-formules matricielles étant nommées, cette dernière formule ne demande qu'une simple validation.

Et on peut alors sans crainte augmenter le nombre de concaténation, alors que la première formule approchait dangereusement la taille limite des formules.

Je joins à l'appui le fichier d'androu avec les deux versions, formule complète et formule basée sur des sous-formules nommées.

Voilou

Ouf !

@+
 

Pièces jointes

  • Androu.zip
    13.8 KB · Affichages: 56

JNP

XLDnaute Barbatruc
Re : concatener + variables

Bonsoir le fil :),
Je savais ben qu'en t'aiguillant dessus, tu trouverais une formule adéquate, Tibo ;).
J'avais essayer de concaténer en matricielle, au lieu de concaténer les matricielles, subtile différence, mais qui fait tout :D
Je vais essayer de la comprendre demain matin, mais en attendant, chapeau, comme d'habitude :p.
Bonne nuit :cool:
 

androu

XLDnaute Nouveau
Re : concatener + variables

bonjour a tous & merci pour votre aide :D

juste pour info la formule de Tibo est presque 100% correcte, en faite si vous regardez les resultats pour toutes lignes qui ont le meme couple "model" + "mois ddé" c'est pas exactement les memes. Il manque dans les lignes inferieures toujours le resultat de la premiere ligne. Je suppose que c'est un petit parametre a modifier ... :) malheureusement un petit peu au dessus de mon niveau pour vous dire quoi ;)

merci encore a vous

a+

androu
 

Tibo

XLDnaute Barbatruc
Re : concatener + variables

Bonjour Androu,

Il y avait effectivement un décalage qui faisait que la première référence n'était plus prise en compte ensuite.

Je te joins une version corrigée.

J'en ai profité pour nommer les colonnes avec la fonction DECALER

Je te laisse découvrir et tester

@+
 

Pièces jointes

  • Androu_v2.zip
    13.6 KB · Affichages: 57

androu

XLDnaute Nouveau
Re : concatener + variables

Bonjour Tibo & Masterdisco,


Ca marche tres bien :D


est il possible pour les valeurs numeriques de les additioner pour avoir le total par model et mois,pour donner les resultats ci joint. Cela me permettra d exploiter les infos d'une autre maniere aussi?

Merci par avance de votre aide precieuse.

androu
 

Pièces jointes

  • concatener+ variable.zip
    11.2 KB · Affichages: 45
  • concatener+ variable.zip
    11.2 KB · Affichages: 44
  • concatener+ variable.zip
    11.2 KB · Affichages: 47

Tibo

XLDnaute Barbatruc
Re : concatener + variables

re,

Une solution avec SOMMEPROD pour additionner les valeurs numériques et les différents noms testx pour ne prendre en compte que les valeurs texte :

Formule complète en D2 :

Code:
=SOMMEPROD((col_A=A2)*(col_B=B2);col_C)&" "&test_1&test_2&test_3&test_4&
test_5&test_6


Utilisation de SOMMEPROD en D2 :

Code:
=SOMMEPROD((col_A=A2)*(col_B=B2);col_C)
Détail de test_1 :

Code:
=SI(SOMME((col_A&col_B=Feuil3!$A2&Feuil3!$B2)*(ESTTEXTE(col_C)))>=[COLOR=Red][B]1[/B][/COLOR];INDEX(col_C;
PETITE.VALEUR(SI((col_A&col_B=Feuil3!$A2&Feuil3!$B2)*(ESTTEXTE(col_C));(col_A&
col_B=Feuil3!$A2&Feuil3!$B2)*(ESTTEXTE(col_C))*LIGNE(col_A));[COLOR=Red][B]1[/B][/COLOR])-1);"")&" "
Les formules nommées test_n sont les mêmes en remplaçant 1 par n

Voir le fichier joint

@+
 

Pièces jointes

  • Androu_v3.zip
    12.1 KB · Affichages: 59

Statistiques des forums

Discussions
312 328
Messages
2 087 319
Membres
103 515
dernier inscrit
Cherbil12345