Comparaison par paire de colonne

Bonjour,

Je suis nouvelle sur ce forum et j'espere etre assez claire dans ma question.

Alors voila,

J'ai Excel 2010 et 164 colonnes sur mon feuillet.

Je voudrais comparer toutes ces colonnes deux a deux,, faire toutes les comparaisons possibles (1ere colonne avec la 2eme, la 3eme, la 4eme... jusqu'a la 164eme; puis 2eme colonne avec la 3eme, la 4eme, la 5eme... jusqu'a la 164eme; puis 3eme colonne avec la 4eme, la 5eme, la 6eme et ainsi de suite!)

J'ai deja la formule que j'utiliserai pour comparer mes colonnes [=IF($A1=0,"?",IF(B1=0,"?",IF($A1=B1,0,1)))]

Mon probleme est que je ne trouve pas de maniere rapide d'etendre cette formule pour toutes les comparaisons possibles. J'ai commence a le faire manuellement mais cela me prendrait 3-4h au bas mot...

Connaissez-vous une solution ?

N'hesiter pas a me poser des questions pour plus de details si necessaire! Je serai ravie d'avoir quelques conseils a ce sujet

D'avance, merci et je tiens a m'excuser de l'absence d'accent dans mon message mais je n'en ai malheureusement pas sur mon clavier d''ordinateur!

Bonsoir et Bienvenue sur XLP,

Avec un fichier exemple de 10 colonnes et quelques lignes et les résultats que tu souhaites obtenir, on peut peut-être t'aider.

@ te relire

@ +

Merci et desole pour cette reponse tardive mais ma connection internet laisse a desirer...

Je vous joins un fichier excel exemple ou la premiere colonne a ete comparee avec les autres :

44excel-exemple.xlsx (25.11 Ko)

Il faudrait donc que je continue de comparer les colonnes entre elles en commencant par exemple a comparer la deuxieme colonne avec les autres (a part la premiere puisque la comparaison a deja ete faite) puis la troisieme, la quatrieme, etc...

N'hesitez pas si vous avez d'autres questions!

Bonjour!

Je me permet de relancer le sujet. Quelqu'un a-t-il une idee ?

D'avance, merci

Bonsoir,

tu n'as pas dit que veux tu déduire de cette comparaison...

Moi j'ai demandé les résultats souhaités et pas des formules dans une plage...

Refais ton fichier pour qu'il soit compréhensible.

C'est trop pour comparer ce colonnes sur des autres colonnes.

@ +

Bonsoir,

En fait, en essayant de faire simple, je voudrais savoir si les celulles de mes colonnes sont identiques (dans ce cas la, ma formule me met un 0) ou differentes (la formule met un 1).

Dans le fichier exemple ci dessous, il y a 5 colonnes (avec des lettres dans chaque cellule : A, B, C, D ou E). J'ai compare les colonnes une a une pour savoir si leurs celulles avaient des lettres identiques ou differentes (a chaque rangee)

J'ai compare la colonne 1 avec la 2, la 3, la 4 et la 5; la colonne 2 avec la 3, la 4 et la 5 (pas la 1 parce que la comparaison avait deja ete faite), la colonne 3 avec les colonnes 4 et 5 et enfin, la colonne 4 avec la 5.

26excel-exemple.xlsx (24.17 Ko)

Pour ce faire, j'ai du change la formule manuellement a chaque fois que la colonne de depart changeait (c.f. etoiles rouges dans le fichier exemple). Pour ce fichier, ca va : il n'y a que 5 colonnes et 10 comparaisons a faire; mais je voudrais faire la meme chose pour 164 colonnes et plus de 13000 comparaisons.

Je voudrais donc savoir s'il y a une maniere plus rapide, automatisee de faire ca.

J'espere avoir ete assez claire, si non, faites le moi savoir!

Bonsoir,

Voir si ça te convient...

en H2,

=SI(ENT((COLONNES($H:H)-1)/COLONNES(Zone))<MOD(COLONNES($H:H)-1;COLONNES(Zone));N(DECALER($A2;;ENT((COLONNES($H:H)-1)/COLONNES(Zone)))<>DECALER($A2;;MOD(COLONNES($H:H)-1;COLONNES(Zone))));"")

@ tirer vers le bas et vers la droite.

les colonnes qui ne vont pas être pris en compte, elles sont vides alors je les ai mis en Gris par Mfc...

Je peux le faire sans avoir aucune colonne vide, mais c'est une casse tête et surtout presque 13000 colonnes il vaut mieux de le faire en VBA...

@ +

26agathej.xlsx (24.53 Ko)

Bonsoir,

Avec ma formule, tu auras besoin de 26569+164 colonnes...

Mais jusqu’à le moment tu n'as pas dit que souhaites après cette comparaison est ce que le nombre de 1 et le nombre 0...

Car si oui peut être un code VBA peut te donner le résultat directement sans passer par ces 13000 colonnes.

@ +

Bonjour,

Merci beaucoup pour ta reponse!

J'ai essaye la formule sur mes colonnes. elle fonctionne mais j'ai un message d'erreur :

"not enough system resources to display completely"

Il doit y avoir trop de cellules dans le fichier.

Y a-t-il un moyen d'augmenter le nombre de cellule d'un feuillet ?

En fait, je voudrais calculer le nombre moyen de 1 par colonne en utilisant la formule : nombre de 1/nombre de cellules analysees (= nombre de 0+ nombre de 1). Au final, je voudrais connaitre le nombre moyen de 1 dans tout le fichier.

J'ai complete le fichier exemple pour qu'il soit plus proche de ce que je voudrais, j'y ai aussi ajoute le cas ou il a des cellules avec des points d'interrogation car je n'en avais pas parle auparavant.

17excel-exemple.xlsx (21.07 Ko)

Afin d'arriver a mon but, j'ai besoin de connaitre pour chaque colone:

  • le nombre de cellules differentes (nombre de 1)
    le nombre de cellules identiques (nombre de 0)
    (le nombre de cellules ou il y a des points d'interrogation)

D'avance merci,

Agathe

Bonsoir

Un essai avec une macro

Je ne sais pas le temps qu'elle mettra pour comparer les 164 colonnes entre elles

Merci pour cette macro! Je viens de l'essayer mais malheureusement, je recois deux messages d'erreurs:

  • "Excel ran out of resources while attempting to calculate one or more formulas. As a result, these formulas cannot be calculated"
    "Run-time error '1004': Application-defined or object-defined error"

Pour la deuxieme erreur, quand je fais "debug", il me surligne un passage de la macro:

.Formula = "=IF(OR(" & Cells(1, I).Address(rowabsolute:=False, columnabsolute:=False) & _

"=0," & Cells(1, K).Address(rowabsolute:=False, columnabsolute:=False) & "=0),""?"",IF(" & _

Cells(1, I).Address(rowabsolute:=False, columnabsolute:=False) & "=" & _

Cells(1, K).Address(rowabsolute:=False, columnabsolute:=False) & ",0,1))"

La macro reussit en tout cas a aller jusqu'a la comparaison 24-48. Elle met 10 minutes environ pour arriver jusque la.

Voila, je vais essayer de faire l'analyse par petits bouts pour l'instant, a l'aide de la macro!

Bonjour

D'après la traduction de ton message d'erreur

"Excel a manqué de ressources tout en essayant de calculer une ou plusieurs formules. Par conséquent, ces formules ne peut être calculé"

"Erreur d'exécution '1004 ': définie par l'application ou par l'objet erreur"

Trop de formules ?

A tester

Juste après la formule que tu indiques il y a une ligne mise en remarque, supprimes la remarque

      With Cells(1, Colonne).Resize(NbLig, 1)
        .Formula = "=IF(OR(" & Cells(1, I).Address(rowabsolute:=False, columnabsolute:=False) & _
                    "=0," & Cells(1, K).Address(rowabsolute:=False, columnabsolute:=False) & "=0),""?"",IF(" & _
                    Cells(1, I).Address(rowabsolute:=False, columnabsolute:=False) & "=" & _
                    Cells(1, K).Address(rowabsolute:=False, columnabsolute:=False) & ",0,1))"
        .Value = .Value
      End With

Cela enlève les formules dans la colonne mais pas le résultat

Je n'ai pas d'autre solution

PS: Peux-tu indiquer le nombre de lignes de ton tableau ainsi que le nombre de colonnes traitées avant le plantage

Merci

Bonjour,

Le tableau fait 4693 lignes et 3716 colonnes. J'ai refait marche la macro et elle a ete plus loin cette fois ci (comparaison 24-77). J'ai essaye d'enlever la ligne .Value = .Value mais ca n'a rien change, les formules ont ete gardees.

En meme temps, comme c'est un commentaire, ca n'a pas d'impact sur la macro normalement, si ?

Ai-je bien compris ce qu'il fallait faire ?

D'avance, merci

Agathe

Bonjour

AgatheJ a écrit :

Ai-je bien compris ce qu'il fallait faire ?

Hummm pas trop mais pas ta faute j'explique mal

Banzai64 a écrit :

Juste après la formule que tu indiques il y a une ligne mise en remarque, supprimes la remarque

c'est à dire tu enlèves l'apostrophe devant

Avant tu as

'.Value = .Value

Après tu as

.Value = .Value

Ah ok, autant pour moi. Je refais une tentative alors.

Bonjour,

Desole de repondre si tard mais le temps semble filer comme l'eclair!

Je tenais a dire merci a Banzai64 pour cette macro.

Apres avoir enleve l'apostrophe devant "'.Value = .Value", la macro a tres bien fonctionnee!

Merci encore, je met le sujet en resolu!

Rechercher des sujets similaires à "comparaison paire colonne"