Union de tables

  • Initiateur de la discussion Trompette83
  • Date de début
T

Trompette83

Guest
Bonsoir à tous et au forum,

Ma question me semble pourtant simple, mais je n'arrive pas à trouver de réponse. Vous jugerez de mon ignorance. :pinch: Voici:

J'ai une table en (au hasard) A2:A6 que je nomme Ta1.
Une autre table B8:B12 que je nomme Ta2.

Je souhaite obtenir une table Ta3 (toujours au hasard) en D15:D24 la concaténation des 2 tables, Ta1 puis Ta2 en utilisant une formule dans les cellules D15:D24. Quel est donc le signe d'union? Quelle est cette formule?

Plus difficile : Quel serait la formule pour supprimer les doublons entre Ta1 et Ta2 dans Ta3. Je ne cherche pas à supprimer les cellules vides ni à trier.

Merci pour votre aide toujours efficace
 

marco57

XLDnaute Occasionnel
Bonsoir Trompette et le Forum,
Je pense que ta question manque de précision:
Tu parles de deux tables TA1 et TA2. Dans ton exemple, elles sont chacune constituée de 5 cellules soit dix valeurs au total.
Ensuite tu parles de concatener : pour moi, concatener veut dire mettre bout à bout deux chaines de texte.
Tu parles également de la table TA3. Dans ton exemple, elle est constituée de 10 cellules.
Je pense que l'utilisation de copier-coller sans doublon serait plus appropriée si tu veux mettre dans TA3 les valeurs de TA1 puis celles de TA2 qui ne sont pas dans TA1.
Peux-tu confirmer ou infirmer mon interprétation.
Es-tu anti macro instructions?

Dans l'attente de ta réponse

Marco
 
T

Trompette83

Guest
Bonsoir marco,

Tu as presque tout compris mes explications pas très claires.

J'ai effectivement utilisé le mot concatèner puis union dans le sens des ensembles.
La table Ta3 doit etre le résultat de la mise bout à bout des tables Ta1 et Ta2.
Je souhaite une formule car je l'utiliserai ensuite dans d'autres formules déjà existantes.

Exemple :
Ta1 contient 'titi', 'tata', 'toto', 'tutu', 'tete'
Ta2 contient 'riri', 'toto', 'roro', 'rara', 'titi'
Je veuw obtenir
Ta3 : 'titi', 'tata', 'toto', 'tutu', 'tete', 'riri', 'toto', 'roro', 'rara', 'titi'
puis
Ta3 : 'titi', 'tata', 'toto', 'tutu', 'tete', 'riri', '', 'roro', 'rara', ''

Dans mon développement actuel, je n'ai jusqu'à présent pas utilisé de macro et souhaite éviter.
Je suis un peu étonné que l'on ne trouve pas dans Excel des formules existantes de manipulation des ensembles (union, intersection de tableaux)

Merci
 

Monique

Nous a quitté
Repose en paix
Bonjour,

Dans le fichier joint : mise bout à bout de 2 listes,
avec doublons,
sans doublons à partir de la 1ère 'concaténation'
sans doublons, directement à partir de Ta1 et Ta2
[file name=UnionTablesTrompette.zip size=3861]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/UnionTablesTrompette.zip[/file]
 

Pièces jointes

  • UnionTablesTrompette.zip
    3.8 KB · Affichages: 124

marco57

XLDnaute Occasionnel
Re Bonsoir à tous,

Aie, Aie, sans macro dur dur pour moi.
Je ne pense pas qu'il n'existe pas de fonction capable de te faire ça mais Excel est plein de surprises ... parfois bonnes.

Pourquoi parles-tu de deux tableaux?
Y a t'il des cas où tu veux les répétitions et des cas où tu veux les remplacer par des cellules vides?

Je peux probablement te concocter une ou deux fonctions personnalisées mais l'accepterais-tu?

Tu saisirais une formule du style =UnionTab(TA1;TA2) dans la 1ere cellule de ton tableau TA3.

Ton avis STP

Marco
 

marco57

XLDnaute Occasionnel
Bonsoir Monique, Trompette 83 et tous,

Super, Trompette, tu as de la chance, Monique passe par là avec de magnifiques FORMULES MATRICIELLES.

Attention, à la validation de ces formules, tu dois taper simultanément Ctrl, Maj et Entrée pour avoir les crochets en début et fin de formule.

Je vais donc pouvoir aller dormir au lieu de pianoter la moitié de la nuit.

Bon soir à toutes et tous

Marco
 
T

Trompette83

Guest
Merci à tout le monde pour ces réponses.
Monique a encore battu des records.

Ce que je pensais simple est en fait assez complexe.

Comme je le signalais précédemment, je vais utiliser cette formule dans d'autres formules. J'ai donc nommé la formule 'Direct sans doublons'
=IF(ROWS(H$15:H15)>SUM(1/COUNTIF(Ta1;Ta1))+SUM(1/COUNTIF(Ta2;Ta2));'';
IF(ROWS(H$15:H15)<=SUM(1/COUNTIF(Ta1;Ta1));
INDEX($A:$A;MIN(IF(COUNTIF(H$14:H14;Ta1)=0;ROW(Ta1))));
INDEX($B:$B;MIN(IF(COUNTIF(H$14:H14;Ta2)=0;ROW(Ta2))))))&''
et je l'ai testée : Elle ne fonctionne pas correctement.

Monique, comment peut on modifier cette formule nommée afin de la rendre utilisable sur une plage quelconque d'une feuille et intégrable dans d'autres formules?
 

Monique

Nous a quitté
Repose en paix
Re,

Elle est nommée par petits bouts :
=LIGNE(Ta1)
=SOMME(1/NB.SI(Ta1;Ta1))
A:A qui est en fait A1:A6
ça donne :
=SI(LIGNES(J$15:J15)>NTa1+NTa2;'';SI(LIGNES(J$15:J15)<=NTa1;INDEX(CTa1;MIN(SI(NB.SI(J$14:J14;Ta1)=0;LTa1)));INDEX(CTa2;MIN(SI(NB.SI(J$14:J14;Ta2)=0;LTa2)))))&''

Sur une autre colonne, elle est nommée entièrement.
Mais si tu veux pouvoir la coller n'importe où, je ne vois pas comment faire avec les fonctions Lignes(H$14:Hn)
et NB.SI(H$14:Hn;Ta2)

La formule entièrement nommée, elle ne peut démarrer qu'en ligne 15, pour l'instant
[file name=UnionTablesTrompetteV1.zip size=4787]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/UnionTablesTrompetteV1.zip[/file]

Message édité par: monique, à: 11/08/2005 23:54
 

Pièces jointes

  • UnionTablesTrompetteV1.zip
    4.7 KB · Affichages: 50

Monique

Nous a quitté
Repose en paix
Bonjour,

Dans le fichier joint, la formule nommée fonctionne
à partir de n'importe quelle ligne (sauf la ligne 1)
et aussi dans une autre feuille.
Un inconvénient : laisser vides toutes les cellules du dessus.

Ti a communiqué un 'truc' dernièrement
Pour qu'une formule nommée en Feuil3 par exemple puisse fonctionner dans une autre feuille,
remplacer Feuil3! par ! dans insertion - nom - définir
NBVAL(Feuil!M$1:M18) devient NBVAL(!M$1:M18)

Pour l'instant, il n'y a pas de possibilités de tables à longueur variable ni de cellules vides dans les tables.
Mais avant de compliquer la formule, est-ce que tu aurais besoin de l'une ou l'autre de ces possibilités ?
[file name=UnionTablesTrompetteV2.zip size=6031]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/UnionTablesTrompetteV2.zip[/file]
 

Pièces jointes

  • UnionTablesTrompetteV2.zip
    5.9 KB · Affichages: 46

Monique

Nous a quitté
Repose en paix
Re,

Ce n'était pas beaucoup plus compliqué.

Cette fois ci :
possibilité d'avoir des cellules vides tans les 2 tables,
ce ne sont pas vraiment des tables à longueur variables, mais elles sont nommées 'large'

La formule d'origine est allongée par l'ajout des conditions Si(Ta1<>'' Si(Ta2<>'' en 5 endroits.
Sinon, toujours le même inconvénient : on ne peut rien saisir dans les cellules du dessus.
[file name=UnionTablesTrompetteV3.zip size=4923]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/UnionTablesTrompetteV3.zip[/file]
 

Pièces jointes

  • UnionTablesTrompetteV3.zip
    4.8 KB · Affichages: 66

Discussions similaires

Statistiques des forums

Discussions
312 352
Messages
2 087 531
Membres
103 578
dernier inscrit
jd709