Excel: Et si une équipe en particulier n'avait pas participé à un tournoi de ligue

0

entrez la description de l'image ici

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 )

noirci
la source
6
Oui, Excel peut le faire, Excel peut faire beaucoup de choses, pour une réponse exacte bien que vous ayez besoin d'une question exacte à un problème spécifique, demander une façon d'aborder un sujet ne peut donner que des réponses basées sur des opinions
PeterH
Je pense que cette modification clarifie suffisamment la question pour être qualifiée - nous avons besoin d’un moyen de dire au tableau Team / TotalScore situé à gauche uniquement de faire la somme des scores de la Table2 si le numéro de la ronde et le nom de l’équipe ne figurent pas tous les deux dans une rangée de la Table1. avec TeamC. Ou donnez à la feuille un moyen de réduire les données de la Table1 qui apparaissent dans une ligne contenant la chaîne "TeamC" ...
Isaac Reefman
Important pour m'aider à formuler une réponse - quelles formules utilisez-vous pour déplacer les données d'une table à l'autre? Toutes les données des tableaux 1 et 2 sont-elles entrées manuellement ou les données du tableau 2 sont-elles générées automatiquement en fonction des données du tableau 1?
Isaac Reefman

Réponses:

2

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 Table2complè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:

Capture d'écran de la feuille de travail


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:

=1+INT((ROW()-ROW(Table1[Round]))/2/COUNTIFS(Table1[Round],1,Table1[Team1],"<>"&$K$9,Table1[Team2],"<>"&$K$9))


Formule 2 - Matrice entrée ( Ctrl+ Shift+ Enter) dans G3et copie-collé / vers le bas rempli G3:G14:

=IFERROR(INDEX(Table1[[Team1]:[Team2]],SMALL(IFERROR(1/(1/N(IF(1,(ROW(Table1[Round])-ROW(Table1[[#Headers],[Round]]))*(Table2[[#This Row],[Round]]=Table1[Round])*($K$9<>Table1[Team1])*($K$9<>Table1[Team2])))),FALSE),1+MOD(INT((ROW()-ROW(Table1[Round]))/COUNTIFS(Table1[Round],1,Table1[Team1],"<>"&$K$9,Table1[Team2],"<>"&$K$9)),COUNTIFS(Table1[Round],1,Table1[Team1],"<>"&$K$9,Table1[Team2],"<>"&$K$9))),1+MOD(ROW()-ROW(Table2[[#Headers],[Round]])-1,2)),"")

La formule 2 raffinée est la suivante:

=
IFERROR(
  INDEX(
    Table1[[Team1]:[Team2]],
    SMALL(
      IFERROR(1/(1/N(IF(1,
         (ROW(Table1[Round])-ROW(Table1[[#Headers],[Round]]))
        *(Table2[[#This Row],[Round]]=Table1[Round])
        *($K$9<>Table1[Team1])
        *($K$9<>Table1[Team2])
      ))),FALSE),
      1+MOD(
        INT((ROW()-ROW(Table1[Round]))/COUNTIFS(Table1[Round],1,Table1[Team1],"<>"&$K$9,Table1[Team2],"<>"&$K$9)),
        COUNTIFS(Table1[Round],1,Table1[Team1],"<>"&$K$9,Table1[Team2],"<>"&$K$9)
      )
    ),
    1+MOD(ROW()-ROW(Table2[[#Headers],[Round]])-1,2)
  ),
  ""
)


Formule 3 - La formule dans la colonne Hreste inchangée, répétée ici pour compléter:

=SUMPRODUCT(Table1[Score]*(Table2[[#This Row],[Round]]=Table1[Round])*(Table2[[#This Row],[Team]]=Table1[Team1])-Table1[Score]*(Table2[[#This Row],[Round]]=Table1[Round])*(Table2[[#This Row],[Team]]=Table1[Team2]))


Tableau Pivot:

  • La source de données du tableau croisé dynamique doit être remplacée par Table2.
  • Le Teamchamp doit avoir des valeurs vides désélectionnées.

Capture d'écran de la configuration du tableau croisé dynamique


Les tables:

Table1- Appliquez la formule de mise en forme conditionnelle suivante à la plage $A$3:$D$8:

=OR($B3=$K$9,$C3=$K$9)

Table1- Appliquez le format de numéro suivant à la colonne Score:

0;-0;

Exclude- Définissez la validation des données de K9sur une liste déroulante avec la source suivante:

=$J$3:$J$6


VBA:

Ajoutez le code suivant au module Feuille de la feuille de calcul:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

  If Target.Address <> "$K$9" Then Exit Sub

  With Application
    .EnableEvents = False
    Me.PivotTables(1).RefreshTable
    .EnableEvents = True
  End With

End Sub

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).

robinCTS
la source
-1

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 SUMIFSfonction à insérer dans le dernier tableau.

=SUMIFS(Table1[Score],Table1[Team1],[@Team],Table1[Team2],"<>"&ExcludedTeam)-SUMIFS(Table1[Score],Table1[Team2],[@Team],Table1[Team1],"<>"&ExcludedTeam)

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 ...

entrez la description de l'image ici

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, ExcludedTeamqui définit la .EntireRow.Hiddenpropriété de toute cellule de la table dont le .Value = ExcludedTeam.Valuedestinataire est true. Tout ce qui reste à faire est de changer les spécifications de votre tableau croisé dynamique pour filtrer cette équipe, et vous l'avez.

Isaac Reefman
la source
Si vous ne savez pas comment nommer une cellule, l’emplacement situé dans le coin supérieur gauche de l’image jointe indique le nom de la cellule. Actuellement, K3 est sélectionné. Cliquez simplement sur la cellule que vous souhaitez nommer (B10 dans l'image), puis cliquez dans cet espace et tapez ce que vous voulez que le nom de la cellule soit. Attention, il peut être pénible de le renommer ou de le supprimer.
Isaac Reefman
Je vous remercie. (1) Je ne pouvais pas faire fonctionner votre solution. (2) Pour supprimer ou renommer une cellule, appuyez sur CTRL+ F3et Name Managers'affiche. (3) Néanmoins, je recherche une solution dans laquelle, lorsqu'une ou plusieurs équipes sont exclues, elles ne figurent pas dans le classement.
Noirci le
"ils ne figurent pas dans le classement" - qu'entendez-vous par là? Vous voulez juste que leur score total soit 0, ou vous voulez pouvoir supprimer toute mention d'eux dans tous les tableaux?
Isaac Reefman
"Je ne pouvais pas faire fonctionner votre solution" - et si cela ne fonctionnait pas? Ne s'affiche-t-il pas tel que je l'ai affiché dans l'image, ou êtes-vous simplement en train de dire que les données de l'image ne sont pas le résultat recherché?
Isaac Reefman
Correct: (1) Je veux pouvoir supprimer leur mention dans le tableau de classement final. (2) Lorsque j'applique votre formule, j'obtiens des chiffres différents de ceux indiqués dans l'image.
Noirci le