2013-05-10 6 views
-1

À l'aide de Microsoft Excel 2010, j'ai une feuille de calcul contenant des données de 5 fichiers de données différents (chacun ayant 14 colonnes, donc 70 colonnes ensemble). Ce que je dois faire, c'est de trier ces colonnes de cette manière: 1., 15., 29., 43., 57., 2., 16., ... etc.Comment échanger plusieurs colonnes

Fondamentalement, j'ai besoin de premières colonnes à partir de 5 fichiers de données dans une rangée, puis de deuxièmes colonnes etc. Existe-t-il dans Excel comment écrire cette séquence? J'ai essayé substitut, adresse et indirecte, mais sans aucun résultat. Je peux l'écrire manuellement, mais comme j'en ai besoin avec des feuilles de calcul différentes, j'ai pensé qu'il pourrait être utile d'avoir une commande réelle pour cela.

+0

De quel format sont les fichiers de données? Montrez-nous ce que vous avez essayé et il pourrait y avoir un moyen de vous orienter sur le bon chemin. –

Répondre

1

Démarrer en utilisant la formule suivante dans votre feuille de calcul finale:

=INDEX({"Sheet1";"Sheet2";"Sheet3";"Sheet4";"Sheet5"},MOD(COLUMN()-1,5)+1) 

Si vous collez cette formule sur chaque colonne de vous une feuille de calcul final, il fera un cycle Sheet1-Sheet5 de la colonne A-E etc. Vous Notez le nom de vos fichiers et la cible de la feuille de calcul, qui servira de base à la référence de la formule.

La formule fonctionne comme suit: avec le modulo appliqué sur la valeur de l'indice COLUMN, nous obtenons les chiffres de 1 à 5 qui sont utilisés par INDEX pour obtenir un élément de la constant array.

Maintenant que nous obtenons la base du vélo à travers les feuilles de calcul, nous avons maintenant besoin d'un groupe de 5 colonnes A, puis 5 colonnes B, etc. Nous utilisons ceci:

=QUOTIENT(COLUMN()-1, 5)+1 

Maintenant, nous pouvons les combiner avec ADDRESS:

=ADDRESS(ROW(),QUOTIENT(COLUMN()-1, 5)+1,1,1,INDEX({"Sheet1";"Sheet2";"Sheet3";"Sheet4";"Sheet5"},MOD(COLUMN()-1,5)+1)) 

Si vous collez et étendre la formule sur la gamme A1: J3, vous obtiendrez ces adresses:

Sheet1!$A$1 Sheet2!$A$1 Sheet3!$A$1 Sheet4!$A$1 Sheet5!$A$1 Sheet1!$B$1 Sheet2!$B$1 Sheet3!$B$1 Sheet4!$B$1 Sheet5!$B$1 
Sheet1!$A$2 Sheet2!$A$2 Sheet3!$A$2 Sheet4!$A$2 Sheet5!$A$2 Sheet1!$B$2 Sheet2!$B$2 Sheet3!$B$2 Sheet4!$B$2 Sheet5!$B$2 
Sheet1!$A$3 Sheet2!$A$3 Sheet3!$A$3 Sheet4!$A$3 Sheet5!$A$3 Sheet1!$B$3 Sheet2!$B$3 Sheet3!$B$3 Sheet4!$B$3 Sheet5!$B$3 

Finalement, nous enveloppent cette formule avec INDIRECT pour obtenir les données réelles:

=INDIRECT(ADDRESS(ROW(),QUOTIENT(COLUMN()-1, 5)+1,1,1,INDEX({"Sheet1";"Sheet2";"Sheet3";"Sheet4";"Sheet5"},MOD(COLUMN()-1,5)+1))) 
+0

Boud, c'est génial! Merci beaucoup. – Martin

1

Entrez 1 dans ColumnA, faites glisser sur la ColumnN avec Ctrl enfoncée. Sélectionnez les quatorze cellules et faites-le glisser jusqu'à ColumnBR avec Ctrl pressé. Triez les colonnes Plus petit à plus grand par la ligne avec les 1 etc.