Excel - 如果找到数据则增加计数器

问题描述 投票:0回答:1

我正在处理一些体育数据,并尝试将比赛信息动态地提取到另一个 Excel 工作表中。我创建了一个 Excel 公式,它主要完成我想要的功能,但我想看看是否可以稍微改变一下行为。这是一些数据的屏幕截图,然后我将解释我想要实现的目标。

第一个屏幕截图是我正在使用的一些数据的小样本。我将空军以粗体显示,因为这是我将用于数据提取的示例团队。 Schedule Data

这是我将数据提取到 Excel 的另一张工作表上的位置。左边的表格是我当前得到的结果,但右边的表格是我想要实现的表格格式。单元格 A1 仅用于与“时间表”表进行比较。 Formula Data Pull

这是我目前使用的公式:

=IFERROR(INDEX(Schedule!$A$1:$I$866,MATCH((AGGREGATE(15,3,((Schedule!$F$1:$I$866=$A$1)/(Schedule!$F$1:$I$866=$A$1)*ROW(Schedule!$F$2:$I$866))-ROW(Schedule!$F$1),ROWS($O$2:O2)))-1,Schedule!$A:$A,0),COLUMN(B$1)),"")

因此,我知道要使第二个表成为可能,需要进行的更改是我创建的 IF 语句,然后仅当 IF 语句为真时,才对 AGGREGATE 公式的 [k] 值进行增量。

这是我为 IF 语句所做的逻辑:

=IF(XLOOKUP(1,((Schedule!$B$2:$B$30=$I9)*((Schedule!$F$2:$F$30=$A$1)+(Schedule!$G$2:$G$30=$A$1))),Schedule!$B$2:$B$30,"")=$I9,*PULL THE DATA*,*LEAVE DATA BLANK*)

因此当前使用的 [k] 增量值是 ROWS($O$2:O2) ,它工作正常,但由于“空军”在第 3 周期间不存在,因此只会拉出下一个可用的值,即第 4 周。

如何在实际运行公式时保留一个加 1 的更静态的值?

我已将公式更改为这样,这样我就可以拥有静态周数,然后从日期而不是每周开始拉取:

=IF(XLOOKUP(1,((Schedule!$B$2:$B$30=$I9)*((Schedule!$F$2:$F$30=$A$1)+(Schedule!$G$2:$G$30=$A$1))),Schedule!$B$2:$B$30,"")=$I9,IFERROR(INDEX(Schedule!$A$1:$I$30,MATCH((AGGREGATE(15,3,((Schedule!$F$1:$I$30=$A$1)/(Schedule!$F$1:$I$30=$A$1)*ROW(Schedule!$F$2:$I$30))-ROW(Schedule!$F$1),ROWS($O$2:O2)))-1,Schedule!$A:$A,0),COLUMN(C$1)),""),"")

因此,当第 3 周到来时,由于第 3 周不会提取任何数据,因此我需要 AGGREGATE 函数的 [k] 值不增加。

也许我的处理方式是错误的,但这就是我能够足够接近数据提取的最终目标的方法。

如有任何帮助,我们将不胜感激。谢谢。

excel aggregate xlookup
1个回答
0
投票

假设:
A.) 您想要返回单个球队的完整赛程表(主场和客场比赛)。 B.) “再见”周应该显示空白行。

由于赛季的周数已知,请设置查找表并填写 WK 列:

=SEQUENCE(18)

在查找公式中,将

lookup_value
参数设置为 WK 和团队名称的串联。我们将嵌套
XLOOKUP()
公式,以便如果 WK 不存在 AWAY 游戏,则另一个
XLOOKUP()
将在 HOME 列中查找 WK 和球队名称的串联,否则返回空字符串。

在我的工作簿中,我将包含完整时间表的工作表命名为

MasterSchedule
,将标准团队的时间表命名为
TeamSchedule
。我已在单元格
lookup_value
中找到了团队
TeamSchedule!$I$2
(当前设置为
Air Force
)。

使用

TeamSchedule!$A2:$19
中的
=SEQUENCE(18)
填写赛季的周周数据
TeamSchedule!$I$2
,在
TeamSchedule!B2
中输入以下公式并将其向下拖动到
TeamSchedule!B19

 =XLOOKUP($A2&$I$2,MasterSchedule!$B$2:$B$30&MasterSchedule!$F$2:$F$30,MasterSchedule!$C$2:$G$30,
          XLOOKUP($A2&$I$2,MasterSchedule!$B$2:$B$30&MasterSchedule!$G$2:$G$30,MasterSchedule!$C$2:$G$30,"",0)
  ,0)
© www.soinside.com 2019 - 2024. All rights reserved.