ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: rfnli

按条件合并

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-5-24 12:04 | 显示全部楼层
函数改成这样就可以直接引用了。比如在单元格中D2直接输入=getchoice(C2),然后下拉就行了。
  1. Public Function GetChoice(xrng As Range) As String
  2.     With Sheet1
  3.         r = .[a65536].End(3).Row
  4.         arr = .Range("a1:c" & r)
  5.             c = xrng.Value: c1 = xrng.Offset(1, 0).Value: xstr = ""         'c为C列当前行字符,c1为C列下一行字符
  6.             For j = 2 To UBound(arr)
  7.                 If InStr(c, "<") > 0 Then            '如果c包含“<”(小于某数)
  8.                     jdg = Val(Replace(c, "<", ""))        '提取“<”前面的数字作为判断“小于”的数值
  9.                     If arr(j, 2) < jdg Then xstr = xstr & arr(j, 1) & "(" & arr(j, 2) & ") "      '如果条件满足,字符累加
  10.                 End If
  11.                
  12.                 If InStr(c, "-") > 0 And InStr(c1, "-") > 0 Then   ' 如果c包含“-”,c1包含“-”(界于两数之间)
  13.                     jdg = Val(c): jdg1 = Val(c1)
  14.                     If jdg <= arr(j, 2) And arr(j, 2) < jdg1 Then xstr = xstr & arr(j, 1) & "(" & arr(j, 2) & ") "
  15.                 End If
  16.                
  17.                 If InStr(c, "-") > 0 And InStr(c1, "-") = 0 Then   '如果c包含“-”,c1不包含“-”(大于某数)
  18.                     jdg = Val(c)
  19.                     If jdg <= arr(j, 2) Then xstr = xstr & arr(j, 1) & "(" & arr(j, 2) & ") "
  20.                 End If
  21.                
  22.             Next
  23.             GetChoice = Trim(Replace(xstr, "(.", "(0."))   '因为小数如0.23的“0”不显示,所以遇到“(.”就替代成“(0.”
  24.     End With
  25. End Function
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 13:42 , Processed in 0.031189 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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