Ignorer les doublons et créer une nouvelle liste de valeurs uniques dans Excel

j'ai une colonne de valeurs qui apparaissent souvent comme des doublons. Je dois créer une nouvelle colonne, de valeurs uniques basées sur la première colonne, comme suit:

Column A   Column B  
a          a
a          b
b          c
c
c

cette colonne B devra en fait apparaître sur une feuille différente, dans le même classeur, donc je suppose qu'elle devra fonctionner avec le format de style sheet2!A1 .

Je n'ai pas eu de chance avec les options de menu Données/Filtre car cela ne semble fonctionner que sur commande. J'ai besoin d' colonne B pour mettre à jour automatiquement chaque fois qu'une nouvelle valeur est entrée dans la colonne A.

64
demandé sur Willi Mentzel 2012-11-09 16:16:41

12 réponses

la réponse de Totero est correcte. Le lien est également très utile.

fondamentalement, la formule dont vous avez besoin est:

B2=INDEX($A:$A, MATCH(0, COUNTIF($B:B1, $A:$A), 0))

puis appuyez sur ctrl + shift + entrer (ou il ne fonctionnera pas en utilisant une formule de tableau).

Deux choses importantes à garder à l'esprit ici: La liste complète est dans les cellules A2:A20 , cette formule doit être collé dans la cellule B2 (pas B1 car cela vous donnera une référence circulaire). Deuxièmement, c'est une formule de tableau, de sorte que vous devez appuyer sur ctrl + shift + entrée ou il ne fonctionnera pas correctement.

53
répondu achaudhr 2015-11-17 15:45:30

il y a un bon guide pour faire ce ici .

essentiellement quelque chose de similaire à:

=INDEX(Sheet1!$A:$A, MATCH(0, COUNTIF($B:B1,Sheet!$A:$A), 0))
21
répondu Totero 2015-11-17 15:46:54

dans mon cas l'excel a été gelé en utilisant la formule de

B2 = INDEX($A$2:$A $ 20, MATCH (0, COUNTIF($B $1: B1, $ A$2:$a $ 20), 0))

parce qu'il y avait beaucoup de rangées (10000). Donc j'ai fait d'une autre façon que je montre ci-dessous.

j'ai copié ma liste originale pour une deuxième colonne, puis avec la fonction d'Excel "supprimer les doublons", je pourrais trouver la liste des valeurs uniques.

copié du site Web de Microsoft Office:

Select all the rows, including the column headers, in the list 

vous voulez filtrer.

cliquez sur la case supérieure gauche de la gamme, puis faites glisser jusqu'à la case inférieure droite.

On the Data menu, point to Filter, and then click Advanced Filter.
In the Advanced Filter dialog box, click Filter the list, in place.
Select the Unique records only check box, and then click OK.

la liste filtrée est affichée et les lignes dupliquées sont cachées.

On the Edit menu, click Office Clipboard.

le volet de tâche du Presse-papiers est affiché.

Make sure the filtered list is still selected, and then click Copy Copy button.

la liste filtrée est mis en surbrillance avec des contours limitants et la sélection apparaît comme un élément > > en haut du bloc-notes.

On the Data menu, point to Filter, and then click Show All.

la liste originale est affichée de nouveau.

Press the DELETE key.

la liste originale est supprimée.

In the Clipboard, click on the filtered list item.

la liste filtrée apparaît au même endroit que la liste originale.

Source: Site Web de Microsoft Office (LIEN SUPPRIMÉ, cause dead)

10
répondu Jesús Romera 2015-11-17 15:39:27

sur un colonne triée , vous pouvez également essayer cette idée:

B2=A2
B3=IFERROR(INDEX(A:A,MATCH(B2,A:A,1)+1),"")

B3 peut être collé vers le bas. Il en résultera 0, après le dernier match unique. Si cela n'est pas souhaité, mettez une déclaration IF autour pour exclure cela.

Edit:

plus facile qu'une instruction IF, au moins pour les valeurs textuelles:

B3=IFERROR(T(INDEX(A:A,MATCH(B2,A:A,1)+1)),"")
5
répondu Jook 2012-11-10 09:09:10

pour supprimer les doublons d'une colonne

  1. trier les valeurs dans la colonne A A - > Z
  2. sélectionnez colonne b
  3. si la colonne b est toujours sélectionnée, inscrivez

    =IF(TRIM(A1)=TRIM(A2),"",TRIM(A1))
    
  4. pendant que la colonne B est encore sélectionnée, sélectionnez Edit - > Fill - > Down (dans les versions plus récentes, sélectionnez simplement la cellule B1 et tirez la boîte extérieure pour étendre tout le chemin vers le bas dans la colonne)

Note : si la colonne B est sur une autre feuille, vous pouvez faire Sheet1!A1 et Sheet1!A2.

5
répondu Allen King 2016-08-19 18:56:39

dans le module feuille de travail pour la feuille contenant la liste:

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim rngDest As Range

    If Not Intersect(Target, Me.Columns(1)) Is Nothing Then

        Set rngDest = ThisWorkbook.Sheets("Sheet2").Range("A1")

        Me.Range(Me.Range("A2"), Me.Cells(Rows.Count, 1).End(xlUp)).AdvancedFilter _
            Action:=xlFilterCopy, CopyToRange:=rngDest, Unique:=True

    End If

End Sub
2
répondu Tim Williams 2012-11-09 21:56:21

j'ai une liste de noms de couleurs dans la gamme A2:A8, dans la colonne B je veux extraire une liste distincte de noms de couleurs.

suivre les étapes suivantes:

  • sélectionnez la cellule B2; écrivez la formule pour récupérer les valeurs uniques à partir d'une liste.
  • =IF(COUNTIF(A:A2,A2)=1,A2,””)
  • appuyez sur entrez sur votre clavier.
  • la fonction retournera le nom du premier couleur.
  • pour retourner la valeur pour le reste des cellules, copiez la même formule vers le bas. Pour copier la formule dans la gamme B3: B8, copier la formule dans la cellule B2 en appuyant sur la touche Ctrl+C sur votre clavier et coller dans la gamme B3:B8 en appuyant sur la touche Ctrl+V .
  • ici vous pouvez voir la sortie où nous avons la liste unique des noms de couleur.
2
répondu Hitesh Rathor 2015-11-17 15:44:08

donc pour cette tâche Classez D'abord vos données dans l'ordre de A à Z ou Z à A alors vous pouvez juste utiliser une formule simple comme indiqué ci-dessous:

=IF(A2=A3, "Duplicate", "Not Duplicate")

la formule ci-dessus indique que si les données de la colonne A2 ( A est la colonne et 2 est le numéro de ligne) sont similaires à celles de la colonne A3 (A est la colonne et 3 est le numéro de ligne), alors elles seront imprimées en double sinon elles ne seront pas imprimées en double.

permet de considérer un exemple, la colonne A se compose l'adresse e-mail dans laquelle certains sont dupliqués, donc dans Colonne 2, j'ai utilisé la formule indiquée ci-dessus qui, dans les résultats, m'a montré les deux doublons cellules une est la rangée 2 et la rangée 6.

un vous avez obtenu les données dupliquées il suffit de mettre un filtre sur votre feuille et rendre visible seulement les données dupliquées et supprimer toutes les données inutiles.

0
répondu Sachin Joshi 2016-03-22 11:48:18

honnêtement j'ai suivi ces exemples à un tee et ils n'ont tout simplement pas fonctionné. Ce que j'ai fini par faire après avoir lutté inutilement pour obtenir Excel de travailler était de simplement copier le contenu entier de ma colonne vers NotePad++ où j'ai été en mesure de trouver une solution facile en quelques minutes. Regardez ceci: supprimer les lignes dupliquées dans Notepad++

Edit: voici un bref aperçu de la façon de le faire dans TextFX:

Plugins - > Gestionnaire de Plugin -> Afficher le Gestionnaire de Plugin -> onglet Disponible -> TextFX -> Installer

après que TextFX est installé dans NotePad++, puis vous sélectionnez tout votre texte que vous voulez supprimer les doublons, puis assurez-vous de vérifier: TextFX - > outils TextFX - > trier les sorties seulement les lignes uniques

puis cliquez sur "ligne de tri sensible à la casse" ou "ligne de tri non sensible à la casse" et il effectuera le tri unique.

0
répondu brian cronrath 2017-05-23 11:46:24

Trouver ici mentionné ci-dessus de formule avec contrôle d'erreur

=IFERROR(INDEX($B:$B, MATCH(0,COUNTIF($D:D1, $B:$B), 0)),"") 

où: (B2:B9 est la donnée de colonne que vous voulez extraire les valeurs uniques, D1 est la cellule ci-dessus où votre formule est située)

0
répondu Sergey Ryvkin 2017-11-21 09:40:29

Tout ce que vous avez à faire est : Aller à l'onglet Données Choisir avancé en Tri & Filter Dans actions sélectionner : Copier vers un autre endroit si vous voulez une nouvelle liste - Copie de n'importe quel emplacement Dans la gamme de liste choisissez la liste que vous voulez obtenir les enregistrements off . Et la chose la plus importante est de vérifier : Dossiers uniques seulement .

0
répondu Abbas 2018-05-03 22:37:35

L'approche moderne consiste à considérer les cas où la colonne d'information provient d'un service web tel Qu'une source OData. Si vous avez besoin de générer un filtre sélectionner des champs à partir de données massives qui a répliqué des valeurs pour la colonne, considérez le code ci-dessous:

var CatalogURL = getweb(currenturl)
                 +"/_api/web/lists/getbytitle('Site%20Inventory%20and%20Assets')/items?$select=Expense_x0020_Type&$orderby=Expense_x0020_Type";

/* the column that is replicated, is ordered by <column_name> */

    OData.read(CatalogURL,
        function(data,request){

            var myhtml ="";
            var myValue ="";

            for(var i = 0; i < data.results.length; i++)
            {
                myValue = data.results[i].Expense_x0020_Type;

                if(i == 0)
                {
                        myhtml += "<option value='"+myValue+"'>"+myValue+"</option>";
                }
                else
                if(myValue != data.results[i-1].Expense_x0020_Type)
                {
                        myhtml += "<option value='"+myValue+"'>"+myValue+"</option>";

                }
                else
                {

                }


            }

            $("#mySelect1").append(myhtml);

        });
-6
répondu user4376001 2015-11-17 15:41:29