J'ai rencontré quelque chose que je ne peux pas vraiment expliquer en essayant de filtrer une énorme pile de données en utilisant le filtre avancé ...
J'ai eu un document avec des centaines de milliers de lignes (.xlsb) contenant tout un tas de produits avec leurs différents attributs. Un élément, une ligne, les attributs dans les colonnes. Ce que je voulais faire était de filtrer (supprimer de la liste) les éléments qui avaient un Y dans l'une des colonnes (l'autre option étant N), ainsi que les éléments qui étaient l'une des marques du couple (une autre colonne) et également dans une catégorie donnée (encore une autre colonne). En d'autres termes, je voulais supprimer tout ce qui avait un Y dans la colonne V et tout ce qui avait AAA dans la colonne C et 1A2B dans la colonne D.
J'ai d'abord créé le filtre en Y: j'ai mis = "= N" dans la colonne en haut et l'ai testé, et cela a très bien fonctionné. Tout avec Y dans cette colonne a été supprimé, jusqu'ici tout va bien.
J'ai ensuite ajouté une marque (AAA) dans sa propre colonne, mis <> 1A2B dans une autre et rediffusé le filtre. Au lieu de filtrer d'abord la première ligne (les Y) puis, parmi les éléments restants, de filtrer ceux qui étaient de la marque donnée (AAA) et de la catégorie donnée (1A2B), il a complètement ignoré la deuxième ligne. Rien n'a changé.
J'ai même essayé d'ajouter = "= N" dans la colonne V juste pour m'en assurer, mais cela ne changeait rien.
Le filtre de catégorie, en soi, fonctionne comme prévu. Le filtre Y / N, en soi, fonctionne également bien. Mais pour une raison quelconque, seul le filtre plus large est exécuté. Des idées?
Pour que cela fonctionne enfin, c’est en listant individuellement toutes les marques possibles (AAA, AAB, AAC, etc.), avec = "= N" dans la colonne V. De cette manière, cela "permet" individuellement à chaque marque comportant un N , mais c’est loin d’être une solution idéale. J'espérais que seul le = "= N" dans la ligne permettrait d'atteindre le même but, mais apparemment pas.
Réponses:
Plutôt que d'essayer de le faire avec des filtres horriblement complexes, il vaut mieux, en supposant que vous soyez libre d'ajouter une autre colonne, de créer une colonne avec une formule qui équivaut à vrai ou faux (ou Y / N ou quelle que soit votre préférence). Ensuite, vous pouvez appliquer le filtre à cette colonne très facilement.
la source
Je pense avoir compris ce que vous essayez de faire avec le filtre avancé.
Vous devez utiliser une seule ligne pour vos critères, car chaque ligne est un OU avec les autres. Cela signifie que lorsque vous effectuez le filtre avancé, vous obtenez une ligne si elle correspond aux critères de l'une des lignes de critères. Si vous souhaitez un critère dépendant, tel que "PAS ET", vous devez le placer dans une nouvelle colonne et faire en sorte que votre formule fasse référence à votre première ligne de données.
Dans la maquette suivante, nous voulons ceux avec "N" dans la colonne B et s’ils ont "AAA" dans la colonne C, nous ne le voulons que s’il n’a pas "1A2B" dans la colonne D. Donc, dans la colonne E, nous mettez une nouvelle formule qui se lit comme suit:
=NOT(AND(C5="AAA",D5="1A2B"))
Si vous faites cela et exécutez le filtre avancé, vous filtrerez les rangées 5 à 7 pour avoir Beta = Y et vous filtrerez également les rangées 9 et 13.
Votre autre option est d’avoir trois rangées de critères (
<>AAA
&<>1A2B
,AAA
&<>1A2B
,<>AAA
&1A2B
), mais les échelles sont très mauvaises et difficiles à manier.la source