楼主: chris_fang
6478 24

[程序分享] 【非常有用的Excel自定义函数】 [推广有奖]

  • 0关注
  • 0粉丝

初中生

9%

还不是VIP/贵宾

-

威望
0
论坛币
148 个
通用积分
0.0600
学术水平
5 点
热心指数
5 点
信用等级
5 点
经验
229 点
帖子
8
精华
0
在线时间
3 小时
注册时间
2010-3-11
最后登录
2010-5-23

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
Substitute函数每次只能对单个字符或字符串进行替换,如果要对某个目标字符串替换两个以上的内容,需要使用Substitute函数的嵌套。要能够进行多重替换,可以编制自定义函数,参考以下代码:
  1. Function Subst(ParamArray arglist()) As String
  2. Text = arglist(0)
  3. For i = 1 To UBound(arglist) - 1 Step 2
  4. Text = Replace(Text, arglist(i), arglist(i + 1))
  5. Next i
  6. Subst = Text
  7. End Function
复制代码


使用效果如下:
案例.png

附件:
自定义函数_多重替换.rar (8.51 KB) 本附件包括:
  • 自定义函数_多重替换.xls
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:自定义函数 EXCEL 非常有用 xcel exce EXCEL 自定义函数

沙发
chris_fang 发表于 2010-5-2 11:27:19 |只看作者 |坛友微信交流群
Vlookup函数和Hlookup函数在进行查询时,必须以Table_array的首行或首列作为查询对象所在的基准位,当数据表中存在多个列标题或行标题时,使用上述两个函数进行查询就不太方便。要制作没有限定查询位置的自定义函数,可参考如下代码:

本帖隐藏的内容

  1. Function xlookup(lookupvalue, table_array As Range, Optional index = 1, Optional opt = 0)
  2. For Each i In table_array
  3. If i.Value = lookupvalue Then
  4. If opt = 1 Then
  5. xlookup = i.Offset(index, 0).Value
  6. Else
  7. xlookup = i.Offset(0, index).Value
  8. End If
  9. End If
  10. Next
  11. End Function
复制代码



使用效果如下:
案例2.png

使用说明:
说明:
函数第一参数为查询目标,
第二参数为目标区域,
第三参数为查询结果的列偏移或行偏移,默认为1(即向右或向下偏移一个单元格),可省略。
第四参数为查询方式,默认为0,表示纵向查询(与Vlookup函数方式相同),参数为1时表示横向查询(与Hlookup函数方式相同),可省略。

附件:

本帖隐藏的内容

自定义函数_任意位置查询.rar (9.39 KB) 本附件包括:
  • 自定义函数_任意位置查询.xls

已有 1 人评分经验 论坛币 收起 理由
coral033 + 100 + 20 根据规定进行奖励

总评分: 经验 + 100  论坛币 + 20   查看全部评分

使用道具

藤椅
violetaa 发表于 2010-5-2 12:28:27 |只看作者 |坛友微信交流群
谢谢分享!!!!!!!

使用道具

板凳
gouweicao78 发表于 2010-5-2 15:26:55 |只看作者 |坛友微信交流群
谢谢分享!

使用道具

报纸
zgl1988510 发表于 2010-5-2 16:08:34 |只看作者 |坛友微信交流群
谢谢分享了!

使用道具

地板
shukun226 发表于 2010-5-6 16:01:37 |只看作者 |坛友微信交流群
感谢楼主分享

使用道具

7
chris_fang 发表于 2010-5-11 14:45:15 |只看作者 |坛友微信交流群
【可以进行交叉双条件查询的自定义函数】
通常情况下,进行横向和纵向满足两个条件的交叉查询需要使用查找引用函数进行组合编写公式,使用自定义函数就可以很方便的搞定,效果如下:

案例3.png

代码和附件如下:

本帖隐藏的内容

  1. Function inlookup(vlookupvalue, hlookupvalue, table_array As Range)
  2. index = Application.Match(hlookupvalue, table_array.Rows(1), 0)
  3. inlookup = Application.VLookup(vlookupvalue, table_array, index, 0)
  4. End Function
复制代码


自定义函数_交叉查询.rar (10.12 KB) 本附件包括:
  • 自定义函数_交叉查询.xls

已有 1 人评分论坛币 收起 理由
coral033 + 50 根据规定进行奖励

总评分: 论坛币 + 50   查看全部评分

使用道具

8
dengtiruo 发表于 2010-5-11 18:46:51 |只看作者 |坛友微信交流群
感谢楼主分享
本文来自: 人大经济论坛 详细出处参考:http://www.pinggu.org/bbs/viewth ... amp;from^^uid=1082446

使用道具

9
241king 发表于 2010-5-11 22:36:51 |只看作者 |坛友微信交流群
xiexie谢谢啦!下啦!

使用道具

10
tjping87 发表于 2010-5-12 13:48:57 |只看作者 |坛友微信交流群
非常感谢楼主分享!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-6 09:49