ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2403|回复: 11

[求助] 月份数的算法

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-4-27 14:59 | 显示全部楼层 |阅读模式
本帖最后由 longfukuai16 于 2018-4-28 08:05 编辑

开始没表达清楚,导致楼下的大神们的公式没得解决问题,重新上传附件,还是在线等,谢谢!

月份数算法 - 2.rar

129.21 KB, 下载次数: 1

TA的精华主题

TA的得分主题

发表于 2018-4-27 15:09 | 显示全部楼层
日期格式五花八门,不少还是错误格式,想用公式解决还是先整理好数据再说吧

TA的精华主题

TA的得分主题

发表于 2018-4-27 15:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不知道是不是这个意思?
  1. =DATEDIF(MAX("2016-12-1",SUBSTITUTE(E2,".","-")*1),MIN("2017-12-31",SUBSTITUTE(G2,".","-")*1),"m")+(DAY(SUBSTITUTE(G2,".","-")*1)>=15)
复制代码

TA的精华主题

TA的得分主题

发表于 2018-4-27 15:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
来抛砖引玉。后面那些质保期什么乱七八糟的不管,单从I列取数计算月份,公式如下:
=DATEDIF(DATE(LEFT(I2,4),MID(I2,6,FIND("-",I2)-6),1),DATE(MID(I2,FIND("-",I2)+1,4),RIGHT(I2,LEN(I2)-FIND(".",I2,8)),1),"M")+1
另,你有多行数据有问题:I86、I222格式有误;I400算错了,I451、I453、I457、I458无数据。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-27 16:46 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-27 16:50 | 显示全部楼层
longfukuai16 发表于 2018-4-27 16:46
公式不错,就是有些还有问题。

比如验收日期2016-7-11到质保日期2018.7.11的,应该是17年12个月再加16年12月1个月=13个月才对,但是你的公式算出来的只有12个月,看能不能再修改一下。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-27 17:25 | 显示全部楼层
不好意思,开始我表达有点错误,重新上传附件。

月份数算法 - 2.rar

122.63 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2018-4-27 17:25 | 显示全部楼层
longfukuai16 发表于 2018-4-27 16:50
比如验收日期2016-7-11到质保日期2018.7.11的,应该是17年12个月再加16年12月1个月=13个月才对,但是你的 ...

那么试试这个:

=DATEDIF(MAX("2016-12-31",SUBSTITUTE(E2,".","-")*1),MIN("2017-12-31",EOMONTH(SUBSTITUTE(G2,".","-")*1,0)+1),"m")+1

如果都是标准的日期格式:
=DATEDIF(MAX("2016-12-31",E2),MIN("2017-12-31",EOMONTH(G2,0)+1),"m")+1

TA的精华主题

TA的得分主题

发表于 2018-4-27 17:29 | 显示全部楼层
非标日期太多,需要用大量公式修正。还是规范日期书写吧。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-4-27 17:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
袁勇 发表于 2018-4-27 17:25
那么试试这个:

=DATEDIF(MAX("2016-12-31",SUBSTITUTE(E2,".","-")*1),MIN("2017-12-31",EOMONTH(SUB ...

第一个公式没问题,就有个地方我没表达清楚,如下:还要注意的是:质保期如果是在2017年12月31日之前的,而且是在某月的15号(含15号)前的,这个月不能算为1个月,比如,质保期到2017年3月14日的,那17年只能算2个月,如果质保期是到2017年3月16日的,则17年算3个月。-----------------------------------在第一个公式的基础上把这个再修正一下就行了,
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 21:47 , Processed in 0.038395 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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