连续列条件求和:多人员任务总时长换算求和公式咨询
任务总时长自动计算的Excel公式方案
嘿,我来帮你搞定这个任务时长求和的问题!咱们的目标是把同一行里所有带单位(分钟/小时)的时长统一转成分钟,然后自动求和,而且因为人员数量远多于4人,公式得能适配后面新增的列,不用每次手动调整范围。
通用版公式(适配所有Excel版本)
直接在B2单元格输入下面的公式就行:
=SUMPRODUCT(--LEFT(C2:XFD2,FIND(" ",C2:XFD2)-1)*IF(RIGHT(C2:XFD2,2)="hr",60,1))
我给你拆解下逻辑:
LEFT(C2:XFD2,FIND(" ",C2:XFD2)-1):提取每个时长单元格里的数字部分,--是把提取到的文本转成可计算的数值IF(RIGHT(C2:XFD2,2)="hr",60,1):判断单位,如果是小时(hr)就乘以60转成分钟,分钟的话乘以1保持不变SUMPRODUCT:自动把每个数字和对应的转换系数相乘,然后求和,而且不用按数组公式的组合键,用起来更省心- 用
C2:XFD2是因为Excel的最大列就是XFD,不管后面加多少人员列,这个范围都能覆盖到
简洁版公式(仅Excel 365/2021可用)
如果你用的是新版Excel,这个公式更直观:
=SUM(--TEXTBEFORE(C2:XFD2," ")*IF(TEXTAFTER(C2:XFD2," ")="hr",60,1))
逻辑和上面一致,只是用TEXTBEFORE直接提取空格前的数字,TEXTAFTER提取空格后的单位,写法更简洁,新版Excel支持动态数组,SUM就能直接处理整个范围。
验证你的例子
拿你说的任务A来测试:假设对应的单元格内容是30 min、2 hr、150 min,公式会计算:30*1 + 2*60 + 150*1 = 300分钟,完全符合预期。
如果你的单位写法是中文(比如"分钟"、"小时"),只要把公式里的判断条件改成对应的文字就行,比如把RIGHT(C2:XFD2,2)="hr"改成RIGHT(C2:XFD2,2)="小时"。
内容的提问来源于stack exchange,提问作者ikusimakusi
相关产品推荐
相关产品推荐

