apparier les informations dans 2 tableaux de taille différente

J'ai un tableau composé de 2700 lignes et de 14 colonnes. Dans les lignes, il
y a 170 pays du monde avec un nombre variable d'années (ici : années avec
une élection législative) , dans les colonnes les caractéristiques des pays
et dans la première colonne le nom du pays.

Je cherche une manière simple de rajouter le code ISO 3166-1 du pays pour
les 44 pays européens (feuille liste codes iso) afin de concaténer
ultérieurement les informations dans le tableau avec celles dans d'autres
tableaux pour les mêmes pays.

Si j’exécute cette manipulation de manière manuelle il faut copier 2700
fois ces codes. Techniquement il s'agit ici du traitement d'une base de
données, mais je ne maîtrise pas ce composant de LO.

Je m'imagine qu'il faut créer une liste des noms des pays avec leur code ce
que j'ai fait (feuille Liste Codes Iso).
Mais comment les apparier avec la première feuille avec les 2700 lignes ??

Si vous pouvez m'indiquer où chercher je serais bien reconnaissant.

Merci par avance
ftr

La feuille d'origine: data
La feulile à apparier: liste codes iso

IDEA_VoterTurnout.ods
<http://nabble.documentfoundation.org/file/n4153322/IDEA_VoterTurnout.ods>

Bonjour,

J'ai un tableau composé de 2700 lignes et de 14 colonnes. Dans les lignes, il
y a 170 pays du monde avec un nombre variable d'années (ici : années avec
une élection législative) , dans les colonnes les caractéristiques des pays
et dans la première colonne le nom du pays.

Je cherche une manière simple de rajouter le code ISO 3166-1 du pays pour
les 44 pays européens (feuille liste codes iso) afin de concaténer
ultérieurement les informations dans le tableau avec celles dans d'autres
tableaux pour les mêmes pays.

Si j’exécute cette manipulation de manière manuelle il faut copier 2700
fois ces codes. Techniquement il s'agit ici du traitement d'une base de
données, mais je ne maîtrise pas ce composant de LO.

Je m'imagine qu'il faut créer une liste des noms des pays avec leur code ce
que j'ai fait (feuille Liste Codes Iso).
Mais comment les apparier avec la première feuille avec les 2700 lignes ??

Si vous pouvez m'indiquer où chercher je serais bien reconnaissant.

Merci par avance
ftr

La feuille d'origine: data
La feulile à apparier: liste codes iso

IDEA_VoterTurnout.ods
<http://nabble.documentfoundation.org/file/n4153322/IDEA_VoterTurnout.ods>

--
View this message in context: http://nabble.documentfoundation.org/apparier-les-informations-dans-2-tableaux-de-taille-differente-tp4153322.html
Sent from the Users mailing list archive at Nabble.com.

Comme je ne suis pas très doué avec Calc :slight_smile: , personnellement je ferai ça en passant par une base de données :
1) dans le module Base, création dune base hsqlb
2) copie de la feuille data dans "Tables" pour créer la table data,
3) copie dans "Tables" de la feuille des codes pour créer la table codes,
4) écrire et exécuter une jointure sur les deux tables : SELECT * FROM "data", "codes" WHERE "data"."country" = "codes"."country"
5) copie du résultat de la requête dans une feuille.

Je suis en train de le faire :slight_smile:

Bernard

Le 01/07/15 19:09, ftr écrivait :

J'ai un tableau composé de 2700 lignes et de 14 colonnes. Dans les lignes, il
y a 170 pays du monde avec un nombre variable d'années (ici : années avec
une élection législative) , dans les colonnes les caractéristiques des pays
et dans la première colonne le nom du pays.

Je cherche une manière simple de rajouter le code ISO 3166-1 du pays pour
les 44 pays européens (feuille liste codes iso) afin de concaténer
ultérieurement les informations dans le tableau avec celles dans d'autres
tableaux pour les mêmes pays.

Si j’exécute cette manipulation de manière manuelle il faut copier 2700
fois ces codes. Techniquement il s'agit ici du traitement d'une base de
données, mais je ne maîtrise pas ce composant de LO.

Je m'imagine qu'il faut créer une liste des noms des pays avec leur code ce
que j'ai fait (feuille Liste Codes Iso).
Mais comment les apparier avec la première feuille avec les 2700 lignes ??

Si vous pouvez m'indiquer où chercher je serais bien reconnaissant.

Merci par avance
ftr

La feuille d'origine: data
La feulile à apparier: liste codes iso

IDEA_VoterTurnout.ods
<http://nabble.documentfoundation.org/file/n4153322/IDEA_VoterTurnout.ods>

Bonsoir,

j'ai procédé avec les seules fonctions de Calc.

La feuille [data] a été enrichie :
- d'une colonne Continent en A, où j'ai reporté le nom Europe
- d'une table de correspondance Pays/code ISO, nommée EURcodtable
- d'une colonne "CountryCode" en P

Dans celle-ci, la formule
=SI(A2="Europe";INDEX(EURcodtable;EQUIV(B2;$S$2:$S$45;0);1);"")
ramène le code ISO pour les seuls pays d'Europe,
insère une valeur vide pour les autres.

S'il y a besoin d'intégrer les autres continents, l'adaptation est simple
=SI(A2<>"";INDEX(EURcodtable;EQUIV(B2;$S$2:$S$45;0);1);"")
chaque fois qu'un nom de continent sera présent, on obtiendra le code ISO

Remarques
La table de correspondance EURcodtable peut très bien se trouver dans sa propre feuille.
La formule EQUIV ne semble pas accepter les noms de zone ; il m'a fallu mettre les références de cellule. C'est moins lisible et moins ergonomique.

C_Lucien

Bon, j'ai vu que c'était fait en Calc pur et dur :slight_smile: mais tant pis, j'envoie ma bidouille avec Base :slight_smile:

La base intermédiaire avec jointure externe [1] : dbcountry.odb <http://www.cjoint.com/c/EGbsFxbcFDh>
Le classeur avec le résultat de la jointure (feuille 5) : IDEA_VoterTurnout.ods <http://www.cjoint.com/c/EGbsG4PvR1h>

C'est du vite fait, j'espère que ça va aller...

Bernard

[1] SELECT * FROM "data" LEFT OUTER JOIN "codes" ON "data"."country" = "codes"."country"

LC_Libre
Serait il possible, par curiosité et culture personnelle, d'avoir accès au
classeur ?
d'avance un grand merci

Le 01/07/15 20:51, catof écrivait :

LC_Libre
Serait il possible, par curiosité et culture personnelle, d'avoir accès au
classeur ?
d'avance un grand merci

Bonsoir,

bien volontiers
http://www.cjoint.com/c/EGbtVc8BEXz

NB : j'ai dû compléter la liste initiale des codes ISO de pays, les manquants se manifestant par la valeur #N/D!

C_Lucien

merci beaucoup

Merci bien pour les tuyaux, je vais bien les essayer parce que le
problème arrive régulièrement.
-ftr