Excel: Що робити, якщо певна команда не брала участь у турнірі на основі ліги


0

введіть тут опис зображення

Уявіть собі турнір, куди взяли участь чотири команди, як показано на зображенні вище. (Оцінка в таблиці 1 показує бал для обох команд; для Команди 2 знак плюс / мінус перевернутий.)

Як я можу виконати такий аналіз:

Яким було б нове остаточне становище, якби TeamC не вступив на турнір? (Усі матчі TeamC слід ігнорувати / відкидати.)

(Про всяк випадок, тут є приклад файлу )


6
Так, Excel може це зробити, Excel може зробити багато речей, для точної відповіді, хоча вам знадобиться точне запитання до конкретної проблеми, прохання про спосіб підходу до теми може призвести лише до відповідей, заснованих на думці
PeterH

Мені здається, що це редагування пояснює питання, достатнє для того, щоб кваліфікувати - нам потрібен спосіб сказати команді / TotalScore таблиці зліва лише підбити підсумки з Таблиці2, якщо кругле число та назва команди не відображаються в рядку з таблиці1 уздовж з TeamC. Або дайте аркушу певний спосіб знизити дані в таблиці1, яка з’являється у рядку, що містить рядок "TeamC" ...
Ісаак Рефман

Важливо допомогти мені сформулювати відповідь - які формули ви використовуєте для переміщення даних з однієї таблиці в іншу? Чи всі дані в таблицях 1 і 2 вводяться вручну, або дані в Таблиці2 автоматично генеруються на основі даних у Таблиці1?
Ісаак Рифман

Відповіді:


2

Ось комплексне рішення, яке використовує автоматично оновлену зведену таблицю для динамічного відображення альтернативного остаточного стояння, коли команда виключається за допомогою випадаючого списку.

Він вилучає виключену команду зі зведеної таблиці та 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

Цей код просто оновлює зведену таблицю щоразу, коли значення у виключеній команді змінюється. Це не суворо вимагає, щоб рішення працювало, але тоді вам доведеться зробити оновлення вручну після зміни команди (натискаючи правою кнопкою миші таблицю обертання та вибравши, наприклад, "Оновити").


-1

З вашим поточним макетом ви можете відображати скориговані бали у звичайній третій таблиці (а не зі зведеною вами таблиці) у такий спосіб:

Я дублював ваш аркуш із звичайною таблицею замість зведеної таблиці та додав іменовану комірку під назвою "ExcludedTeam", щоб я міг додати критерії до SUMIFSфункції, яку слід перейти до останньої таблиці.

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

У звичайній англійській мові це говорить "додайте суму балів з таблиці1 (де Team1 відповідає цій команді AND Team2 не відповідає виключеній команді) до оберненої суми балів з таблиці1 (де Team2 відповідає цій команді AND Team1 не відповідає виключеній команді.) "

Звичайно, ви завжди можете жорстко кодувати ім'я виключеної команди у формулу, але це зовсім не масштабується ...

введіть тут опис зображення

Якщо ви хочете, щоб результат TeamC читався як 0, вам слід вказати, що і Team1, і Team2 <> ExcludedTeam в обох половинах формули .


Редагувати: потрібно було більше функціональних можливостей відповідно до коментарів, нижче я описую, як дістатися.

Щоб видалити будь-яку згадку про виключену команду з усіх таблиць, вам доведеться встановити таблиці одна над одною, так що приховування стовпців у Table1 не приховуватиме жодних стовпців у Table2 і навпаки, або альтернативно розміщувати їх на окремих аркушах .

Після цього зробіть макрос, який запускається, коли ви зміните вибраний параметр, у ExcludedTeamякому встановлюється .EntireRow.Hiddenвластивість будь-якої комірки в будь-якій таблиці, .Value = ExcludedTeam.Valueдо якої потрібно true. Залишилося лише змінити характеристики вашої зведеної таблиці, щоб відфільтрувати цю команду, і ви її отримали.


Якщо ви не знаєте, як назвати клітинку, пляма у верхньому лівому куті прикріпленого зображення показує назву комірки. На даний момент обрано K3. Просто натисніть на клітинку, яку ви хочете назвати (B10 на зображенні), потім натисніть на цьому просторі та введіть те, що ви хочете, щоб було ім'я комірки. Хоча голова вгору - перейменування або видалення імені може бути болем.
Ісаак Рейфман

Дякую. (1) Я не зміг змусити ваше рішення працювати. (2) Щоб видалити або перейменувати клітинку CTRL+ F3і Name Managerспливаюче вікно. (3) Тим не менш, я шукаю рішення, в якому, коли команди (групи) виключені, вони не відображаються у таблиці.
почорніло

"вони не відображаються у турнірній таблиці" - що ви розумієте під цим? Ви просто хочете, щоб їх загальний бал читався як 0, або ви хочете мати можливість видалити будь-яку згадку про них з усіх таблиць?
Ісаак Ріфман

"Я не міг змусити ваше рішення працювати" - що з цим не працює? Це не відображається так, як я відображався на зображенні, або ви просто говорите, що дані на зображенні не є результатом, який ви шукаєте?
Ісаак Ріфман

Правильно: (1) Я хочу мати можливість видалити згадування про них у таблиці підсумкового заліку. (2) Коли я застосовую вашу формулу, я отримую інші фігури, ніж показано на зображенні.
почорніло
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.