Pivot dans Excel sans l'agrégation, pour afficher le texte, pas les chiffres?
Disons que j'ai un tableau comme ceci:
Country Region Mytext
USA North a
USA South b
Brasil North c
Brasil South d
Comment puis-je obtenir un pivot comme cela dans Excel?
Country North South
USA a b
Brasil c d
Si "mytext" ont été un certain nombre, je pourrais faire un tableau croisé dynamique: car il n'y a qu'une seule ligne par combinaison de pays et de région, min = max = somme = avg et aucune de ces fonctions d'agrégation, en fait, montrez-moi le résultat que je souhaite.
Mais que lorsque le domaine je veux, c'est non numérique? Avec Python pandas bibliothèque, je peux utiliser le dataframe.pivot() la méthode non-champs numériques, mais je n'ai pas trouvé un moyen de faire la même chose dans Excel. J'ai pu associer un nombre à chaque ligne, faire le pivot dans Excel pour montrer que le numéro, puis d'effectuer une recherche pour obtenir le texte associé, mais il semble plutôt alambiqué processus pour quelque chose qui devrait vraiment être plus facile!
OriginalL'auteur Pythonista anonymous | 2015-09-24
Vous devez vous connecter pour publier un commentaire.
vous pouvez utiliser le MS Power Requête de complément*. Pivotant tables est sans vba facile. C'est gratuit et très efficace pour la Transformation des données.
le M-Code
votre Sortie
* à partir de MS Office 2016, il est entièrement intégré dans Excel Obtenir des & Transformer fonction.
De le faire avec l'interface graphique: sélectionnez la table -> power query -> données excel -> de la table -> sélectionnez la colonne de la "région" - > transform> pivot de la colonne> les valeurs de la colonne: mytext -> options avancées: ne pas total. Si vous modifiez la source d'origine et à droite, cliquez sur actualiser dans la table de sortie, la sortie est dessiné.
Dans MS Office 2016, vous aurez besoin d'une seule colonne pour les en-têtes. Supprimer redondant colonnes (ou de la table sera rare), puis faites pivoter l'en-tête de colonne, sélectionnez le champ de valeur et "de Ne pas agréger".
OriginalL'auteur visu-l
Ajouter le MyText comme une étiquette de ligne sous le Pays de l'étiquette, puis affichage du tableau croisé dynamique sous forme de tableau dans le Tableau croisé dynamique onglet conception. Répétez les étiquettes de l'élément pour le pays d'étiquette de ligne de champ.
OriginalL'auteur cronos2546
Pour les futurs lecteurs - l'utilisation de deux fonctions:
Ruban > Outils de tableau croisé dynamique > Mise en page de Rapport > Afficher sous Forme de tableau
et
Ruban > Outils de tableau croisé dynamique > Mise en page de Rapport > Répéter toutes les Étiquettes de l'Élément de
Champs de ligne seront présentés de gauche à droite comme verticalement du texte répété.
OriginalL'auteur Josh Garcia
Cela peut être fait, mais nécessite VBA pour remplacer temporairement un numérique 'placeholder' valeur dans votre tableau croisé dynamique avec du texte. Pour ce faire, vous devez définir EnableDataValueEditing = True pour le tableau croisé dynamique. Lors de l'actualisation, vous ensuite d'effectuer une recherche sur le numérique de la valeur de l'espace réservé, et de le remplacer par le texte. Compliqué, oui. Solution de contournement, oui. Mais il fait l'affaire. Notez que cela ne colle' jusqu'à ce que la prochaine fois que le tableau croisé dynamique est actualisé, de sorte que ce code doit être triggerred à chaque actualisation.
Voici le code que j'utilise pour ce faire, dans un de mes propres projets. Mettez ceci dans un Module de Code Standard:
Et voici le résultat: un tableau croisé dynamique avec le Texte dans la zone VALEURS:
Voici la "conversion" de la table que dit le code des éléments à afficher pour chaque numéro:
J'ai attribué deux plages nommées à ces derniers, de sorte que mon code sait où trouver de la table de recherche:
...et voici comment j'ai déclencher la Fonction et le passer dans les arguments requis:
Que le code va dans la Feuille de calcul Module de Code qui correspond à la feuille de calcul où le tableau croisé dynamique est:
Où voulez-vous exécuter ce code? Je l'ai mis dans un module, mais il ne fonctionne pas. Est-il obtenir le tableau croisé dynamique nom automatiquement?
C'est une fonction qui doit être appelée par une autre routine.
Vous ne savez pas où aller avec qui. Pouvez-vous me donner la syntaxe ou les termes à google?
Probablement le meilleur de vous écrire une nouvelle question en décrivant ce qu'il est que vous voulez réaliser (y compris des détails tels que "je veux remplacer ces numéros spécifiques dans le champ de Données avec ce liste de texte, les termes", et je vais répondre à cette question.
OriginalL'auteur jeffreyweir