ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: delete_007

[Excel 函数与公式] [开_136]工时合计

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-10-29 18:51 | 显示全部楼层
  1. =TEXT(INT(SUM(COUNTIF(B2:F2,TEXT(ROW($1:$1999)-1,"0!d;;")&TEXT(COLUMN(A:P)/2-0.5,"G/通用格式!h;;"))*(ROW($1:$1999)-1+(COLUMN(A:P)/2-0.5)/8))),"0!d;;")&TEXT(MOD(SUM(ISNUMBER(SEARCH("*d"&ROW($1:$16)/2&"h","d"&B2:F2))*ROW($1:$16)/2)/8,1)*8,"G/通用格式!h;;")
复制代码
超长公式

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-10-31 08:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 一嘟噜钥匙 于 2012-11-2 15:40 编辑


=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(SUM((0&MID(100&SUBSTITUTE(B2:F2,"d","d00"),FIND({"d";"h"},SUBSTITUTE(B2:F2,"d","d00")&"000dh"),3))*{8;1})/8,"#\d00/80\h;;"),"0/80",),"5/80",".5"),"d0h","d")

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(SUM(--SUBSTITUTE(TEXT("0"&SUBSTITUTE(SUBSTITUTE(B2:F2,"h","0"),".50","5"),"0 00")&"/80","d"," 0")),"#\d00/80\h;;"),"0/80",),"5/80",".5"),"d0h","d")

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-10-31 20:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 lishengping666 于 2012-11-1 16:46 编辑

20121022工时合计.zip (6.14 KB, 下载次数: 16) 如下183个字符,通过测试:
'=SUBSTITUTE(SUBSTITUTE(TEXT(SUM(IFERROR(LEFT(B2:F2,FIND("d",B2:F2)-1),)+REPLACE(SUBSTITUTE(B2:F2&0,"h0",),1,IFERROR(FIND("d",B2:F2),),)/8),"[>]#\d#/80\d;"),"5/80d",".5h"),"0/80d","h")

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-11-1 20:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=TEXT(INT(SUM(IF(ISERR(FIND("d",B2:F2)),0,LEFT(B2:F2,FIND("d",B2:F2)-1))+RIGHT(SUBSTITUTE(SUBSTITUTE(0&B2:F2,"h",""),"d",0)*10,2)/80)),"0\d;;")&TEXT(MOD(SUM(--RIGHT(SUBSTITUTE(SUBSTITUTE(0&B2:F2,"h",""),"d",0)*10,2)),80)/10,"g/通用格式\h;;")
公式很长,要换思路,有空再想想,

20121022工时合计00.zip

6.22 KB, 下载次数: 7

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-11-2 08:10 | 显示全部楼层
本帖最后由 fugb-2010 于 2012-11-3 13:58 编辑

G2=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(SUM(LEFT(RIGHT(SUBSTITUTE("d"&B2:F2,"d",".0000000"),{8;15}),7)/{8;1}),"#!d00/80!d;;"),"0/80d","h"),"5/80d",".5h"),"0h",)

解题思路:
⑴、B2:F2每个单元前加"d"字符,并以".0000000"字符串替换之形成新字符串
⑵、对数据⑴字符串倒数提取并分列以d型式进行求和
    数据⑵=SUM(LEFT(RIGHT(SUBSTITUTE(数据,"d",".0000000"),{8;15}),7)/{8;1})
⑶、对数据⑵以"00d00/80d"形式显示
    数据⑶=TEXT(数据⑵,"#!d00/80!d;;")
⑷、"0/80d"替换主"h"、"5/80d"替换为".5h"、"0h"替换为空白
    数据⑷=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(数据⑶,"#!d00/80!d;;"),"0/80d","h"),"5/80d",".5h"),"0h",)

工时合计-fugb-2010.rar

11.09 KB, 下载次数: 23

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-11-2 18:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
笨方法,248字符:

=TEXT(SUM(ISNUMBER(FIND(0&ROW($1:$999)&"d",0&B2:F2))*ROW($1:$999))+INT(SUM(ISNUMBER(FIND("d"&ROW($1:$15)/2&"h","d"&B2:F2))*ROW($1:$15)/2)/8),"[=] ;0!d")&SUBSTITUTE(MOD(SUM(ISNUMBER(FIND("d"&ROW($1:$15)/2&"h","d"&B2:F2))*ROW($1:$15)/2),8)&"h","0h",)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-11-3 15:45 | 显示全部楼层
  1. =TEXT(INT(SUM(COUNTIF(B2:F2,ROW(A:A)&"d*")*ROW(A:A))+SUM(ISNUMBER(FIND("d"&ROW($1:$15)/2&"h","d"&B2:F2))*ROW($1:$15)/16)),"0!d;;")&TEXT(MOD(SUM(ISNUMBER(FIND("d"&ROW($1:$15)/2&"h","d"&B2:F2))*ROW($1:$15)/2),8),"G/通用格式!h;;")
复制代码
题目倒是难,难点主要是字数限制。写了个223字节的可以得到结果。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-11-3 19:49 | 显示全部楼层
昨天才看到,有事了没时间想了
=TEXT(SUM(MMULT(--MID(SUBSTITUTE(SUBSTITUTE(IF(FIND("d",B2:F2&"d")>LEN(B2:F2),"d"&B2:F2,B2:F2),"h",),"d","  00"),{1;4},{3;9}),ROW($1:$5)^0)/{1;8}),"0!d;;;")&SUBSTITUTE(TEXT(MOD(SUM(--RIGHT(SUBSTITUTE(SUBSTITUTE("d"&B2:F2,"h",),"d","000"),3)),8),"#.0!h;;;"),".0",)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-11-4 13:54 | 显示全部楼层
fugb-2010 发表于 2012-11-2 07:10
G2=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(SUM(LEFT(RIGHT(SUBSTITUTE("d"&B2:F2,"d",".0000000"),{8;15}) ...

学习FUGB的求和及替换技巧,分母用80保留了.5的信息,很精彩。
还可简化一点,151:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(TEXT(SUM(LEFT(RIGHT(SUBSTITUTE("d"&B2:F2,"d",".0000000"),{8;15}),7)/{8;1}),"#!d00/80\h"),"0/80",),"5/80",".5"),"0h",)

150以内估计还有可能。

TA的精华主题

TA的得分主题

发表于 2012-11-4 16:19 | 显示全部楼层
本帖最后由 lishengping666 于 2012-11-4 16:33 编辑
hjj0451 发表于 2012-11-4 13:54
学习FUGB的求和及替换技巧,分母用80保留了.5的信息,很精彩。
还可简化一点,151:
=SUBSTITUTE(SUBST ...

结合FUGB求和的方法与我上面使用的格式与替换方法 142 个字符通过测试:
=SUBSTITUTE(SUBSTITUTE(TEXT(SUM(LEFT(RIGHT(SUBSTITUTE("d"&B2:F2,"d",".0000000"),{8;15}),7)/{8;1}),"[>]#\d#/80\d;"),"5/80d",".5h"),"0/80d","h")

hjj0451老师给我送鲜花的理由是" /80"(在此谢谢老师送的鲜花)
不过个人觉得,我上面公式中使用的text( ,"[>]#\d#/80\d;")比较简洁,可以节省不少的字符(在FUGB老师的方法上少替换一次"0h")。

点评

说错了,你13楼的2007公式我没有测试。  发表于 2012-11-4 16:41
你的20楼的2007公式我没有测试。  发表于 2012-11-4 16:40
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 12:19 , Processed in 0.052304 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表