Ось комплексне рішення, яке використовує автоматично оновлену зведену таблицю для динамічного відображення альтернативного остаточного стояння, коли команда виключається за допомогою випадаючого списку.
Він вилучає виключену команду зі зведеної таблиці та Table2
повністю, таблиці автоматично регулюються, щоб видалити будь-які заготовки.
Бо Table1
він затемнює рядки, що містять виключену команду із умовним форматуванням. Найкраще, що може бути вниз за цією таблицею, - це повністю приховати раунди, залишаючи порожні рядки.
Ось ваш робочий аркуш із доданими модифікаціями:
Формули:
Зауважте, що всі наступні формули використовують структуровані посилання Excel 2007, але вони також працюватимуть у всіх пізніших версіях Excel.
Формула 1 - Введено F1:F14
:
=1+INT((ROW()-ROW(Table1[Round]))/2/COUNTIFS(Table1[Round],1,Table1[Team1],"<>"&$K$9,Table1[Team2],"<>"&$K$9))
Формула 2 - Масив, що вводиться ( Ctrl+ Shift+ Enter), G3
і копіюється, вставляється / заповнюється 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)),"")
Очищена Формула 2 така:
=
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)
),
""
)
Формула 3 - Формула в стовпці H
залишається незмінною, тут повторюється для повноти:
=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]))
Зведена таблиця:
- Джерело даних зведеної таблиці потрібно змінити на
Table2
.
- У
Team
полі має бути відмінено порожні значення.
Таблиці:
Table1
- Застосовуйте до діапазону таку формулу умовного форматування $A$3:$D$8
:
=OR($B3=$K$9,$C3=$K$9)
Table1
- Застосуйте наступний формат чисел до стовпця Score
:
0;-0;
Exclude
- Встановіть перевірку даних K9
у випадаючий список із наступним джерелом:
=$J$3:$J$6
VBA:
Додайте наступний код до модуля аркуша робочого аркуша:
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
Цей код просто оновлює зведену таблицю щоразу, коли значення у виключеній команді змінюється. Це не суворо вимагає, щоб рішення працювало, але тоді вам доведеться зробити оновлення вручну після зміни команди (натискаючи правою кнопкою миші таблицю обертання та вибравши, наприклад, "Оновити").