J'ai un classeur qui a une feuille de calcul avec 14 colonnes de données (A - N). Je souhaite extraire certaines de ces données et les stocker dans un autre classeur.
Je veux extraire uniquement les colonnes A, B, F, H, I, K et L; et uniquement à partir de lignes où la colonne H contient HCC .
Comment puis je faire ça?
Réponses:
En savoir plus sur les tableaux croisés dynamiques est une excellente idée, mais vous pouvez également le faire avec une formule matricielle.
Placez cette formule dans la première cellule de la colonne A du deuxième classeur où vous souhaitez que les données apparaissent:
=IFERROR(INDEX([Workbook1]Sheet1!A:A,SMALL(IF([Workbook1]Sheet1!$H:$H="HCC",ROW([Workbook1]Sheet1!$H:$H)),ROW())),"")
Remarques:
[Workbook1]Sheet1!A:A
" `par les noms de classeur et de feuille actuels. Pour ce faire, la méthode la plus simple consiste à accéder à l’autre classeur après avoir entré la première partie de la formule, puis à cliquer sur le «A» situé en haut de la colonne A.[Workbook1]Sheet1!$H:$H
". Vous devrez ajouter les $.ROW()
" par "ROW() - n
", où n correspond à 1 moins que le numéro de ligne dans lequel vous insérez la formule. Si vous êtes dans la ligne 1, vous n'avez pas à la modifier.Maintenant, remplissez la formule aussi loin ou plus loin que vous vous attendez à ce que des données soient disponibles à l'avenir. Enfin, copiez la plage sélectionnée et collez-la dans la première cellule de toutes les autres colonnes dans lesquelles vous souhaitez extraire des données du classeur 1. La formule remplira les espaces lorsqu'elle ne contient plus de valeurs calculées.
La semaine prochaine, si vous avez plus (ou moins) de lignes de données dans le premier classeur, les données seront toujours copiées correctement dans le deuxième classeur.
Comment cela fonctionne: Le
IF()
vérificateur interne vérifie où la colonne H est égale à "HCC" et renvoie un tableau des numéros de ligne où la valeur est True et "FALSE
" où ce n'est pas le cas.SMALL()
prend ce tableau et retourne les nombres dans l'ordre lorsque la formule est remplie.INDEX()
utilise ces nombres pour renvoyer les valeurs correspondantes de la colonne A. Enfin, lesIFERROR()
espaces sont insérés pour les erreurs générées, oùINDEX()
les nombres de lignes sont épuisés à mesure qu'ils sont remplis.J'espère que ça aide et bonne chance.
la source