我有一个横向列出数据的工作日程表。我需要根据几个不同的标准来计算日程表中的总时数。列出的行是人员的姓名、可用的小时数、他们正在工作的班次以及他们正在使用的机器。我附上了一张布局的图片。
基本上,我想要按机器、班次和周数列出的总小时数。因此,在附件中,如果班次是1,机器是300,周数是40 (第一行),它应该返回值8。
我已经尝试了常规的sumif,尝试sumproduct (以前从未真正使用过),使用所有列,而只使用一列,什么都没有。我已经设置了一些命名范围,以防万一,但我仍然收到错误。我不经常使用数组,但我想这也会有帮助。

任何帮助都将不胜感激!我正在慢慢地学习TypeScript,所以如果它能以某种方式帮助我,我也对此持开放态度。
谢谢!
发布于 2021-09-23 17:18:16
由于你的布局,你需要做一个相当复杂的方程式。如果你有Excel 365,那就简单多了。
您需要创建整个表的数组,然后创建掩码数组,然后根据需要求和。
例如,下面是所有值的数组:
=IF(ISNUMBER(A1:Z26),A1:Z26,0)要创建一个掩码来删除除第40周以外的所有掩码,请使用:
=IF(A1:Z26=40,ISNUMBER(A1:Z26),0)按班次和机器过滤变得更加困难,因为您是按行过滤的,但您需要的信息在另一行上。以下是如何在shift 1中执行此操作:
=IF(OFFSET(A1:Z26,1,0)=1,ISNUMBER(A1:Z26),0)机器的偏移量会发生变化。下面是如何在机器300上执行此操作:
=IF(OFFSET(A1:Z26,2,0)=300,ISNUMBER(A1:Z26),0)现在,您需要将所有这些内容相乘。它将创建一个包含电子表格中所有值的数组,但您过滤出的值将为零。然后对数组求和:
=SUM(IF(ISNUMBER(A1:Z26),A1:Z26,0) * IF(A1:Z26=40,ISNUMBER(A1:Z26),0) * IF(OFFSET(A1:Z26,1,0)=1,ISNUMBER(A1:Z26),0) * IF(OFFSET(A1:Z26,2,0)=300,ISNUMBER(A1:Z26),0))https://stackoverflow.com/questions/69300188
复制相似问题