Excel : comparer 2 tableaux facilement

Bonjour à tous

Pour le travail, j'ai un soucis, qui risque de me prendre des heures si je le fais à la main

J'ai 2 tableaux différents (dans mon exemple j'ai mis des fruits et légumes), dont je dois comparer les écarts entre les données d'une période à l'autre

Mais les 2 tableaux n'ont pas forcemment les mêmes lignes en entrées. Par exemple, dans mon permier tableau figurent certains fruits non présents dans le 2eme, et inversement. Or j'aimerais quand même les faire apparaitre dans ma formule d'écart

Mais en réalité ces tableaux ont des centaines de lignes. J'ai commencé à faire à la main, je n'ose imaginer poursuivre

Mon exemple sera plus clair que moi j'espère

merci beaucoup pour votre aide

Très bonne journée

Nathalie

Bonjour Nathalie,

Pour te simplifier la tâche pourquoi ne pas copier / coller tes deux colonnes de noms de légumes à la suite dans ton tableau de comparaison, puis de supprimer les doublons :

Sélectionner toute la plage où se trouve les doublons

Dans l'onglet "Donnée" tu clique sur "supprimer les doublons"

Comme cela, pour tes noms de légumes tu n'a plus rien à saisir à la main.

Ensuite, pour tes comparaisons, je t'invite à utiliser la RECHERCHEV (à coller dans ta cellule L7 puis dérouler) :

SIERREUR(RECHERCHEV(K7;D7:E16;2;FAUX)-RECHERCHEV(K7;G7:H17;2;FAUX);SIERREUR(RECHERCHEV(K7;D7:E16;2;FAUX);RECHERCHEV(K7;G7:H17;2;FAUX)))

Cette formule prend en compte le fais qu'il puisse y avoir un nom de légume dans un de tes tableaux mais pas dans l'autre, et si les noms de légumes sont dans les deux tableaux de donnée alors sa ferra la différence.

La seule chose que tu a besoin de faire c'est de trier par ordre alphabétique le nom de tes légumes dans tes tableaux de donnée

Bah oui, l'extraction sans doublon, je me sens bête d'un coup devant une telle évidence

Merci beaucoup d'avoir pris le temps de me débloquer !

Très bonne journée

Nathalie

Bon bah super si sa te conviens

Si tu a d'autre problème, n'hésite pas à revenir vers nous !

Te souhaitant également une agréable journée

Bonsoir à tous,

Une version VBA simplement

Option Explicit
Sub test()
Dim a, w(), i As Long, dico As Object
    Set dico = CreateObject("Scripting.Dictionary")
    dico.CompareMode = 1
    dico("a") = Array("Données totales", "Ecart")
    With Sheets("Feuil1")
        a = .Range("d6").CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            dico(a(i, 1)) = Array(a(i, 1), a(i, 2))
        Next
        a = .Range("g6").CurrentRegion.Value
        For i = 2 To UBound(a, 1)
            If dico.exists(a(i, 1)) Then
                w = dico(a(i, 1))
            Else
                ReDim w(0 To 1)
                w(0) = a(i, 1)
            End If
            w(1) = w(1) - a(i, 2)
            dico(a(i, 1)) = w
        Next
        With .Range("k6")
            .CurrentRegion.ClearContents
            With .Resize(dico.Count, UBound(Application.Index(dico.items, 0, 0), 2))
                .Value = Application.Index(dico.items, 0, 0)
            End With
        End With
    End With
    Set dico = Nothing
End Sub

Attention aux espaces superflus en fin de chaine

klin89

Rechercher des sujets similaires à "comparer tableaux facilement"