劳动人 发表于 2022-1-31 16:02:11

大神,你这个是VBA代码吗??VBA惭愧,不会啊,感谢感谢。

浅海呆鱼 发表于 2022-2-2 03:27:47

满勤补贴天数,没有怎么验证,建议还是更改表格格式吧,这样就算公式没问题,通用性也不好,条件有变化的时候,改公式也是非常令人头大的!!!
Z3=AA3+SUM(--TEXT(IFERROR(--LEFT(TEXT(MID(K3:V3&"#",IF(ISERR(-K3:V3),FIND("实",SUBSTITUTE(K3:V3,"节","实")),)+1,ROW(1:9)),),ROW(1:9)-1),),"[>=16]2;[>=8]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"停";"实"},K3:V3)+1,FIND({"实";"#"},K3:V3&"#")-{2;1}),{4;0})),"["&{"<4";">=12";">=16"}&"]2;["&{"<4";">=4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"实";"停"},K3:V3)+1,FIND({"停";"#"},K3:V3&"#")-{2;1}),{0;4})),"["&{">=12";"<4";">=16"}&"]2;["&{">=4";"<4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))
AA3=SUM(--TEXT(IFERROR(--LEFT(TEXT(MID(K3:V3&"#",FIND("节",)+1,ROW(1:9)),),ROW(1:9)-1),),"[>=16]2;[>=8]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"停";"节"},K3:V3)+1,FIND({"节";"#"},K3:V3&"#")-{2;1}),{4;0})),"["&{"<4";">=12";">=16"}&"]2;["&{"<4";">=4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"节";"停"},K3:V3)+1,FIND({"停";"#"},K3:V3&"#")-{2;1}),{0;4})),"["&{">=12";"<4";">=16"}&"]2;["&{">=4";"<4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))
AB3=(W3<16)*COUNT(0/(SUBSTITUTE(K3:V3,"停",)*FIND("停",K3:V3)^0>=4))

孤行羔羊 发表于 2022-2-5 01:14:17

牛人,太牛了,解决了我的大难题啊 。感谢感谢
只是不解为什么

也计算了1天正常满勤补贴天数呢(节日满勤补贴单独有1列的)???您的公式我现在想改无从下手,麻烦帮忙调下。
说明:16>实+停>=8,且停<4,或实+缺、节+缺、实+停(节+停逻辑同理),但停>=4、单个实XX的组合中16>实>=8,计算1天满勤补贴,实+停>=16,且停<4或实+缺、节+缺、实+停(节+停逻辑同理),但停>=4、单个实XX的组合中实>=16计算2天满勤补贴。

培养老赖的沃土 发表于 2022-2-8 01:26:06

你把表改一下不就好做了吗?

说什么都对 发表于 2022-2-8 14:03:45

如果对你的源数据加一个限制,就是有“停”有“实”(比如“停1.5实9”)或者有“停”有“节”(比如“停4节4”)的单元格,都规定只能是“停”在前面,也就是说只能记成“停1.5实9“或“停4节4”,而不能记成“实9停1.5“或“节4停4”,那样公式会短很多:
Z3=AA3-SUM(-TEXT(MMULT({1,1,-1},IFERROR(--SUBSTITUTE(K3:V3,{"实";"节";""},),)),"[>=16]2;[>=8]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"停";"实"},K3:V3)+1,FIND({"实";"#"},K3:V3&"#")-{2;1}),{4;0})),"["&{"<4";">=12";">=16"}&"]2;["&{"<4";">=4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))
AA3=SUM(--TEXT(IFERROR(--SUBSTITUTE("#"&K3:V3,"#节",),),"[>=16]2;[>=8]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"停";"节"},K3:V3)+1,FIND({"节";"#"},K3:V3&"#")-{2;1}),{4;0})),"["&{"<4";">=12";">=16"}&"]2;["&{"<4";">=4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))

花瓣里 发表于 2022-2-15 11:07:56

这样就1天的数据有4列单元格了,就是做过更麻烦。我们当时做的每日对应4行数据,你这个是每日对应4列,主要是小时工考勤数据还没系统化,需要考勤员或班组长手工填数,当时用4行数据差点没把下面的考勤员作死

六好 发表于 2022-2-17 13:46:28

这组公式测试节日满勤补贴天数对了,应该解决问题了,但是正常满勤天数还是不对哦。
比如下方图片出勤数据:节日满勤天数是3天,正常满勤天数是7天=正常工作日补贴4天+节日满勤3天=7天。

磊夫子 发表于 2022-2-20 14:53:03

应该是节日满勤重复统计了:所以
Z3=AA3-SUM(-TEXT(IFERROR(--SUBSTITUTE(K3:V3,"实",),),"[>=16]2;[>=8]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"停";"实"},K3:V3)+1,FIND({"实";"#"},K3:V3&"#")-{2;1}),{4;0})),"["&{"<4";">=12";">=16"}&"]2;["&{"<4";">=4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))-SUM(-TEXT(MMULT({1,1,1},--TEXT(MMULT({1,0;0,1;1,1},IFERROR(--MID(K3:V3,FIND({"实";"停"},K3:V3)+1,FIND({"停";"#"},K3:V3&"#")-{2;1}),{0;4})),"["&{">=12";"<4";">=16"}&"]2;["&{">=4";"<4";">=8"}&"]1;-4")),"[=6]2;[>=4]1;!0"))

肖高卫 发表于 2022-2-21 14:50:11

哥,错怪你了,之前4行做死人,所以没想过用列的方式,现在发现用4列确实省事很多很多了,就是列太多了

崇山俊岭 发表于 2022-2-22 15:42:01

大神,不好意思,发现实XX缺XX和节XX缺XX 没取到数,比如实8缺1和节8缺1。帮忙再调调
页: 1 2 3 4 [5] 6
查看完整版本: 提取单元格指定汉字后的数字求和如何实现?