我有一个Google表格roster。链接是最小化版本。实际上,每个街区对应一个两周,随后的两周位于彼此下方。 (我无权提供名册图片)。
对于股权和疲劳管理,我会保持电话通话统计。特别是,我要计算某人连续连续几天在任何容量下进行应召工作的次数。
我可以先手动创建一个数组,然后连续求解几天(此示例连续2天)来做到这一点:
=ArrayFormula(COUNTIF((len(split(CONCATENATE(SIGN(MMULT({1,1,1},--IF(REGEXMATCH({$B$7:$D$9, $B$17:$D$19}, F5),1,0))),),0))),"=2"))
这有局限性,因为出于各种原因可能会将其他行添加到花名册中,从而破坏了手动构建的数组。因此,我正在尝试自动创建数组。
我可以使用查询提取所有通话数据:
=QUERY(A:D, "select B,C,D where A contains 'On Call'",0)
但是要遵循我上面的手动解决方案,我需要每个通话行都保持为一行。我觉得应该有一个简单的解决方案,可以将每个“ fortnight”附加到同一行。因此,换句话说,我得到的不是包含14列的表(具有26(每年两周)×3(每两周的待命行数)的表),而是具有3行(具有14 x 26列)的表。或者,我可以接受查询结果,然后将表格处理为3行和14 x 26列。
不幸的是,我找不到能自动执行此操作的任何功能或功能组合。我可以制作一个宏来做,但是由于花名册没有设置整年,因此该宏只能在特定的时间使用。
(目前)我没有足够的JavaScript技能来编写自定义函数。
有什么想法吗?