A voir également:
- [Excel] Plage de données var dans un "EQUIV"
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Trier des données excel - Guide
3 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
4 nov. 2010 à 13:30
4 nov. 2010 à 13:30
Re
Essayez ce modèle pour voir d'une part si tout fonctionne et d'autre part s'il est moins lourd et revenez si non ou si besoin d'info complémentaire.
Le modèle utilise une ligne de codage (Ligne 1 au dessus du tableau de réf)
et une cellule de renvoi en Z1
http://www.cijoint.fr/cjlink.php?file=cj201011/cijs0awPoI.xls
à vous lire
crdlmt
Essayez ce modèle pour voir d'une part si tout fonctionne et d'autre part s'il est moins lourd et revenez si non ou si besoin d'info complémentaire.
Le modèle utilise une ligne de codage (Ligne 1 au dessus du tableau de réf)
et une cellule de renvoi en Z1
http://www.cijoint.fr/cjlink.php?file=cj201011/cijs0awPoI.xls
à vous lire
crdlmt
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
3 nov. 2010 à 17:40
3 nov. 2010 à 17:40
Bonjour
Essayez de remplacer votre BA:BA
par: INDIRECT(D2) qui transformera le texte en adresse.
Crdlmnt
Essayez de remplacer votre BA:BA
par: INDIRECT(D2) qui transformera le texte en adresse.
Crdlmnt
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
3 nov. 2010 à 17:42
3 nov. 2010 à 17:42
suite du message précédent
Vous pouvez même écrire directement:
=EQUIV("villeA";INDIRECT(RECHERCHEV(D1;A1:B3;2;0)) ;0)sans passer par D2
Vous pouvez même écrire directement:
=EQUIV("villeA";INDIRECT(RECHERCHEV(D1;A1:B3;2;0)) ;0)sans passer par D2
Merci pour votre réponse extrêmement rapide !
J'ai cependant déjà essayé d'introduire mon rechercheV dans mon equiv mais j'ai une erreur #valeur.
Cependant j'ai pu contourner mon problème avec un si(D1=France;BA:BA;si(D1=suisse;BB:BB;BC:BC)) dans la formule.
Mais je dois appliquer cette formule sur environ 300 cellules de 7 onglets différents. Actuellement j'utilise un recherchev. je trouve bien le résultat escompté mais le calcul (F9 ou calculate en vba) est assez long (environ 10 sec ...) et je cherche à le réduire. J'ai pu constater que dans plusieurs reporting existants la ou je travaille , les gens avaient utilisé un Indirect(adresse(equiv[...]))) à la place de mon recherchev([...]). Et je me suis dit que peut-être le temps de calcul pour le recherchev etait réputé pour être long.
Alors pour revenir à mes moutons, si je test un Indirect(Adresse(Equiv([...]))) en incorporant 2 tests de comparaisons (SI) je me dis que je ne vais pas forcément voir de différence en terme de rapidité de calcul.
Qu'en pensez vous ?
PS : si je ne suis pas assez clair n'hésitez pas à me demander de reformuler ma problèmatique.
J'ai cependant déjà essayé d'introduire mon rechercheV dans mon equiv mais j'ai une erreur #valeur.
Cependant j'ai pu contourner mon problème avec un si(D1=France;BA:BA;si(D1=suisse;BB:BB;BC:BC)) dans la formule.
Mais je dois appliquer cette formule sur environ 300 cellules de 7 onglets différents. Actuellement j'utilise un recherchev. je trouve bien le résultat escompté mais le calcul (F9 ou calculate en vba) est assez long (environ 10 sec ...) et je cherche à le réduire. J'ai pu constater que dans plusieurs reporting existants la ou je travaille , les gens avaient utilisé un Indirect(adresse(equiv[...]))) à la place de mon recherchev([...]). Et je me suis dit que peut-être le temps de calcul pour le recherchev etait réputé pour être long.
Alors pour revenir à mes moutons, si je test un Indirect(Adresse(Equiv([...]))) en incorporant 2 tests de comparaisons (SI) je me dis que je ne vais pas forcément voir de différence en terme de rapidité de calcul.
Qu'en pensez vous ?
PS : si je ne suis pas assez clair n'hésitez pas à me demander de reformuler ma problèmatique.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 nov. 2010 à 10:41
4 nov. 2010 à 10:41
Bonjour Jean Pierre, Vaucluse
Tu parles de 300 cellules de 7 onglets...
ces 300 cellules sont elles toutes différentes et dans colonnes renvoient elles ?
par exemple: vatican, feuille 6: colonne AA:AA ? en supposant que la colonne AA soit dans la m^me feuille que Vatican...
et quel est le but de la formule EQUIV, la ligne bien sûr mais pourquoi faire?
Au besoin, mettre un extrait (quelques lignes et feuilles) du classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé dans le message de réponse
Tu parles de 300 cellules de 7 onglets...
ces 300 cellules sont elles toutes différentes et dans colonnes renvoient elles ?
par exemple: vatican, feuille 6: colonne AA:AA ? en supposant que la colonne AA soit dans la m^me feuille que Vatican...
et quel est le but de la formule EQUIV, la ligne bien sûr mais pourquoi faire?
Au besoin, mettre un extrait (quelques lignes et feuilles) du classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
http://cijoint.fr/
et coller le lien proposé dans le message de réponse
Michel, merci pour votre temps.
Ci joint un fichier fonctionnant exactement de la même façon que mon reporting :
http://www.cijoint.fr/cjlink.php?file=cj201011/cijaMcQ6AT.xls
(je n'ai pas cliqué rendre public le fichier, j'espère que cela ne posera pas de problème)
Je n'ai fait qu'un seul onglet car mes 7 onglets fonctionnent exactement de la même façon (disons que sur l'onglet N°2 nous avons des chaines hifi et des balladeurs MP3 à la place de TV, etc ...et chaque onglet possède le même nombre de colonnes).
Dans mon fichier, l'utilisateurs choisi un pays et un type de TV dans les listbox en B1 et B2 et (aprés F9) les prix s'affichent dans le tableau.
Le tableau dans mon exemple fonctionne bien mais je cherche donc à utiliser une formule constitué de Indirect(Equiv(Adress([...]))) pour (je l'espère) gagner du temps dans le recalcul des données et permettre ainsi une utilisation plus fluide du reporting pour mes différents utilisateurs.
"et quel est le but de la formule EQUIV, la ligne bien sûr mais pourquoi faire? "
Le but est de trouver le N° de ligne à utiliser dans la formule adresse([Ligne];[colonne];;[Feuille]). Pour essayer de faire simple, dans mon exemple je cherche (par exemple) Modele 1 dans la colonne AA OU dans la colonne AH OU dans la colonne AO et je veux donc connaitre le n° de ligne pour l'introduire dans la formule Adresse().
Avez vous besoin d'autre(s) précision(s) qui pourrait vous aider à ... m'aider ? :)
Ci joint un fichier fonctionnant exactement de la même façon que mon reporting :
http://www.cijoint.fr/cjlink.php?file=cj201011/cijaMcQ6AT.xls
(je n'ai pas cliqué rendre public le fichier, j'espère que cela ne posera pas de problème)
Je n'ai fait qu'un seul onglet car mes 7 onglets fonctionnent exactement de la même façon (disons que sur l'onglet N°2 nous avons des chaines hifi et des balladeurs MP3 à la place de TV, etc ...et chaque onglet possède le même nombre de colonnes).
Dans mon fichier, l'utilisateurs choisi un pays et un type de TV dans les listbox en B1 et B2 et (aprés F9) les prix s'affichent dans le tableau.
Le tableau dans mon exemple fonctionne bien mais je cherche donc à utiliser une formule constitué de Indirect(Equiv(Adress([...]))) pour (je l'espère) gagner du temps dans le recalcul des données et permettre ainsi une utilisation plus fluide du reporting pour mes différents utilisateurs.
"et quel est le but de la formule EQUIV, la ligne bien sûr mais pourquoi faire? "
Le but est de trouver le N° de ligne à utiliser dans la formule adresse([Ligne];[colonne];;[Feuille]). Pour essayer de faire simple, dans mon exemple je cherche (par exemple) Modele 1 dans la colonne AA OU dans la colonne AH OU dans la colonne AO et je veux donc connaitre le n° de ligne pour l'introduire dans la formule Adresse().
Avez vous besoin d'autre(s) précision(s) qui pourrait vous aider à ... m'aider ? :)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 nov. 2010 à 12:17
4 nov. 2010 à 12:17
Bien reçu, merci
Pas trop le temps cet après-midi mais je pencherais plutôt vers un tableau style AA2:AG8 pour la France que pour une colonne mais...
Par contre, je ne comprends pas pourquoi le calcul est si long... car on pourrait peut-être passer pour des matricielles;
il faudrait peut-être aussi que les tableaux aient la m^me hauteur
Je laisse la main à l'ami Vaucluse
Prut-^tre à ce soir ou demain si rien n'a été trouver...
Pas trop le temps cet après-midi mais je pencherais plutôt vers un tableau style AA2:AG8 pour la France que pour une colonne mais...
Par contre, je ne comprends pas pourquoi le calcul est si long... car on pourrait peut-être passer pour des matricielles;
il faudrait peut-être aussi que les tableaux aient la m^me hauteur
Je laisse la main à l'ami Vaucluse
Prut-^tre à ce soir ou demain si rien n'a été trouver...
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
4 nov. 2010 à 12:52
4 nov. 2010 à 12:52
Re,
Vite fait avant d'aller manger avec une matricielle sans tableaux intermédiaires. il faut aligner tous les modèles quelque soit le pays
mais cela ne résoud pas le problème de temps et les matricielles sont toujours lentes..
http://www.cijoint.fr/cjlink.php?file=cj201011/cijJd07NFT.xls
testé sur la France
Vite fait avant d'aller manger avec une matricielle sans tableaux intermédiaires. il faut aligner tous les modèles quelque soit le pays
mais cela ne résoud pas le problème de temps et les matricielles sont toujours lentes..
http://www.cijoint.fr/cjlink.php?file=cj201011/cijJd07NFT.xls
testé sur la France
4 nov. 2010 à 14:55
Comment nommer les plages de données de la même façon que vous le faite ? (Insertion => Nom => Définir ????)
Pour la création des Listes 1 , 2 et 3 est t'il possible de prendre, par exemple, 2000 lignes alors que seulement les 1300 premières ne sont pas vide ou cela va t'il posé problème pour la recherche d ela valeur MAX de la liste ?
J'adapterai votre formule à ma maquette des que je saurais comment inserer les plages de données "proprement" :)
Merci pour votre aide.
4 nov. 2010 à 15:08
Je ne comprend pas tout
Si vous parlez de LIST1,LIST2,LIST3
La création des liste 1,2,3 est indépendantes de la hauteur des tableaux. Elles vont actuellement jusqu'à 100, il suffit de modifier les limites de champ dans les noms.Les cellules vides ne sont pas concernées, on peut le faire, mais ça ne semble pas utile pour l'instant avec les formules du modèle.
Si vous parlez du tableau d'édition et du nombre de code en colonne B, (1300 modèles?)il suffira de rajouter dans les formules sur les trois listes (C,D,E):
=SI(ESTVIDE(B5;"";formule actuelle complète)
Le code MAX n'est utilisé que sur la première ligne pour reporter en Z1 le nom de la liste concernée, il n'est pas lié au nombre de lignes dans les listes. La formule qui définit la valeur des codes ne travaille que sur les lignes 2,3,4
Nommez un champ:
Sélectionnez le et effectivement:
Insertion / Nom /Définir et entrez le nom en haut de la fenêtre
vous pouvez retouchez les limites du champ en bas de la fenêtre si besoin, attention de bien bloquer les limites
Ces champs nommés peuvent être délimités par des formules qui justement, limitent le champ aux nombres de lignes pleines.
N'hésitez pas si d'autres besoins
Crdlmnt
4 nov. 2010 à 16:41
Je viens d'obtenir le bon résultat pour la première valeur recherchée, je peux donc commencer à étendre la formule sur tout le classeur.
Une fois que j'aurai effectué cette opération je viendrai vous tenir informé du changement en terme de rapidité effective de calcul.
Merci encore pour votre aide.
PS : sur le fichier en pièce jointe je parle de modele 1 2 3 etc, l'équivalent dans ma maquette serait de 59K modele.
Concernant l'analogie avec les pays, j'en ai le même nombre (3) , j'ai 4 "type de téléviseur" (au lieu de 2 dans le fichier exemple : plat et cathodique), et j'ai 3 "marque de téléviseur" (comment dans le fichier exemple).
La seule grosse différence concerne donc le nombre de "modele".
Bref bref, ça fait un grand PS tout ça, je vais tester et vous fait un retour dès que possible (ce soir ou demain matin)
8 nov. 2010 à 10:57