You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LibreOffice/OpenOffice Calc:统计每组中存在有效工作时长的子组数量

LibreOffice/OpenOffice Calc:统计每组中存在有效工作时长的子组数量

嘿,我完全懂你被迫切换到Calc的心情——毕竟用惯了Excel突然换工具确实闹心😅不过你的这个统计需求,其实有个优雅又能直接下拉的解法,不用堆砌一堆嵌套函数,来看看:

核心思路

我们要做的是:对每个组,检查它的每个子组对应的C到AF列里,是否存在至少一个大于0的工作时长;只要有一个,这个子组就算“有效”,最后把同组的有效子组数量加起来。

可直接下拉的公式

假设你的数据从第2行开始(第1行是表头),你可以在空白列(比如AG列)的AG2单元格里输入这个公式:

=SUMPRODUCT(($A$2:$A$100=A2)*(--(MMULT(--($C$2:$AF$100>0),ROW($C$1:$AF$1)^0)>0)))

输入完成后直接下拉公式,每一行都会自动算出对应组的有效子组数量。

公式简单拆解(怕你好奇原理)

  • $A$2:$A$100=A2:筛选出当前行所在组的所有数据行,返回一组布尔值(TRUE/FALSE)
  • --($C$2:$AF$100>0):把C到AF列里大于0的单元格转成1,小于等于0的转成0(--是把布尔值快速转成数值的小技巧)
  • MMULT(...,ROW($C$1:$AF$1)^0):用矩阵乘法对每一行(每个子组)的1求和,只要该子组有一个大于0的时长,结果就会大于0
  • --(...)>0:把上面的求和结果转成1(有效子组)或0(无效子组)
  • 最后SUMPRODUCT把同一组的这些1和0相加,就得到了该组的有效子组总数

小提示

记得把公式里的$A$2:$A$100和$C$2:$AF$100改成你实际的数据范围哦——比如你的数据到第500行,就换成$A$2:$A$500和$C$2:$AF$500,这样才会覆盖所有数据~

备注:内容来源于stack exchange,提问作者Greg_em

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 13:08:06