Tableau récap
melypepi
Messages postés
4
Statut
Membre
-
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 25847 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Tableau récap
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Tableau croisé dynamique - Guide
- Imprimer tableau excel sur une page - Guide
9 réponses
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
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
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
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
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
comment puis-je ajuster cela?
merci,
Melypepi
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
... 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
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
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
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
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
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
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
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