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

如何用可复制粘贴的SUMIF公式求和RIGHT函数返回的文本型时长

解决Google Sheets文本型时长按姓名求和的问题

问题原因

你之前用的=SUMIF(A3:A,G3,VALUE(F3:F))无效,核心原因是SUMIF的求和区域不支持直接嵌套函数生成的数组——它要求求和区域是原生单元格区域,无法自动对每个单元格执行VALUE转换后再求和。

可行解决方案

针对文本型时长(hh:mm:ss格式)按姓名求和,且公式可跨工作表复制,推荐两种实用方法:

1. 单单元格可复制公式(SUMPRODUCT版)

适合手动复制到单个单元格使用,公式:

=SUMPRODUCT(--(A:A=A3), TIMEVALUE(G:G))
  • --(A:A=A3):将姓名匹配的逻辑判断转为0/1的数值数组,标记需要求和的行
  • TIMEVALUE(G:G):专门将文本型时长转为可计算的时间数值(返回0-1的小数,代表一天中的时间占比)
  • 完成输入后,记得把单元格格式设置为[h]:mm:ss(方括号用于允许小时数超过24,避免自动转为天数格式)

2. 自动填充数组公式(适配动态表单数据)

如果需要表单新增数据时自动更新求和结果,可在结果列首单元格(比如H3)输入:

=ARRAYFORMULA(IF(A3:A="", "", SUMIFS(TIMEVALUE(G:G), A:A, A3:A)))
  • 公式会自动向下填充,空行自动返回空值,无需手动复制
  • 表单新增数据时,公式会自动识别并更新对应姓名的求和结果

跨工作表使用说明

复制公式到其他工作表时,只需给单元格区域引用加上工作表名称前缀即可,比如:
单单元格版:

=SUMPRODUCT(--(Sheet2!A:A=Sheet2!A3), TIMEVALUE(Sheet2!G:G))

数组公式版:

=ARRAYFORMULA(IF(Sheet2!A3:A="", "", SUMIFS(TIMEVALUE(Sheet2!G:G), Sheet2!A:A, Sheet2!A3:A)))

内容的提问来源于stack exchange,提问作者Fittercleric60

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 06:10:05