Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Selection sur concordance

6 réponses
Avatar
Nathan
Bonjour à tous.
Je voudrais savoir s'il existe un moyen en VBA de faire une recherche de
concordance sur des valeurs de cellules.
Je m'explique car c'est pas évident:
j'ai un classeur avec un tableau qui me fournit des données du genre
colonne a | Colonne b
------------------------------
azerty | 321
rtyuio | 654
uiopqs | 987
pqsdfg | 741
dfghjk | 852
hjklmw | 963

Je dois récupérer les valeurs de la colonne b pour les coller dans un
tableau dans un autre classeur MAIS sur concordance des intitulés dans le
deuxième classeur à l'intersection lignes/colonnes; comme ça:
| colonne lmw
azerty | 321
rtyuio | 654
dfghjk | 852
pqsdfg | 741
hjklmw | 963
uiopqs | 987

Et évidemment ce ne sont pas des emplacements fixes dans les tableaux et
la sortie du deuxième tableau ne suit pas forcément l'ordre du premier
(ce serait trop facile), d'ou nécessité de faire une recherche de
concordance.

Je voudrais donc savoir s'il existe un moyen d'effectuer ce type de
recherche de concordance (la fonction INTERSECT ne me semble pas pouvoir
y répondre mais je n'en ai peut-être pas bien compris le fonctionnement).

6 réponses

Avatar
Michel Gaboly
--------------D3CA0FE03D31F0509D7FF585
Content-Type: text/plain; charset=iso-8859-1; x-mac-type="54455854"; x-mac-creator="4D4F5353"
Content-Transfer-Encoding: 8bit

Bonjour,

Pour cela, utilise la commande "Consolider..." du menu "Données"

Voici un extrait de l'aide (Excel 98)


Consolidation de données par catégorie

1 Cliquez sur la cellule située dans le coin supérieur gauche de la zone de destination des données consolidées.
2 Dans le menu Données, cliquez sur Consolider.
3 Dans la zone Fonction, sélectionnez la fonction de synthèse que Microsoft Excel doit utiliser pour consolider les
données. Pour plus d'informations sur les fonctions de synthèse, cliquez sur .
4 Dans la zone Référence, tapez la zone source que vous voulez consolider. Veillez à inclure les étiquettes de données
dans la sélection. Pour plus d'informations sur les zones source, cliquez
sur .

5 Cliquez sur le bouton Ajouter.
6 Répétez les étapes 4 et 5 pour chaque zone source à consolider.
7 Sous Étiquettes dans, activez les cases à cocher indiquant l'emplacement des étiquettes dans la zone source à savoir la
ligne du haut, la colonne de gauche ou les deux.
8 Pour mettre à jour automatiquement la table de consolidation lorsque les données source sont modifiées, activez la case
à cocher Lier aux données source.

Pour créer des liaisons, les zones source et de destination doivent être situées dans des feuilles de calcul différentes.
Une fois les liaisons créées, vous ne pouvez plus ajouter de nouvelles zones
source ni changer les zones source inclues dans la consolidation.

Remarque Les étiquettes d'une zone source qui ne correspondent à aucune étiquette dans les autres zones source génèrent
des lignes ou des colonnes distinctes lors de la consolidation des
données.

Pour cela, il te faut utiliser une troisièe feuille. N'oublie pas de cliquer sur la case à cocher "Colonne de gauche" dans le pavé
"Étiquettes dans".


Dis-moi ci c'est assez clair ou pas.



Bonjour à tous.
Je voudrais savoir s'il existe un moyen en VBA de faire une recherche de
concordance sur des valeurs de cellules.
Je m'explique car c'est pas évident:
j'ai un classeur avec un tableau qui me fournit des données du genre
colonne a | Colonne b
------------------------------
azerty | 321
rtyuio | 654
uiopqs | 987
pqsdfg | 741
dfghjk | 852
hjklmw | 963

Je dois récupérer les valeurs de la colonne b pour les coller dans un
tableau dans un autre classeur MAIS sur concordance des intitulés dans le
deuxième classeur à l'intersection lignes/colonnes; comme ça:
| colonne lmw
azerty | 321
rtyuio | 654
dfghjk | 852
pqsdfg | 741
hjklmw | 963
uiopqs | 987

Et évidemment ce ne sont pas des emplacements fixes dans les tableaux et
la sortie du deuxième tableau ne suit pas forcément l'ordre du premier
(ce serait trop facile), d'ou nécessité de faire une recherche de
concordance.

Je voudrais donc savoir s'il existe un moyen d'effectuer ce type de
recherche de concordance (la fonction INTERSECT ne me semble pas pouvoir
y répondre mais je n'en ai peut-être pas bien compris le fonctionnement).



--
Cordialement,

Michel Gaboly
http://www.gaboly.com


--------------D3CA0FE03D31F0509D7FF585
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Bonjour,
<p>Pour cela, utilise la commande "Consolider..." du menu "Donn&eacute;es"
<p>Voici un extrait de l'aide (Excel 98)
<br>&nbsp;
<blockquote>Consolidation de donn&eacute;es par cat&eacute;gorie
<p>1 Cliquez sur la cellule situ&eacute;e dans le coin sup&eacute;rieur
gauche de la zone de destination des donn&eacute;es consolid&eacute;es.
<br>2 Dans le menu Donn&eacute;es, cliquez sur Consolider.
<br>3 Dans la zone Fonction, s&eacute;lectionnez la fonction de synth&egrave;se
que Microsoft Excel doit utiliser pour consolider les donn&eacute;es. Pour
plus d'informations sur les fonctions de synth&egrave;se, cliquez sur&nbsp;
.
<br>4 Dans la zone R&eacute;f&eacute;rence, tapez la zone source que vous
voulez consolider. Veillez &agrave; inclure les &eacute;tiquettes de donn&eacute;es
dans la s&eacute;lection. Pour plus d'informations sur les zones source,
cliquez
<br>sur&nbsp; .
<p>5 Cliquez sur le bouton Ajouter.
<br>6 R&eacute;p&eacute;tez les &eacute;tapes 4 et 5 pour chaque zone source
&agrave; consolider.
<br>7 Sous &Eacute;tiquettes dans, activez les cases &agrave; cocher indiquant
l'emplacement des &eacute;tiquettes dans la zone source &agrave; savoir
la ligne du haut, la colonne de gauche ou les deux.
<br>8 Pour mettre &agrave; jour automatiquement la table de consolidation
lorsque les donn&eacute;es source sont modifi&eacute;es, activez la case
&agrave; cocher Lier aux donn&eacute;es source.
<p>Pour cr&eacute;er des liaisons, les zones source et de destination doivent
&ecirc;tre situ&eacute;es dans des feuilles de calcul diff&eacute;rentes.
Une fois les liaisons cr&eacute;&eacute;es, vous ne pouvez plus ajouter
de nouvelles zones
<br>source ni changer les zones source inclues dans la consolidation.
<p>Remarque&nbsp;&nbsp; Les &eacute;tiquettes d'une zone source qui ne
correspondent &agrave; aucune &eacute;tiquette dans les autres zones source
g&eacute;n&egrave;rent des lignes ou des colonnes distinctes lors de la
consolidation des
<br>donn&eacute;es.</blockquote>

<p><br>Pour cela, il te faut utiliser une troisi&egrave;e feuille. N'oublie
pas de cliquer sur la case &agrave; cocher "Colonne de gauche" dans le
pav&eacute; "&Eacute;tiquettes dans".
<br>&nbsp;
<p>Dis-moi ci c'est assez clair ou pas.
<br>&nbsp;
<blockquote TYPE=CITE>Bonjour &agrave; tous.
<br>Je voudrais savoir s'il existe un moyen en VBA de faire une recherche
de
<br>concordance sur des valeurs de cellules.
<br>Je m'explique car c'est pas &eacute;vident:
<br>j'ai un classeur avec un tableau qui me fournit des donn&eacute;es
du genre
<br>colonne a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Colonne b
<br>------------------------------
<br>azerty&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 321
<br>rtyuio&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 654
<br>uiopqs&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 987
<br>pqsdfg&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 741
<br>dfghjk&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 852
<br>hjklmw&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 963
<p>Je dois r&eacute;cup&eacute;rer les valeurs de la colonne b pour les
coller dans un
<br>tableau dans un autre classeur MAIS sur concordance des intitul&eacute;s
dans le
<br>deuxi&egrave;me classeur &agrave; l'intersection lignes/colonnes; comme
&ccedil;a:
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
| colonne lmw
<br>azerty&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 321
<br>rtyuio&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 654
<br>dfghjk&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 852
<br>pqsdfg&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 741
<br>hjklmw&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 963
<br>uiopqs&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 987
<p>Et &eacute;videmment ce ne sont pas des emplacements fixes dans les
tableaux et
<br>la sortie du deuxi&egrave;me tableau ne suit pas forc&eacute;ment l'ordre
du premier
<br>(ce serait trop facile), d'ou n&eacute;cessit&eacute; de faire une
recherche de
<br>concordance.
<p>Je voudrais donc savoir s'il existe un moyen d'effectuer ce type de
<br>recherche de concordance (la fonction INTERSECT ne me semble pas pouvoir
<br>y r&eacute;pondre mais je n'en ai peut-&ecirc;tre pas bien compris
le fonctionnement).
<br>&nbsp;</blockquote>
--
<br>Cordialement,
<p>Michel Gaboly
<br><A HREF="http://www.gaboly.com">http://www.gaboly.com</A>
<br>&nbsp;</html>

--------------D3CA0FE03D31F0509D7FF585--

Avatar
domilefebv
Une autre solution peut être la fonction de feuille de calcul RECHERCHEV
à mettre dans la feuille d'appel des données en deuxième colonne.
Elle permet d'associer des tables.

RECHERCHEV(valeur_cherchée;table_matrice;no_index_col;valeur_proche)

La première table est constituée des associations

Table 1:
colonne a | Colonne b
------------------------------
azerty | 321
rtyuio | 654
uiopqs | 987
pqsdfg | 741
dfghjk | 852
hjklmw | 963

La seconde contient les informations à chercher en colonne 1 et la fonction
en colonne 2

colonne lmw
azerty | =RECHERCHEV(A2;table1;2;Faux) ==> 321
rtyuio | =RECHERCHEV(A3;table1;2;Faux) ==> 654
azerty | =RECHERCHEV(A4;table1;2;Faux) ==> 321
dfghjk | ...
pqsdfg |
hjklmw |
uiopqs |

Renvoie la valeur qui se trouve dans la deuxième colonne de la table1 et qui
correspond à la valeur en A2 de la feuille active.
Renvoie #NA! s'il n'y a pas d'association

PS : C'est plus clair en utilisant l'assistant d'Excel.

"Nathan" a écrit dans le message de news:
3f58ff1a$0$28914$
Bonjour à tous.
Je voudrais savoir s'il existe un moyen en VBA de faire une recherche de
concordance sur des valeurs de cellules.
Je m'explique car c'est pas évident:
j'ai un classeur avec un tableau qui me fournit des données du genre
colonne a | Colonne b
------------------------------
azerty | 321
rtyuio | 654
uiopqs | 987
pqsdfg | 741
dfghjk | 852
hjklmw | 963

Je dois récupérer les valeurs de la colonne b pour les coller dans un
tableau dans un autre classeur MAIS sur concordance des intitulés dans le
deuxième classeur à l'intersection lignes/colonnes; comme ça:
| colonne lmw
azerty | 321
rtyuio | 654
dfghjk | 852
pqsdfg | 741
hjklmw | 963
uiopqs | 987

Et évidemment ce ne sont pas des emplacements fixes dans les tableaux et
la sortie du deuxième tableau ne suit pas forcément l'ordre du premier
(ce serait trop facile), d'ou nécessité de faire une recherche de
concordance.

Je voudrais donc savoir s'il existe un moyen d'effectuer ce type de
recherche de concordance (la fonction INTERSECT ne me semble pas pouvoir
y répondre mais je n'en ai peut-être pas bien compris le fonctionnement).



Avatar
Michel Gaboly
Bonjour,

Attention à l'emploi de RECHERCHE(), RECHERCHEH(), RECHERCHEV().

Pour que les résultats renvoyés soient corrects, il est IMPÉRATIF que la
plage dans laquelle s'effectue la recherche soit triée par ordre croissant;

C'est pourquoi, en général, le couple INDEX() - EQUIV() est souvent à
préférer :

=INDEX('[Source données]Feuil1'!$B$1:$B$6;EQUIV(A1;'[Source données]Feuil1'!$A$1:$A$6;0))

à inscrire en A2 de la feuille où récupérer les données, avec celles-ci dans
le classeur "Source données", les étiquettes en colonne A, et les valeurs en
colonne B, sur les ligne 1 à 6.


Une autre solution peut être la fonction de feuille de calcul RECHERCHEV
à mettre dans la feuille d'appel des données en deuxième colonne.
Elle permet d'associer des tables.

RECHERCHEV(valeur_cherchée;table_matrice;no_index_col;valeur_proche)

La première table est constituée des associations

Table 1:
colonne a | Colonne b
------------------------------
azerty | 321
rtyuio | 654
uiopqs | 987
pqsdfg | 741
dfghjk | 852
hjklmw | 963

La seconde contient les informations à chercher en colonne 1 et la fonction
en colonne 2

colonne lmw
azerty | =RECHERCHEV(A2;table1;2;Faux) ==> 321
rtyuio | =RECHERCHEV(A3;table1;2;Faux) ==> 654
azerty | =RECHERCHEV(A4;table1;2;Faux) ==> 321
dfghjk | ...
pqsdfg |
hjklmw |
uiopqs |

Renvoie la valeur qui se trouve dans la deuxième colonne de la table1 et qui
correspond à la valeur en A2 de la feuille active.
Renvoie #NA! s'il n'y a pas d'association

PS : C'est plus clair en utilisant l'assistant d'Excel.

"Nathan" a écrit dans le message de news:
3f58ff1a$0$28914$
Bonjour à tous.
Je voudrais savoir s'il existe un moyen en VBA de faire une recherche de
concordance sur des valeurs de cellules.
Je m'explique car c'est pas évident:
j'ai un classeur avec un tableau qui me fournit des données du genre
colonne a | Colonne b
------------------------------
azerty | 321
rtyuio | 654
uiopqs | 987
pqsdfg | 741
dfghjk | 852
hjklmw | 963

Je dois récupérer les valeurs de la colonne b pour les coller dans un
tableau dans un autre classeur MAIS sur concordance des intitulés dans le
deuxième classeur à l'intersection lignes/colonnes; comme ça:
| colonne lmw
azerty | 321
rtyuio | 654
dfghjk | 852
pqsdfg | 741
hjklmw | 963
uiopqs | 987

Et évidemment ce ne sont pas des emplacements fixes dans les tableaux et
la sortie du deuxième tableau ne suit pas forcément l'ordre du premier
(ce serait trop facile), d'ou nécessité de faire une recherche de
concordance.

Je voudrais donc savoir s'il existe un moyen d'effectuer ce type de
recherche de concordance (la fonction INTERSECT ne me semble pas pouvoir
y répondre mais je n'en ai peut-être pas bien compris le fonctionnement).




--
Cordialement,

Michel Gaboly
http://www.gaboly.com


Avatar
Daniel.M
Salut Michel,


Attention à l'emploi de RECHERCHE(), RECHERCHEH(), RECHERCHEV().

Pour que les résultats renvoyés soient corrects, il est IMPÉRATIF que la
plage dans laquelle s'effectue la recherche soit triée par ordre
croissant;




Vrai pour RECHERCHE() mais, pour les 2 autres, il y a moyen de faire des
recherches dans des plages non-triées en utilisant FAUX, ou 0, comme dernier
argument.

Salutations,

Daniel M.

Avatar
Nathan
Michel Gaboly wrote in
news::

Salut Daniel,

Merci de l'info.

J'ai appris quelque chose. ;-))


Bonjour et merci à vous deux.
Comme les données que je récupère le sont à partir de tableaux croisés
créés à la volée (et il y en a beaucoup), l'idée des listes - qui
m'obligeraient à rajouter des lignes vides dans les tableaux croisés car
leurs contenus varient même en quantité) me semble assez lourde à mettre
en oeuvre - mais pas à exclure.
La fonction RECHERCHEV est peut-être plus souple.
Je vais très certainement m'orienter vers un melting des deux après avoir
bien secoué le tout dans ma tête :-)
Il n'empêche, ça reste pas évident.
Du moins cela m'aura-t-il permis grâce à vous de m'orienter vers des
pistes auxquelle je n'avais pas pensé.
Merci.

@+

Nathan


Lorsque j'ai découvert RECHERCHEH(), RECHERCHEV(), il n'y avait que 3
arguments. Celui que tu évoques a été rajouté depuis, mais j'ignore
dans quelle version.

Je viens de vérifier sous Excel 4. Le 4ème argument n'existait pas.

C'est dommage qu'il n'existe pas un site qui indique les évolutions
d'Excel, où pour une fonction donnée, on pourrait trouver dans quelle
version elle est apparue, et si elle a été modifiée par la suite.

Ce serait probablement un travail de titan, mais instructif pour celui
qui en aurait le courage ;-))



Salut Michel,
...snip...



Daniel M.




Avatar
Michel Gaboly
Re,

De rien ;-)) Nathan.


Michel Gaboly wrote in
news::

Salut Daniel,

Merci de l'info.

J'ai appris quelque chose. ;-))


Bonjour et merci à vous deux.
Comme les données que je récupère le sont à partir de tableaux croisés
créés à la volée (et il y en a beaucoup), l'idée des listes - qui
m'obligeraient à rajouter des lignes vides dans les tableaux croisés car
leurs contenus varient même en quantité) me semble assez lourde à mettre
en oeuvre - mais pas à exclure.
La fonction RECHERCHEV est peut-être plus souple.
Je vais très certainement m'orienter vers un melting des deux après avoir
bien secoué le tout dans ma tête :-)
Il n'empêche, ça reste pas évident.
Du moins cela m'aura-t-il permis grâce à vous de m'orienter vers des
pistes auxquelle je n'avais pas pensé.
Merci.

@+

Nathan


Lorsque j'ai découvert RECHERCHEH(), RECHERCHEV(), il n'y avait que 3
arguments. Celui que tu évoques a été rajouté depuis, mais j'ignore
dans quelle version.

Je viens de vérifier sous Excel 4. Le 4ème argument n'existait pas.

C'est dommage qu'il n'existe pas un site qui indique les évolutions
d'Excel, où pour une fonction donnée, on pourrait trouver dans quelle
version elle est apparue, et si elle a été modifiée par la suite.

Ce serait probablement un travail de titan, mais instructif pour celui
qui en aurait le courage ;-))



Salut Michel,
...snip...



Daniel M.




--
Cordialement,

Michel Gaboly
http://www.gaboly.com