Esta é uma solução abrangente que usa uma Tabela Dinâmica atualizada automaticamente para exibir a posição final alternativa dinamicamente quando uma equipe é excluída por meio de uma lista suspensa.
Remove a equipe excluída da Tabela Dinâmica e Table2
completamente, com as tabelas sendo ajustadas automaticamente para remover quaisquer espaços em branco.
Para Table1
, escurece as linhas que contêm a equipe excluída com formatação condicional. O melhor que pode ser para baixo com esta tabela é esconder as rodadas completamente, deixando linhas em branco.
Aqui está sua planilha mostrando as modificações adicionais:
Fórmulas:
ObservequetodasasfórmulasaseguirusamreferênciasestruturadasdoExcel2007,mastambémfuncionarãoemtodasasversõesposterioresdoExcel.
Fórmula1-inseridaemF1:F14
:
=1+INT((ROW()-ROW(Table1[Round]))/2/COUNTIFS(Table1[Round],1,Table1[Team1],"<>"&$K$9,Table1[Team2],"<>"&$K$9))
Fórmula 2 - Array inserido ( Ctrl + Shift + Enter ) em G3
e copiado-colado / preenchido em 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)),"")
A Fórmula 2 prettificada é a seguinte:
=
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)
),
""
)
Fórmula 3 - A fórmula na coluna H
permanece inalterada, repetida aqui para completar:
=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]))
Tabela dinâmica:
- A fonte de dados da tabela dinâmica precisa ser alterada para
Table2
. - O campo
Team
precisa ter valores em branco desmarcados.
Tabelas:
Table1
-Apliqueaseguintefórmuladeformataçãocondicionalaointervalo$A$3:$D$8
:
=OR($B3=$K$9,$C3=$K$9)
Table1
- Aplique o seguinte formato numérico à coluna Score
:
0;-0;
Exclude
- Defina a validação de dados de K9
para uma lista suspensa com a seguinte fonte:
=$J$3:$J$6
VBA:
Adicione o seguinte código ao módulo de folha da planilha:
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
Este código simplesmente atualiza a Tabela Dinâmica sempre que o valor na equipe excluída é alterado. Não é estritamente necessário que a solução funcione, mas você teria que fazer uma atualização manualmente após alterar a equipe (clicando com o botão direito na Tabela Dinâmica e selecionando "Atualizar", por exemplo).