我正在尝试创建一个数据表,该表分解来自多个会议中一系列年轻人活动的信息。我的主要工作表有 3 个表格,分别用于出勤、等候名单和取消,还有 16 个工作表用于不同的活动。我还有一个单独的“代码”工作表,其中包含年龄范围、性别、推荐人的职位等信息。目前,我有一个很长的公式来计算工作表中的总数,我想尝试缩短它;例如:要计算有多少 8 岁儿童被推荐参加活动,我目前的公式只计算 1 天 =COUNTIF(MainDay1[Age],Codes!B13)+COUNTIF(WaitingDay1[Age],Codes!B13)+COUNTIF(CancelDay1[Age],Codes!B13),然后一遍又一遍重复,以涵盖全部 16 天,从而创建一个非常长的公式。
有什么方法可以压缩并缩短它吗?
感谢您
答案1
假设您的表的命名一致,即:
主日1,主日2,...,主日16
等待日1,等待日2,...,等待日16
取消第 1 天,取消第 2 天,...,取消第 16 天
=SUM(COUNTIF(INDIRECT({"MainDay";"WaitingDay";"CancelDay"}&SEQUENCE(,16)&"[Age]"),Codes!B13))
其中 16
SEQUENCE(,16)
表示正在查询的工作表数量(如果您无权使用该SEQUENCE
函数,则可以用静态等效项替换)。
请注意,这两个构造很重要:
{"MainDay";"WaitingDay";"CancelDay"}
和
SEQUENCE(,16)
导致正交数组,即一个是垂直数组,另一个是水平数组。对于英语版本的 Excel,分号表示垂直数组中的分隔符。