协助修改excel数组公式?

时间:2017-08-24 14:32:09

标签: excel

我继承了一个生产日志,其中包含一个工作表,其中包含多列,每月约有8k行。我正在寻找构建统计选项卡,并在特定时间范围内计算出针对代理记录了多少个唯一日期。

工作表“日志”:

Column A contains agents initials
Column E contains case completion date

工作表“统计”:

C2 contains a dropdown of agent initials
C5 and D5 contain dates to generate a date range

我编写了以下数组,用于标识日期的唯一日期。

=SUM(IF(FREQUENCY(IF(Log!E:E>=CC1,IF(Log!E:E<=DD1,IF(Log!E:E<>"",MATCH(Log!E:E,Log!E:E,0)))),ROW(Log!E:E)-ROW(Log!E3)+1),1))

我只是无法在Log中代理首字母!A:A并且它与C2匹配。

2 个答案:

答案 0 :(得分:0)

使用数组公式时,请避免使用整列引用。否则你会发现它很慢。或者Excel将耗尽资源。尝试...

=SUM(IF(FREQUENCY(IF(Log!$A$2:$A$100=C2,IF(Log!$E$2:$E$100>=CC1,IF(Log!$E$2:$E$100<=DD1,IF(Log!$E$2:$E$100<>"",MATCH(Log!$E$2:$E$100,Log!$E$2:$E$100,0))))),ROW(Log!$E$2:$E$100)-ROW(Log!$E$2)+1),1)) 

...通过CONTROL + SHIFT + ENTER确认。虽然,我认为没有必要为空白/空单元格测试E列,因为您已经在日期范围内对其进行测试...

=SUM(IF(FREQUENCY(IF(Log!$A$2:$A$100=C2,IF(Log!$E$2:$E$100>=CC1,IF(Log!$E$2:$E$100<=DD1,MATCH(Log!$E$2:$E$100,Log!$E$2:$E$100,0)))),ROW(Log!$E$2:$E$100)-ROW(Log!$E$2)+1),1))

...也通过CONTROL + SHIFT + ENTER确认。在任何一种情况下,都要相应地调整范围。

希望这有帮助!

答案 1 :(得分:0)

感谢Domenic工作。我感谢您对列引用的评论,因为我的资源耗尽,我今天已经两次崩溃了。

如果我想反转该公式以确定特定时间范围内记录了多少个唯一日期,但是我想忽略C2中的代理。它会是

吗?

= SUM(IF(频率(IF(登录$ A $ 2:$ A $ 300℃;&GT; C2,IF(登录$ E $ 2:$ E $ 300为C = C5,IF(登录$ E $ 2!! :$ E $ 300℃; = D5,MATCH!(登录$ E $ 2:!$ E $ 300中,登录$ E $ 2:$ E $ 300,0)))),ROW(登录$ E $ 2:$ E $ 300) - ROW(登录!$ E $ 2)1),1))