Excel精英培训网

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

[已解决]求自定义函数代码

[复制链接]
发表于 2012-6-15 17:31 | 显示全部楼层 |阅读模式
高手进来看一看啦,需要实现的功能为:
计算A物品的租金,其规则为,第0到第50天免费,第51天道地100天每天10元,第101天到第160天每天20元,超过160天之后的部分每天50元。
要求自定义的函数的参数为两个,第一个参数为开始租的第一天,第二个参数为截止计算租金的那一天,如
rent(2012-01-01,2012-02-01)=0
最佳答案
2012-6-15 19:44
本帖最后由 Benol 于 2012-6-15 19:50 编辑

这样的问题用VBA有点太牛刀小用了,简单的公式就可以了。
假设,A1为起始日期,B1为结束日期,
  1. =SUM(TEXT((B1-A1)-{158,99,49,0},"0;!0")*{30,10,10,0})
复制代码
我猜2楼有点误会楼主意思了,而且临界点的处理也不太对。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-6-15 17:37 | 显示全部楼层

  1. Sub a()
  2.     MsgBox b("2012-5-1", "2012-6-1")
  3. End Sub

  4. Function b(x As Date, y As Date) As Integer
  5.     Select Case y - x
  6.     Case 0 To 50
  7.         b = 10
  8.     Case 51 To 100
  9.         b = 20
  10.     Case 101 To 160
  11.         b = 20
  12.     Case Else
  13.         b = 50
  14.     End Select
  15. End Function
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-6-15 19:42 | 显示全部楼层

RE: 求自定义函数代码

Select 发表于 2012-6-15 17:37

内容大哥,你没理解意思。假设是第102天,则租金为50*10+20*2
回复

使用道具 举报

发表于 2012-6-15 19:44 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Benol 于 2012-6-15 19:50 编辑

这样的问题用VBA有点太牛刀小用了,简单的公式就可以了。
假设,A1为起始日期,B1为结束日期,
  1. =SUM(TEXT((B1-A1)-{158,99,49,0},"0;!0")*{30,10,10,0})
复制代码
我猜2楼有点误会楼主意思了,而且临界点的处理也不太对。
回复

使用道具 举报

发表于 2012-6-15 20:05 | 显示全部楼层
谢谢Benol提醒!
b的免费和10元,我搞错了。
说的是,这本是函数的活,不如直接用函数。学习

Sub a()
    MsgBox b("2012-5-1", "2012-6-1")
End Sub
Function b(x As Date, y As Date) As Integer
    Select Case y - x
    Case 0 To 50
        b = 0
    Case 51 To 100
        b = 10
    Case 101 To 160
        b = 20
    Case >160
        b = 50
    End Select
End Function



回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-29 14:27 , Processed in 0.415324 second(s), 9 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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