Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1713|回复: 7

[已解决]求助写一个自定义函数

[复制链接]
发表于 2017-4-6 23:00 | 显示全部楼层 |阅读模式
需求如下:1、一个自定函数:cyc
2、第一个参数:为一个时间值
     第二个参数:一个自由设定的时间值作为计算的开始点
    第三个参数:周期
3、例如在下面的公式中,2017-4-6是第一周,2017-4-12相对于4-6则是第二周(周期是6天),2017-4-1相对于4-6则是负第1周
其他同理


2017-04-06_225413.jpg


自定义函数.rar (6.27 KB, 下载次数: 1)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-4-7 09:38 | 显示全部楼层    本楼为最佳答案   
CycFunction-AddIn-packed.rar (172 KB, 下载次数: 10)

评分

参与人数 3 +72 金币 +60 收起 理由
心正意诚身修 + 30 + 30 小杰,带我装逼带我飞!
望帝春心 + 30 + 30 歌神求带飞
ghostjiao + 12 杰神,带我!!!!!

查看全部评分

回复

使用道具 举报

发表于 2017-4-7 09:47 | 显示全部楼层
回复

使用道具 举报

发表于 2017-4-7 10:06 | 显示全部楼层

有毒??请截图给我看看
A65.gif
回复

使用道具 举报

发表于 2017-4-7 10:25 | 显示全部楼层
C:\Users\Administrator\Desktop\1
回复

使用道具 举报

发表于 2017-4-7 10:34 | 显示全部楼层
我的动态截图咋发不上来
回复

使用道具 举报

发表于 2017-4-7 10:34 | 显示全部楼层

你这个路径……我看不到……
回复

使用道具 举报

发表于 2017-4-7 10:39 | 显示全部楼层
Public Function fPeriod(rng, my_Date, iPeriod)
    If (DateValue(my_Date) <= rng) Then '第
        iDay = Application.WorksheetFunction.Days360(my_Date, rng) + 1
        iCyc = iDay / iPeriod
        If iCyc > 1 Then
            If Int(iCyc) = iCyc Then
                 fPeriod = "第" & Int(iCyc)
            Else
                 fPeriod = "第" & Int(iCyc) + 1
            End If
        Else
            fPeriod = "第" & 1
        End If
    Else                                '负第
        iDay = Application.WorksheetFunction.Days360(rng, my_Date) + 1
        iCyc = iDay / iPeriod
        If iCyc > 1 Then
             If Int(iCyc) = iCyc Then
                fPeriod = "负第" & Int(iCyc)
             Else
                fPeriod = "负第" & Int(iCyc) + 1
             End If
            
        Else
            fPeriod = "负第" & 1
        End If
        
    End If

End Function
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-11 04:40 , Processed in 0.281886 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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