Question

J'ai une feuille (allons-y avec des vins à titre d'exemple) qui répertorie chaque bouteille de vin dans ma cave, quand je l'ai acheté, combien j'ai payé etc.

Il y a une colonne qui décrit le vin dans les balises séparées par des virgules tels que « Fruité, blanc ».

I ai créé un tableau croisé dynamique à partir de ces données, à la présente description en tant que colonne de filtre. Cependant, je ne peux pas filtrer par « White ». Je dois trouver toutes sortes qui contient « Blanc » comme « sec, blanc », « blanc, croquant » etc.

Être à partir d'un fond SGBDR, mon inclination naturelle est de mettre les balises dans leur propre table calée contre la ligne de vin, donc il y a des lignes zéro ou plus-étiquette par ligne de vin.

Comment, comment diable puis-je utiliser pour filtrer les lignes de vin?

Était-ce utile?

La solution

Oui, vous pouvez le faire dans Excel et les champs de description peut rester comme « sec, blanc » etc que vous n'avez pas besoin de diviser les valeurs séparées par des virgules.

Disons que la source de table comprend une colonne de texte pour la description, une colonne numérique pour la valeur et une colonne de numéro pour l'année d'acquisition.

Votre pivot est configuré avec le suivantes

  • Les champs: Description, Valeur et année d'acquisition.

  • étiquettes de colonne: Année Bought

  • Étiquettes de ligne Description
  • Somme des valeurs: Somme de la valeur

Il y a un menu déroulant filtre étiquette sur les étiquettes de ligne - cliquez sur ce point et il devrait y avoir une option pour sélectionner Filtres Label. Sélectionnez cette option puis sélectionnez Contient. Vous pouvez entrer dire « blanc » qui sélectionnera toutes vos descriptions qui contiennent par exemple blanc "Sec, blanc", "blanc, Crisp". Le filtre comprend? pour représenter un seul caractère et * pour représenter une série de caractères.

Il existe des filtres d'étiquettes similaires pour « commence par » et « se termine par » ainsi que la négation là.

J'ai essayé dans Excel 2007 et il devrait également travailler en 2003. Je pense que dans Excel 2003, vous pouvez même combiner les filtres par exemple contient « blanc » et ne contient pas « Dry », mais en 2007, je ne pouvais pas trouver un moyen de le faire.

Autres conseils

Pardonnez-moi si je suis une lapalissade, mais la raison pour laquelle vous avez des problèmes est que la colonne de description est pas 1NF, et l'interface de pivot Excel est pas assez souple pour permettre la recherche basée sur des modèles.

L'option la plus simple sera de normaliser le CSV dans une série de colonnes, dont chacune représente un seul attribut - une colonne pour la couleur du vin, l'une pour la douceur, l'un pour le pays d'origine, etc. - et appliquer le filtre à travers plusieurs colonnes. Toutefois, si (comme votre commentaire sur la question suggère) le vin est une métaphore de votre vrai problème, vous ne pouvez pas avoir le luxe de revisiter la conception des données source.

Une autre possibilité pourrait être d'utiliser une macro (ou une requête de base de données - Je ne suis pas clair de votre question de savoir si vous avez mis en œuvre le système d'étiquettes déjà) pour pré-filtrer les données d'entrée sur la feuille source du tableau croisé dynamique en fonction de la valeurs tag que vous souhaitez rechercher, puis re-actualiser le tableau croisé dynamique en fonction de ces données.

Une troisième possibilité est la VBA utilisé dans cette question , qui ressemble à elle-filtre personnalisé lignes visibles du tableau croisé dynamique.

= SI (ISERR (FIND ( "BLANC", UPPER (B5))), 0,1)

créer une colonne supplémentaire et ajouter une formule. Il y a 2 trucs à ce sujet. L'un est à la recherche de WHITE dans la colonne de description à l'aide supérieure - pour battre le fait que Excel find est sensible à la casse. Deux est qu'il renvoie une erreur de valeur si la chaîne n'existe pas - si ESTERR vous permettra de piéger et que revenir dans cet exemple 0 si elle ne satisfait pas ou 1 si elle le fait. Vous pouvez remplacer blanc et blanc pour 1 et 0.

vous pouvez écrire un script qui boucle à travers les données et ajoute de nouvelles lignes pour chaque élément séparés par des virgules dans la colonne de description. Cela permettrait de mieux filtrer le tableau croisé dynamique.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top