Tableau récap

Fermé
melypepi Messages postés 4 Date d'inscription mercredi 12 mars 2014 Statut Membre Dernière intervention 13 mars 2014 - 12 mars 2014 à 22:22
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 - 19 mars 2014 à 07:27
Bonjour à tous,

Je bloque sur un tableau depuis quelques jours sans trouver de réponses à mon problème dans les différents forums...

J'ai une base de données:
A: entreprise1 / entreprise 2 / entreprise 3
B: classement / jus /céréales / viande
C: décision : oui / non

je voudrais faire un deuxième tableau où je retrouves toute les entreprises qui rentres dans un même classement par ex: quelles sont les entreprises qui entre dans le classement jus et qui ai la décision oui.

avec le fichier ca devrait être plus clair, j'ai du mal à l'expliquer...

j'ai essayer la formule suivante:
=INDEX($A$1:$A$10;EQUIV(A2&" ";$A$1:$A$10;-1);1)

mais je n'ai pas la décision prise en compte et je dois sélectionner que les entreprises qui correspondent au classement alors que je voudrais pouvoir ajouter des lignes et quelles soit prise en compte également dans la formule.

j'espère avoir été à peu près clair!!

http://cjoint.com/data/0CmwnJ4Pzgn.htm

merci de votre aide,

Melypepi

9 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
13 mars 2014 à 08:04
Bonjour
voyez ici ci ça peut vous convenir et revenez si besoin d'explication

la répartition des valeurs se fait selon la colonne L qui peut être masquée, ou placée plus loin hors champ.
https://www.cjoint.com/?DCnic0UBuBK

crdlmnt
0
melypepi Messages postés 4 Date d'inscription mercredi 12 mars 2014 Statut Membre Dernière intervention 13 mars 2014
Modifié par melypepi le 13/03/2014 à 16:19
Bonjour,

merci beaucoup Vaucluse c'est exactement le résultat que je désires.

Pouvez-vous m'expliquer les formules... elles sont un peu complexes pour mes notions d'excel donc j'ai du mal à saisir chaque argument. J'aime comprendre ce que je fais!!
;-)

en tous cas merci beaucoup car je galère depuis quelques jours dessus et je ne serais jamais arriver à trouver cette solution seule!

cordialement
0
melypepi Messages postés 4 Date d'inscription mercredi 12 mars 2014 Statut Membre Dernière intervention 13 mars 2014
13 mars 2014 à 16:20
Par contre dans mon vrai tableau les entreprises 1, 2, 3 sont les noms des entreprises donc la formule qui emploi entreprise*, ne fonctionne pas...
comment puis-je ajuster cela?

merci,

Melypepi
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
13 mars 2014 à 16:59
Re
Pas facile, par message d'expliquer ça. On va essayer !!, amusez vous bien :-)

1° la formule de codage, colonne L

=SI(C2="non";"";NB.SI($L$1:L1;"*"&A2&"*")&"_"&A2&"_"&NB.SI($L$1:L1;"Entreprise*")&"/"&B2&"_"&NB.SI($L$1:L1;"*"&B2&"*"))

=SI(C2="non";"";
renvoie une cellule vide si la, colonne C contient non

NB.SI($L$1:L1;"*"&A2&"*")
compte dans le champ évolutif de L au dessus de la cellule qui contient la formule, le nombre de texte qui contient la valeur de A
Dans le code NB.SI la valeur cherchée "*"&A2&"*" spécifie à l'aide des astérisques qu'il faut compter toutes les cellules qui contiennent au moins le texte A2, et ceci même si le texte en L est plus long

&"_"&A2&"_"Ajoute derrière le résultat précédent le texte entre guillemets, ici underscore suivi de la valeur de A2 (nom de l'entreprise)

NB.SI($L$1:L1;"Entreprise*")
En fait cette partie de la formule est un reste de test abandonné que j'ai omis de corriger, mais n'est pas utile, la formule pouvant se composer pour cet élément seulement comme suit (soit directement de A2& »au slash


=SI(C2="non";"";NB.SI($L$1:L1;"*"&A2&"*")&"_"&A2&"/"&B2&"_"&NB.SI($L$1:L1;"*"&B2&"*"))


&"/"&
Introduit le slash à la suite du texte élaboré précédemment

NB.SI($L$1:L1;"*"&B2&"*"))
Toujours décompte en L au dessus de la cellule, mais cette fois des cellules qui contiennent le texte de B2 n'importe où

Résultat :
Le code obtenu se compose dans l'ordre
D'un n° spécifique incrémenté pour chaque ligne de L qui contient entreprise
Du nom de l'entreprise
Du slash séparateur
D'un N° spécifique incrémenté pour chaque ligne de L qui contient la valeur de B
De la valeur de B

But : différencier par les N° chauqe ligne portant les même noms pour que les formules de recherche ne s'arrête pas sur le premier trouvé

Tableau supérieur

formule en E3
=SI(ESTERREUR(EQUIV("*"&E$2&"_"&LIGNE()-3&"*";$L:$L;0));"";INDEX($A:$A;EQUIV("*"&E$2&"_"&LIGNE()-3&"*";$L:$L;0)))

=SI(ESTERREUR(...) ; ""; renvoi une cellule vide si le résultat e la formule affectée est une erreur (cas du code cherché inexistant dans la colonne de recherche

(EQUIV("*"&E$2&"_"&LIGNE()-3&"*";$L:$L;0)

Va chercher le N° de ligne de la colonne L qui contient la valeur spécifiée entre les astérisques :
Soit :
E$2&"_"&LIGNE()-3
Valeur de E2 suivi de l'underscore suivi du nombre défini par le N° de ligne où se trouve la formule -3 c'st à dire 0 sur ligne 3, 1 sur ligne 4 ect...
Et donc cet ensemble reconstitue le texte de fin du code de la colonne L, après le slash, en incrémentant le texte de 1 à chaque ligne
Si le code constitué n'existe pas dans la colonne L , la formule renvoie une erreur et donc, renvoie une cellule vide.

INDEX($A:$A;EQUIV("*"&E$2&"_"&LIGNE()-3&"*";$L:$L;0)))
Va chercher dans la A colonne , la valeur sur la ligne définit par le code EQUIV vu précédemment

Les signes $ sont placés dans l'ensemble des formules pour permettre de les copier de gauche à droite et de haut en bas en ajustant les références mobile et bloquant les références fixes

Tableau inférieur

=SI(ESTERREUR(EQUIV(LIGNE()-13&"_"&E$12&"*";$L:$L;0));"";INDEX($B:$B;EQUIV(LIGNE()-13&"_"&E$12&"*";$L:$L;0)))

Même principe que précédent, mais cette fois avec la composition du N° issu de la, ligne (-13) et du nom de l'entreprise.

Voila voila, pas facile d'expliquer mieux, je vous souhaite bien du courage

crdlmnt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
melypepi Messages postés 4 Date d'inscription mercredi 12 mars 2014 Statut Membre Dernière intervention 13 mars 2014
Modifié par melypepi le 14/03/2014 à 00:00
merci pour l'explication, bon j'ai pas tout suivi mais ça aide!!!

j'ai un autre problème par rapport à cette formule, en fait j'ai mal représenter mon exemple, désolé...
car la même entreprise peut avoir le même classement plusieurs fois, du coup dans mon tableau je me retrouves avec plusieurs fois écrit la même entreprise...

j'ai modifié l'exemple pour que ce soit plus clair...

https://www.cjoint.com/?0Cnx3VhTvW9

merci de m'apporter votre aide....

melypepi
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
14 mars 2014 à 07:11
Bonjour

voila voila

https://www.cjoint.com/?DCohlnsirG4

crdlmnt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
14 mars 2014 à 09:01
... suite du précédent

petit complément d'info suite à constat sur votre fichier:

si vous insérez dans la feuille des lignes qui décalent en hauteur les tableaux 1 ou 2, il faut revoir les formules en conséquence, pour ce qui est de l'info LIGNE()-xx
en fait sur la première ligne sous les titres de chaque tableau il faut que xx soit égal au N° de ligne où se trouve la cellule.

(J'ai par exemple dans votre dernier fichier , transformé le -13 du tableau 2 en -17)

vous pouvez pour cela :

sélectionner le tableau à corriger
ctrl + h
en haut remplacer: LIGNE()-x
en bas par: LIGNE()-xx
et cliquer sur remplacer tout

à faire indépendamment pour chaque tableau, car les valeurs de x ne sont pas les mêmes .

crdlmnt
0
Merci pour votre aide immense!!!
par contre impossible de le faire marché sur mon fichier.... pourtant j'ai repris les formules plusieurs fois!
il y a surement quelque chose que je fais ou que je ne fais pas ...
Ca me donne un résultat éroné, la formule marche en soit mais ça ne me donne pas le vrai résultat!

Je vais continuer à chercher quelle serait mon erreur, car il doit y en avoir une!!
je vous tiens au courant!

merci,

Melypepi
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
19 mars 2014 à 06:46
Bonjour
vérifier bien l'association LIGNE() et -xx
xx devant être sur la 1° ligne de chaque tableau, ,une valeur égale au N° de la ligne où se trouve la,formule
A vérifier dans une cellule hors champ sur la même ligne avec le code simple:
=LIGNE()-xx
Vérifier aussi que les limites de champ couvrent bien lka hauteur utile.

Sinon redéposez le fichier

crdlmnt
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
19 mars 2014 à 07:27
Bonjour à tous,

Autre style d'affichage mais plus simple à mettre en oeuvre avec les segments sur un TCD.
Dans le segment 'Classement tu choisis "Céréales" et tu n'as que les entreprises concernées qui s'affichent.
Tu supprimes le filtres en haut à droite et tu peux aller choisir l'entreprise qui t'intéresse.
Tu peux aussi faire des sélections multiples avec la touche Ctrl. Quelles sont les entreprises qui font "Céréales" et "Jus" parmi les entreprises 2, 3 et 7 par exemple.
https://www.cjoint.com/?DCthvB18Ow6

eric
0