Imaginez un tournoi où quatre équipes ont participé comme indiqué dans l'image ci-dessus. (Le score dans le tableau 1 montre le score des deux équipes; pour l’équipe 2, le signe plus / moins est inversé.)
Comment puis-je effectuer l'analyse suivante:
Quel serait le nouveau classement final si TeamC n'était pas entré dans le tournoi? (Tous les matchs de TeamC doivent être ignorés / écartés.)
(Juste au cas où, le fichier d'exemple est ici )
Réponses:
Voici une solution complète qui utilise un tableau croisé dynamique actualisé automatiquement pour afficher le classement final alternatif de manière dynamique lorsqu'une équipe est exclue via une liste déroulante.
Il supprime
Table2
complètement et exclut l’équipe exclue du tableau croisé dynamique , les tables s’ajustant automatiquement pour supprimer les espaces vides.En effet
Table1
, il assombrit les lignes contenant l’équipe exclue avec une mise en forme conditionnelle. Le mieux que vous puissiez faire avec cette table est de masquer complètement les tours, en laissant des lignes vides.Voici votre feuille de travail montrant les modifications ajoutées:
Formules:
Notez que toutes les formules suivantes utilisent des références structurées Excel 2007, mais fonctionnent également dans toutes les versions ultérieures d'Excel.
Formule 1 - Entrée dans
F1:F14
:Formule 2 - Matrice entrée ( Ctrl+ Shift+ Enter) dans
G3
et copie-collé / vers le bas rempliG3:G14
:La formule 2 raffinée est la suivante:
Formule 3 - La formule dans la colonne
H
reste inchangée, répétée ici pour compléter:Tableau Pivot:
Table2
.Team
champ doit avoir des valeurs vides désélectionnées.Les tables:
Table1
- Appliquez la formule de mise en forme conditionnelle suivante à la plage$A$3:$D$8
:Table1
- Appliquez le format de numéro suivant à la colonneScore
:Exclude
- Définissez la validation des données deK9
sur une liste déroulante avec la source suivante:VBA:
Ajoutez le code suivant au module Feuille de la feuille de calcul:
Ce code actualise simplement le tableau croisé dynamique chaque fois que la valeur de l'équipe exclue change. Il n’est pas strictement nécessaire pour que la solution fonctionne, mais vous devrez alors procéder à une actualisation manuelle après avoir modifié l’équipe (en cliquant avec le bouton droit de la souris sur le tableau croisé dynamique et en sélectionnant "Actualiser", par exemple).
la source
Avec votre mise en page actuelle, vous pouvez afficher les scores ajustés dans un troisième tableau normal (plutôt que dans le tableau croisé actuel) comme ceci:
J'ai dupliqué votre feuille avec un tableau normal au lieu du tableau croisé dynamique, et j'ai ajouté une cellule nommée "ExcludedTeam" afin de pouvoir ajouter un critère à une
SUMIFS
fonction à insérer dans le dernier tableau.En anglais normal, cela signifie "ajoutez la somme des scores de Table1 (où Team1 correspond à cette équipe ET l'équipe2 ne correspond pas à l'équipe exclue) à l' inverse de la somme des scores de Table1 (où Team2 correspond à cette équipe ET à Team1 ne correspond pas à l'équipe exclue.) "
Bien sûr, vous pouvez toujours coder en dur le nom de l'équipe exclue dans la formule, mais cela ne s'adapte pas du tout ...
Si vous voulez que le score de TeamC soit 0, vous devez spécifier que Team1 et Team2 <> ExcludedTeam dans les deux moitiés de la formule .
Edit: Plus de fonctionnalités étaient nécessaires selon les commentaires, je décris comment y arriver ci-dessous.
Pour supprimer toute mention de l'équipe exclue de toutes les tables, vous devez les placer les unes sur les autres, de sorte que le masquage des colonnes dans Table1 ne masque aucune colonne dans la Table2 et inversement, ou encore, placez-les sur des feuilles séparées. .
Une fois que vous avez terminé, créez une macro qui se déclenche lorsque vous modifiez l’option sélectionnée,
ExcludedTeam
qui définit la.EntireRow.Hidden
propriété de toute cellule de la table dont le.Value = ExcludedTeam.Value
destinataire esttrue
. Tout ce qui reste à faire est de changer les spécifications de votre tableau croisé dynamique pour filtrer cette équipe, et vous l'avez.la source
CTRL
+F3
etName Manager
s'affiche. (3) Néanmoins, je recherche une solution dans laquelle, lorsqu'une ou plusieurs équipes sont exclues, elles ne figurent pas dans le classement.