Excel:如果某个特定团队没有参加基于联赛的比赛该怎么办

发黑

在此处输入图片说明

想象一下一个比赛,如上图所示,四支球队进入了比赛。(表1中的得分显示了两支球队的得分;对于第二支球队,其正负号是相反的。)

如何执行以下分析:

如果TeamC没有参加比赛,新的决赛成绩将是什么?(TeamC的所有比赛都将被忽略/丢弃。)

(以防万一,示例文件在这里

robinCTS

这是一个综合解决方案,当通过下拉列表排除团队时,使用自动刷新的数据透视表动态显示备用最终排名。

它会从数据透视表中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

每当排除的团队中的值发生更改时,此代码都将仅刷新数据透视表。严格来说,解决方案不是必需的,但是在更换团队之后,您将必须手动刷新(例如,通过右键单击数据透视表并选择“刷新”)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果没有上下文该怎么办?

如果对象的实例没有引用该怎么办?

如果我所在的州/国家/地区没有Ubuntu LoCo团队怎么办?我该如何开始?

MVC-如果没有内容,谁来决定该怎么办?

如果存储库/ PPA没有发布文件,该怎么办?

如果要使用没有更新编译器的新功能该怎么办?

如果我没有将交易ID发送到PayPal PDT,该怎么办?

我的Nvidia 8400GS是否超频了?如果没有,我该怎么办?

位置0没有行...。我该怎么办..?

如果没有键入内容(或tsd)怎么办?

如果没有匹配类型怎么办?

如果我没有git lfs锁怎么办

如果代码中没有 Tk() 声明怎么办

如果我没有bashrc怎么办?

如果表没有主键怎么办

如果AsyncTask被取消,该怎么办?

如果GOMAXPROCS太大,该怎么办?

如果某个fd在其他功能受阻时被关闭该怎么办?

Play商店说我的应用程序必须具有至少28的targetSDK。如果没有,该怎么办?

如果我没有在Azure服务总线中调用IMessageSession的CloseAsync和CompleteAsync方法,该怎么办?

是否可以等待未声明为异步的IO操作?如果没有,我该怎么办?

grep可以一起输出匹配的内容和全部计数吗?如果没有,该怎么办?

如果我没有 <label> 元素和 <input type="email"> 元素一起使用,我该怎么办?

如果没有ID,名称等,并且driver.find_elements_by_xpath无法使用,该怎么办?

如果 Django 在我请求时没有发送任何电子邮件,我该怎么办?

基于游标的分页-如果删除“之前”或“之后”对象该怎么办?

如果不存在该物品该怎么办?

没有可变状态怎么办?

没有sudo的用户怎么办?