Comment supprimer doublons sur 2 colonnes avec inversion origine/destinatio
Bonjour à toutes/tous;
Mon problème est que je n'arrive à trouver comment simplifier / agréger une matrice origine-destination dans Excel à partir d'une liste de liens entre A (colonne 1) et B (colonne 2), chaque lien ayant une valeur de flux (colonne 3), selon l'exemple suivant :
Port1 Port2 DWT
Aabenraa Larvik 6213
Aabenraa Liepaja 3844
Aabenraa Sisimiut 9566
Larvik Aabenraa 514
Liepaja Aabenraa 1211
Sisimiut Aabenraa 8700
La liste fait dans les 100 000 lignes, et je voudrais fusionner les couples qui apparaissent plusieurs fois :
exemple : Aabenraa Larvik à remplacer par Larvik Aabenraa et faire la somme des deux au niveau de la colonne 3.
Or les couples A vers B et B vers A n'ont pas la même valeur. Il s'agit en fait d'une matrice orientée et je voudrais la "désorienter" pour ne garder que les flux A vers B uniques et supprimer / leur agréger les flux B vers A.
Cela devrait donner :
Port1 Port2 DWT
Aabenraa Larvik 6727
Aabenraa Liepaja 5055
Aabenraa Sisimiut 18266
Y a-t-il un moyen automatique, quitte à opérer plusieurs étapes pour y arriver ? J'ai essayer de CONCATENER Port1 et Port2 dans un sens et dans l'autre et appliquer NB.SI.ENS pour retrouver les doublons mais cela ne marche pas par à chaque fois qu'on inverse manuellement Port 2 et Port 1 le problème persiste.
Merci par avance de votre aide !!!
CD
Bonjour,
voilà une proposition !
Lis bien les commentaires avant d'exécuter la macro
Dis nous si cela te convient !
A plus !
Merci Braters c'est super !
Cela marche très bien en effet, et en plus cela fait la somme des doublons !
Dernière question : y a-t-il un moyen d'étendre la macro à toute la liste des lignes et si oui comment ? Je suis nul en codage ...
Car j'aurai à faire cette opération de multiples fois dans les mois qui viennent sur différents jeux de données ...
Encore merci et bonne soirée !!
César
Si les Port1 se trouvent sur la colonne A et les Port2 sur la colonne B, et les kilomètres sur la colonne C alors la macro va repérer directement la dernière cellule non vide et va connaitre la plage à analyser.
Exemple : Si tu colles un jeu de données allant de A2 à A6500, la macro analysera toutes les lignes sans besoin de modifier la macro.
Cependant, il faut que tes colonnes E, F et G soient vides avant l'exécution de la macro. (en dehors de la ligne 1 avec "Port1", "Port2" et "DWT")
Si tu veux relancer la macro avec un nouveau jeu de données, pense à effacer ou à copier autre part les données que tu avais dans ces colonnes car il faut vider ces 3 colonnes avant de relancer la macro.
Donc, selon l'aspect de ton fichier, tu viens coller manuellement les données correspondantes sur les colonnes A, B ou C, tu vérifies que les colonnes E, F et G soient vides, puis tu lances la macro, une fois terminée, tu copies/colles les données obtenues à l'endroit que tu veux et ainsi de suite.
J'espère être clair
A plus !
Encore merci beaucoup Braters,
J'ai essayé sur plusieurs milliers de lignes et ça marche très bien.
Cependant, si je comprends bien, une fois la macro terminée, on a :
- sur les 3 colonnes ABC les lignes restantes qui n'ont pas de doublon inversé
- sur les 3 colonnes EFG les doublons remis dans le bon sens avec la somme de la valeur qui était dans la colonne C
Il suffit donc pour avoir la matrice finale, de remettre ensemble les 6 colonnes sur 3 colonnes (toutes les lignes) et c'est parti pour l'analyse statistique etc. ?
Bonne soirée cher ami !
César
Cher Braters,
J'aimerais savoir comment lancer la même macro mais en conservant l'année du flux en question pour gagner du temps.
Je m'explique : chaque ligne est un flux de transport entre port1 et port 2. Elle est datée de 1977 à 2016. Or j'ai répété 40 fois l'opération macro pour chaque année, ce qui prend du temps.
Ainsi, serait-ce possible de lancer la macro sur l'ensemble des lignes toutes années confondues, mais en gardant l'année de référence dans une colonne à part ?
Voilà l'exemple mis à jour ci-dessous ; un grand merci par avance et bonne soirée,
CD
YEAR Port1 Port2 DWT
1977 Abu Dhabi Dubai 20312
1977 Adelaide Fremantle 90783
1977 Adelaide Melbourne 45840
1977 Algeciras Leghorn 44280
1977 Algeciras Rotterdam 78662
1978 Abidjan Dakar 183529
1978 Abidjan Douala 224514
1978 Abidjan Lome 52880
1978 Abidjan Monrovia 39948
1978 Aden Suez 51213
1978 Algeciras Barcelona 14338
1978 Algeciras Leghorn 72451
1978 Algeciras Naples 17000
- sur les 3 colonnes ABC les lignes restantes qui n'ont pas de doublon inversé
- sur les 3 colonnes EFG les doublons remis dans le bon sens avec la somme de la valeur qui était dans la colonne C
Il suffit donc pour avoir la matrice finale, de remettre ensemble les 6 colonnes sur 3 colonnes (toutes les lignes) et c'est parti pour l'analyse statistique etc. ?
Exactement !
Pour ton second problème, je te laisse essayer le fichier joint.
A plus !
Merci c'est nickel chrome, ça me sauve des heures !
Bonne journée,
Cesar