Robert a une série de nombres dans la colonne A qui vont de 1 à 100. Il aimerait extraire uniquement les valeurs comprises entre 65 et 100 inclusivement, et les placer dans la colonne B. Il se demande s’il existe un moyen de le faire facilement.

La réponse courte est qu’il existe un moyen très simple de le faire, à condition que cela ne vous dérange pas de trier la liste des nombres. Suivez ces étapes:

  1. Sélectionnez une cellule dans la colonne A. (La cellule que vous sélectionnez n’a pas vraiment d’importance, du moment que c’est l’une des cellules qui contient un nombre.)

  2. Affichez l’onglet Données du ruban.

  3. Cliquez sur l’outil Trier du plus petit au plus grand, dans le groupe Trier et filtrer.

Excel trie tous les nombres de la colonne.

  1. Sélectionnez les nombres que vous souhaitez mettre dans la colonne B.

  2. Appuyez sur Ctrl + X pour couper les cellules dans le Presse-papiers.

  3. Sélectionnez la cellule B1 (ou la première cellule de la colonne B où vous souhaitez que les valeurs apparaissent).

  4. Appuyez sur Ctrl + V pour coller les cellules dans la colonne.

C’est ça; vous avez maintenant les cellules souhaitées dans la colonne B. Si vous vouliez simplement copier les cellules, à l’étape 5, vous auriez pu appuyer sur Ctrl + C à la place.

Si vous avez besoin de conserver les valeurs de la colonne A dans leur ordre d’origine (moins les valeurs que vous souhaitez déplacer), vous pouvez le faire en utilisant la colonne B comme colonne «placer la rétention». À droite de la première valeur de la colonne A, mettez la valeur 1. Ensuite, en dessous de celle de la colonne B, mettez un 2, puis un 3, et ainsi de suite, jusqu’à ce que chaque valeur de la colonne A ait une valeur correspondante dans la colonne B qui indique l’emplacement des numéros. Ensuite, suivez ces étapes:

  1. Sélectionnez une cellule dans la colonne A. (La cellule que vous sélectionnez n’a pas vraiment d’importance, du moment que c’est l’une des cellules qui contient un nombre.)

  2. Affichez l’onglet Données du ruban.

  3. Cliquez sur l’outil Trier du plus petit au plus grand, dans le groupe Trier et filtrer.

Excel trie tous les nombres de la colonne.

  1. Sélectionnez les nombres de la colonne A que vous souhaitez déplacer, ainsi que les nombres à leur droite dans la colonne B.

  2. Appuyez sur Ctrl + X pour couper les cellules dans le Presse-papiers.

  3. Sélectionnez la cellule D1. (Il est important de sélectionner la cellule D1 car vous devez laisser la colonne C vide.)

  4. Appuyez sur Ctrl + V pour coller les cellules dans les colonnes D et E.

  5. Sélectionnez une cellule dans la colonne B.

  6. Affichez l’onglet Données du ruban.

  7. Cliquez sur l’outil Trier du plus petit au plus grand, dans le groupe Trier et filtrer.

Excel trie tous les nombres de la colonne en fonction des valeurs de la colonne B.

  1. Sélectionnez une cellule dans la colonne E.

  2. L’onglet Données du ruban doit toujours être affiché.

  3. Cliquez sur l’outil Trier du plus petit au plus grand, dans le groupe Trier et filtrer.

Excel trie tous les nombres de la colonne en fonction des valeurs de la colonne E.

  1. Supprimer les colonnes B, C et E.

À ce stade, les valeurs des colonnes A et B reflètent leur ordre d’origine, à partir du moment où elles étaient toutes dans la colonne A.

Une autre façon de déplacer les cellules consiste à utiliser les capacités de filtrage d’Excel. Suivez ces étapes:

  1. Sélectionnez une cellule dans la colonne A. (La cellule que vous sélectionnez n’a pas vraiment d’importance, du moment que c’est l’une des cellules qui contient un nombre.)

  2. Affichez l’onglet Données du ruban.

  3. Cliquez sur l’outil Filtre. Excel ajoute une flèche de liste déroulante de filtre sur le côté droit de l’en-tête de la colonne A.

  4. Cliquez sur la flèche vers le bas et choisissez Filtres numériques | Entre. Excel affiche la boîte de dialogue Filtre automatique personnalisé. (Voir la figure 1.)

  5. Dans la zone Supérieur ou égal à, entrez 65.

  6. Dans la zone Inférieur ou égal à, entrez 100.

  7. Cliquez sur OK. Excel limite ce qui est affiché aux seules lignes qui répondent aux critères que vous avez spécifiés aux étapes 4 à 6.

  8. Sélectionnez les cellules affichées.

  9. Appuyez sur Ctrl + C pour copier les cellules dans le Presse-papiers.

  10. Sélectionnez la cellule B1 (ou la première cellule de la colonne B où vous souhaitez que les valeurs apparaissent).

  11. Appuyez sur Ctrl + V pour coller les cellules dans la colonne.

  12. Sélectionnez l’une des cellules de la colonne A.

  13. Cliquez à nouveau sur l’outil Filtre. (L’onglet Données du ruban doit toujours être affiché.) Excel supprime le filtre que vous avez précédemment appliqué.

Vous pouvez également utiliser les formules de la colonne B pour extraire les valeurs qui se trouvent dans la plage souhaitée. Un moyen simple de le faire est de placer cette formule dans la cellule B1:

=IF(AND(A1>=65, A1<=100),A1,"")

Copiez la formule aussi loin que nécessaire dans la colonne B et vous vous retrouverez avec toutes les valeurs comprises entre 65 et 100 inclus, étant « copiées »

dans la colonne B. Si la valeur est en dehors de cette plage, la cellule de la colonne B est laissée vide.

En supposant que vous ne voulez pas de cellules vides dans la colonne B, vous pouvez utiliser une formule matricielle pour récupérer les valeurs. Si vos valeurs sont dans la plage A1: A500, placez ce qui suit dans la cellule B1:

=IFERROR(INDEX(A$1:A$500,SMALL(IF(A$1:A$500>=65,ROW($1:$500)),ROW())),"")

Entrez-le en utilisant Ctrl + Maj + Entrée, puis copiez la formule aussi loin que vous le souhaitez.

Il existe bien sûr des solutions macro-basées que vous pouvez utiliser. Celles-ci sont utiles si vous devez effectuer cette tâche un peu avec des données que vous récupérez à partir d’une source externe. Voici un exemple simple de macro que vous pouvez utiliser:

Sub ExtractValues1()

Dim x As Integer

x = 1     For Each cell In Selection         If cell.Value >= 65 And cell.Value <= 100 Then             Cells(x, 2) = cell.Value             x = x + 1         End If     Next cell End Sub

Vous utilisez la macro en sélectionnant les cellules que vous souhaitez évaluer dans la colonne A, puis en l’exécutant. Il examine chaque cellule et copie la valeur dans la colonne B. La valeur d’origine de la colonne A reste inchangée.

Pour plus de flexibilité, vous pouvez demander à l’utilisateur les valeurs inférieure et supérieure, comme indiqué dans cette macro:

Sub ExtractValues2()

Dim iLowVal As Integer     Dim iHighVal As Integer

iLowVal = InputBox("Lowest value wanted?")

iHighVal = InputBox("Highest value wanted?")



For Each cell In Range("A:A")

If cell.Value <= iHighVal And cell.Value >= iLowVal Then             ActiveCell.Value = cell.Value             ActiveCell.Offset(1, 0).Activate         End If     Next End Sub

Avant d’exécuter la macro, sélectionnez la cellule en haut de la plage dans laquelle vous souhaitez placer les valeurs extraites. Rien dans la colonne A n’est affecté; seules les valeurs comprises entre les plages inférieure et supérieure sont copiées vers le nouvel emplacement.

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (13397) s’applique à Microsoft Excel 2007, 2010, 2013, 2016, 2019 et Excel dans Office 365.