所以我在 Google 表格中有两个列表。一个是(相对较短的)姓名列表,假设是一群员工。第二个列表是(相当长的)轮班列表,其中记录了在场的员工。
例如:
List A - (rooster):
___________________
Mike
Linda
Carrie
Dave
List B - (Import_shift_data):
____________________________
Mike, John
Dave, Linda, Mike
Carrie
Dave, John
Linda
Mike
Dave, Carrie, John, Mike
我的目标是计算每个员工的存在。
现在,这里是棘手的部分:
列表 B 每天更新,每个单元格包含多个名称。
随着一些员工加入团队和其他人离开,列表 A 也会更新。
每个班次可以是白班,也可以是夜班(列在列表 B 旁边的另一列中),我需要分别计算它们。
Day/night 列位于 shift 列旁边的平行列中,具有“Day”或“Night”两个值之一
所以我的想法是创建一个数组公式,它可以根据列表 A 中的值的数量进行扩展或缩小。问题是,我无法使用整个 {list A} 作为第一个参数搜索功能。
我试过以下方法:
=Arrayformula(IF(INDIRECT("A2"):INDIRECT(CONCATENATE("A",MAX(Arrayformula(IF(isblank($A:$A),"",Row($A:$A)))))) = 0,"",COUNTIFs('Import_shift_data'!$P:$P,INDIRECT("A2"):INDIRECT(CONCATENATE("A",MAX(Arrayformula(IF(isblank($A:$A),"",Row($A:$A)))))),'Import_shift_data'!$M:$M,"Night")))
. 但是这个公式只适用于一个员工的轮班。
我也写了这个:
=Countifs(Arrayformula(ISNUMBER(SEARCH(A2,'Import_shift_data'!$P:$P))),"true",'Import_shift_data'!$M:$M,"Night")
效果很好,但是每次更新列表 A(公鸡)时,我都需要手动向上或向下拖动它。
所以我的最终游戏是有两个数组,一个计算每个员工的夜班,一个计算白班。这些数组应该根据公鸡的大小自动缩小或扩大。(清单 A)
注意:如果相关,我可能还会注意到 {List A} 中的姓名可能包含多个单词,以防有两名员工的名字相同。
电子表格的副本:
https://drive.google.com/open?id=1HRDAy9-T_rflFpzanZq0fmHpV0jTZg6Rc4vHyOu-1HI