Je travaille sur un rapport et j'essaie de produire mes données comme celle-ci INPUT: P>
sortie p>
Je pense que l'utilisation d'un dictionnaire avec chaque clé a plusieurs valeur des objets et leur mais je ne sais pas comment mettre en œuvre. P>
5 Réponses :
L'utilisation d'un dictionnaire ne fonctionnerait pas pour votre exemple de graphique. Un dictionnaire est utilisé pour contenir seulement deux valeurs de chaîne à l'aide d'une hache. Un exemple d'utilisation correctement d'un dictionnaire utilise correctement les deux mots "Bonjour" et "une salutation polie à un autre humain". La première chaîne est pour le mot et la seconde est la définition du mot, comme un dictionnaire régulier. P>
Je vous fournirais deux meilleures options. Vous pouvez créer un tableau 2D qui contient toutes vos valeurs, mais vous auriez besoin de sortir les étiquettes séparément des valeurs. Vous pouvez également créer un fichier qui contient les étiquettes et les valeurs de votre graphique. P>
Si vous avez besoin de plus d'aide, veuillez fournir plus d'informations sur ce que vous essayez de faire avec le graphique affiché. Un tableau est préférable pour les calculs, mais un fichier est préférable à stocker les valeurs et à afficher le graphique. P>
"Un dictionnaire est utilisé pour contenir seulement deux valeurs de chaîne à l'aide d'une haquetable" - Ce n'est pas vrai, au moins dans VBA. La clé est une chaîne, mais la valeur peut être quelque chose que vous souhaitez ajouter.
Alors, dis-tu que ce n'est pas vrai parce que la valeur peut contenir autre chose qu'une chaîne ou qu'un dictionnaire peut contenir plus d'une valeur pour une clé?
@ Mry_02: Regardez ma réponse deuxième réponse i>. Cela pourrait clarifier ce que Tim Williams a dit.
Oui, que la valeur n'a pas besoin d'être une chaîne et, bien qu'elle ne puisse pas être plusieurs choses, elle peut être une matrice (par exemple) ou une collection de nombreuses choses.
Après impuche des données avec PowerQuery (Goto Data em> à partir de la table / plage, sélectionnez les colonnes avec Apple, Orange, etc. Dans l'éditeur de requête d'alimentation, sélectionnez l'onglet transformer em > et là colonnes d'impulsion em>) on obtient p>
alors vous pivotez à nouveau les données et vous obtenez p>
Sauf si vous allez faire autre chose avec les données collectées, il n'y a pas besoin de la structure de données intermédiaire:
Dim data, r As Long, c As Long data = ActiveSheet.Range("A3:D5").Value For r = 2 To UBound(data, 1) Debug.Print data(r, 1) For c = 2 To UBound(data, 2) Debug.Print data(1, c) & " " & data(r, c) Next c Debug.Print "Checked." Next r
Votre sortie ne peut pas être représentée à l'aide des paires de touches / valeur car "John" n'a pas de valeur. Et "vérifié". n'est pas unique.
Voici comment vous pouvez créer un objet
dictionnaire code> dans VBA: docs.microsoft.com/en-us/office/vba/language/reference/... (vous pouvez également utiliser
dim d code>,
Set D = Nouveau Scripting.dictionner Code>.
Vous pouvez utiliser le nom de la clé et un tableau 2D de fruit / comptage pour chacune des valeurs. Un dictionnaire n'est pas nécessaire ici si vous pouvez simplement boucler sur les lignes et créer la sortie directement.
Cela pourrait aider à utiliser la requête de puissance, d'impucher l'entrée, puis de créer la sortie avec un pivot basé sur l'entrée transformée.
Je suis désolé si ce n'est pas clair. Mais mon point consiste à construire un dictionnaire qui a "John", "Mary" comme clé. La clé "John" a plusieurs valeurs telles que Apple 2, Orange 4, etc. et la valeur "cochée" à la fin. Ensuite, je publie le dictionnaire sur la feuille. Si vous avez une meilleure façon, dites-moi s'il vous plaît. Merci.
Donc, si vous vous aboutez un dictionnaire lorsque vous avez écrit, vous devez ajouter le code au poste et dire où vous avez un problème. Et pourquoi avez-vous besoin d'un
coché code> à la fin. Avez-vous besoin que seulement dans la sortie? À mon avis, il n'a aucun sens pour toujours ajouter
vérifié code> à la fin.