Excel VBA字符串vba 包含某字符串做判断怎么表示

查看: 10334|回复: 21
[已解决]如何从一个判断单元格中是否包含某个字符(已解决)
本帖最后由 紫星河 于
18:59 编辑
事情是这样的:
从财务账中导出的摘要,摘要中一般包含凭证号、报销人的名字、报销内容。
比如:625张三报销差旅费。
另有一张部门的人员名单。
现在想通过报销人的名字判断这笔分录属于哪个部门,即找到摘要和部门的对应关系。
附件中第一表为摘要,第二个表为部门人员名单。
求大侠编辑宏或公式,可以直接从摘要里查出来是属于哪个部门的。
跪求高手帮忙!
17:39 上传
点击文件名下载附件
15.48 KB, 下载次数: 61
最后登录 15:58&注册时间 15:06&金币20 &积分26&帖子&
金币20 &积分26&帖子&
tuotuo865发布于
紫星河 发表于
我也试过用vlookup函数,查不出的原因是因为把前面的编码过滤掉嘛?vlookup函数是不是从开始的地方比对的 ...
MID(B2,5,FIND(&报&,B2)-5)
这一段函数是将B列中的名字提取出来,然后用名字来V部门
VLOOKUP是从左向右顺序查找,看明白公式,其实很简单
& &如果答案是对的,要给个最佳答案哦……
在线等呀!哪位大侠帮帮忙呀
LOOKUP(99,FIND(MID(B2,5,FIND(&报&,B2)-5),人员名单!$B$2:$B$120),人员名单!$C$2:$C$120)
根据你的表单,可以这样。
结果显示#N/A,是指你的人员名单查无此人。
=VLOOKUP(MID(B2,5,FIND(&报&,B2)-5),人员名单!B:C,2,0)
&&在你的名单表里会有错误值,是因为你的名单里面没有这个人,比如孟令玉
& &希望能够解决你的问题,求最佳!!
Sub test()
& & Dim arra, arrb, arrc(), a&, b&, i&, j&, k!
& & a = Sheets(&08年&).Cells(65536, 2).End(xlUp).Row
& & b = Sheets(&人员名单&).Cells(65536, 2).End(xlUp).Row
& & ReDim arrc(1 To a - 1, 1 To 1)
& & arra = Sheets(&08年&).Range(&B2:B& & a)
& & arrb = Sheets(&人员名单&).Range(&B2:C& & b)
& & For i = 1 To a - 1
& && &&&For j = 1 To b - 1
& && && && &k = InStr(arra(i, 1), arrb(j, 1))
& && && && &If k & 0 Then arrc(i, 1) = arrb(j, 2): Exit For
& && &&&Next j
& & Next i
& & Sheets(&08年&).Range(&E2:E& & a) = arrc
18:21 上传
点击文件名下载附件
21.7 KB, 下载次数: 76
tuotuo865 发表于
=VLOOKUP(MID(B2,5,FIND(&报&,B2)-5),人员名单!B:C,2,0)
&&在你的名单表里会有错误值,是因为你的名单里 ...
谢谢呀,我先试试
<font color="# 发表于
Sub test()
& & Dim arra, arrb, arrc(), a&, b&, i&, j&, k!
& & a = Sheets(&08年&).Cells(65536, 2) ...
谢谢大侠,我学习学习
如果前面都是4个数字的话,可以这样
Sub cc()
Dim C As Range, Sh As Worksheet, Arr()
Dim Hx As Long, Xm As String
&&Set Sh = Sheets(&人员名单&)
&&With Sheets(&08年&)
& & Hx = .Range(&B65536&).End(xlUp).Row
& & Arr = .Range(&B2:B& & Hx).Value
& & For Hx = 1 To UBound(Arr)
& && &Xm = Mid(Split(Arr(Hx, 1), &报&)(0), 5, 5)
& && &Set C = Sh.Range(&B:B&).Find(Xm, , , 1)
& && &If C Is Nothing Then
& && &&&Arr(Hx, 1) = &未找到&
& && &Else
& && &&&Arr(Hx, 1) = C.Offset(, 1).Value
& && &End If
& & Next
& & .Range(&E2&).Resize(UBound(Arr), 1) = Arr
&&End With
End Sub
复制代码
=IF(TYPE(LOOKUP(1,0/(人员名单!B2:B120=MID(B2,5,FIND(&报&,B2)-5)),人员名单!C2:C120))=16,&查无此人!&,LOOKUP(1,0/(人员名单!B2:B120=MID(B2,5,FIND(&报&,B2)-5)),人员名单!C2:C120))
Powered byExcel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字 - 小小知识站
Excel统计出现次数、个数的VBA代码 java中怎么判断一个字符串中包含某个字符或字
描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? JAVA判断字符串数组中是否包含某字符串元素 C#如何判断字符串中是否包含某个字符 java在字符串中除去某字符串中包含的字符 正则表达式:字符串中必须包含某个字符的
使用如下的VBA代码,您就可以在Excel中,统计某个字符或某个数字,甚至是某个字符串,在某个数据区域范围内,所出现的次数,即出现几次,或称为有几个。代码如下,是VBA宏代码。Set myb = CreateObject(ing.dictionary): myb(数字) = 次数Set rng = Application.InputBox(选择要统计的区域:, Type:=8)ActiveSheet.Cells.Interior.ColorIndex = 0rng.Interior.ColorIndex = 3For Each rng1 In rngmyb(rng1.Value) = Application.WorksheetFunction.CountIf(rng, rng1)NextSet rng3 = Application.InputBox(选择结果输出地:, Type:=8)With rng3.Resize(myb.Count) = Application.Transpose(myb.keys).Offset(, 1).Resize(myb.Count) = Application.Transpose(myb.items)End WithSet myb = Nothing: Set rng3 = NothingEnd Sub
分享给小伙伴们:
主题:java中怎么判断一个字符串中包含某个字符或字符
描述:...一个字符串中包含某个字符的单词说出现的次数 c#什么方法可以判断字符串中包含某个字符的个数? J A判断字符串数组中是否包含某字符串元素 C#如何判断字符串中是否包含某个字符 java在字符串中除去某字符串中包含的字符 正则表达式:字符串中必须包含某个字符的
问题:请教高手,我想统计一列中部分单元格中出现不同数值的个数,回答:1.作辅助列,先求不重复值: 在任意一个单元格,例如B2 =IF(ROW(1:1)SUM(1/COUNTIF(A2:A100,A2:A100)),"",INDEX(A2:A100, ALL(IF(MATCH(A2:A100,A2:A100,)=ROW(A2:A100)-1,ROW(A2:A100)-1),ROW(1:1)))) 按ctrl+shift+enter生成数组(注:这里的A2:A100需要用绝对引用,A1为表头) 下拉 公式,非重复值就全部出来了。 接下来用countif函数来统计,估...... 问题:...际最优算法!执行效率高!回答:不知道有没有 最优,但我这个算法很顶尖了:计算1亿以内的素数个数不到2秒钟! 1到(10亿)共有素数个,计算时间大概20多秒! 程序如下: #includeiostreaint main(){int CompositeNumFilterV3(int); int m,c; c=CompositeNumFilterV3(m);return 0;} 求素数的程序int CompositeNumFilterV3(int n){ int i, 素数数量统计 int count = 0; 分配素数标记空间,明白+...... 问题:C语言求助 用rand()函数 在0-50中随机取10个数 如果其中有两回答:完整C程序 码如下: #include #include #include #define LENGTH 10 #define MAX 50 int main() { int a,b,c[LENGTH],d; /*主要定义一个长度为LENGTH的整型数组,用来存放所需的LENGTH个数*/ int i,o,p,q,ans=0; memset(c, 0, sizeof(c)); /*使用memset函数初始化数组*/ srand((unsigned) time(NULL)); /*置随机数 */ for(a=1; a=2) /*如果累加器的数值大于等于2,即相同的数为两...... 主题:awk 分析web日志页面执行时间常见应用3
描述:前一段时间,我写过一篇文章,shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢 ),其中提到了分析耗时页面重要性。今天主要讲的,是通过awk分析日志,快捷得到执行时间。在性能以及效率方面比前一篇提到的有很大提高!一、web日志 格式 码如下:二、执行 码
码如下:结果:性能: 422780条日志,统计完成速度是:5秒左右。
主题:水文频率计算求助
描述:...式。例如:抛10次硬币出现了4次正面则频率就为4/10=0.4。第二个公式是水文统计学上的。例如有5个数11、12、13、14、15。由大到小排列是15、14、13、12、11,序号分别对应1、2、3、4、5。则P2=2/(5+1)。n就是5;m就是2,对应的15和14这两个数。意思是大于等于14的数在总体中出现的频率。 类似问题:请问 公路中大中型桥梁设计洪水频率可以采用特大桥的1 水文频率分析 水文频率分析 水...
06-1506-1506-1506-1506-15
07-0909-1609-1608-0409-06
也许你感兴趣查看: 1855|回复: 15
excel不同单元格判断是否含有相同字符并作出判断
阅读权限20
在线时间 小时
(1.44 KB, 下载次数: 12)
08:30 上传
点击文件名下载附件
样例说明:
1、函数方法:
在sheet1的C列单元格中写入函数,要判断sheet2里A列每个单元格里的文本是否在sheet1中的A列单元格中含有(不是一 一对应的),若含有,则比较sheet1中B列中的数值与sheet2中B列相应单元格里数值,若一样显示1,若不一样显示0;若sheet1中不含有,则显示没有。
此法好像实现不了
2、vba编程:
首先判断sheet1里A列的每一行与sheet2里的A列对比,如果sheet1里的A列单元格包含有sheet2里A列单元格的字符(如T289),则进行比较金额是否一致,如果一致则返回“1”,不一致返回“0”;如果sheet2中A列单元格的某个字符不在sheet1中没有,则返回没“没有”
阅读权限95
在线时间 小时
& & Application.ScreenUpdating = False
& & For j = 2 To Sheets(2).Cells(Rows.Count, 1).End(3).Row
& && &&&For i = 2 To Sheets(1).Cells(Rows.Count, 1).End(3).Row
& && && && &If InStr(Sheets(1).Cells(i, 1), Sheets(2).Cells(j, 1)) & 0 Then
& && && && && & If Sheets(1).Cells(i, 2) = Sheets(2).Cells(j, 2) Then
& && && && && && &&&Sheets(2).Cells(j, 3) = 1
& && && && && & Else
& && && && && && &&&Sheets(2).Cells(j, 3) = 0
& && && && && & End If
& && && && && & GoTo l1
& && && && &End If
& && &&&Next i
& && &&&Sheets(2).Cells(j, 3) = &这个真没有&
& & Next j
& & Application.ScreenUpdating = True
阅读权限95
在线时间 小时
& & & & & & & &
{:soso_e129:}
看看是不是你需要的结果
08:55 上传
点击文件名下载附件
7.63 KB, 下载次数: 38
阅读权限20
在线时间 小时
liulang0808 发表于
& & Application.ScreenUpdating = False
谢谢高手,“这个真没有”还真的可以实现我的要求,请问能不能用函数实现?或者更为简便的办法?
阅读权限95
在线时间 小时
twtytei 发表于
谢谢高手,“这个真没有”还真的可以实现我的要求,请问能不能用函数实现?或者更为简便的办法?
你看看vlookup吧,有个模糊匹配的
关键有的时候不给力,不能匹配出来你想要的
执行步骤可以这样,先用vlookup进行匹配,然后用if判断结果是否一样的。
阅读权限20
在线时间 小时
liulang0808 发表于
& & Application.ScreenUpdating = False
高手麻烦解释一下“InStr(Sheets(1).Cells(i, 1), Sheets(2).Cells(j, 1)) & 0”的意思,另外instr的用法,谢谢!
阅读权限95
在线时间 小时
InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。指定一个有效的LCID (LocaleID) 以在比较中使用与区域有关的规则。
阅读权限95
在线时间 小时
twtytei 发表于
高手麻烦解释一下“InStr(Sheets(1).Cells(i, 1), Sheets(2).Cells(j, 1)) & 0”的意思,另外instr的用法 ...
类似这样的函数,在使用的时候,可以按F1查看具体使用方法,另外就是去网上搜索vba instr,都会有详细的解释
阅读权限20
在线时间 小时
liulang0808 发表于
看看是不是你需要的结果
(21.77 KB, 下载次数: 14)
08:48 上传
点击文件名下载附件
高手我昨天举的例子是能解决,但真正的问题是在我此附件中,我按照你的代码进行了相应修改,现有如下问题(具体附件中vba代码中可以看到):
1、进行判断时,两个sheet表格中的单元格有空的,这个如何过滤掉?
2、比如sheet1中A1单元格有的编号,在sheet2中没有,则显示sheet2中没有
3、如何做到检测sheet1中的哪些项在sheet2中没有,sheet2中的哪些项在sheet1中没有?
不知我描述清楚了没有,请大侠指点!!
另外,我在监视窗口添加了变量i,j,n,但值运行后显示溢出上下文,这是怎么回事?
阅读权限95
在线时间 小时
twtytei 发表于
高手我昨天举的例子是能解决,但真正的问题是在我此附件中,我按照你的代码进行了相应修改,现有如下问 ...
& & Application.ScreenUpdating = False
& && && &For i = 7 To Sheets(&支出分类&).Cells(Rows.Count, 1).End(3).Row
& && && & For j = 3 To Sheets(&支出明细&).Cells(Rows.Count, 1).End(3).Row
& && && && &If InStr(Sheets(&支出分类&).Cells(i, 1), Sheets(&支出明细&).Cells(j, 1)) & 0 Then
& && & '此处判断好像不能避免相同的空格,请问如何改进
& && && && && & Sheets(&支出明细&).Cells(j, 3) = &Sheets(支出分类)里有此数据&
& && && && && & n = Sheets(&支出分类&).Cells(i, 2) - Sheets(&支出明细&).Cells(j, 2)
& && && && && & If n = 0 Then
& && && && && & Sheets(&支出分类&).Cells(i, 3) = &正确&
& && && && && & Else
& && && && && & Sheets(&支出分类&).Cells(i, 3) = &不正确&
& && && && && & End If
& && && && && & GoTo l1
& && && && &End If
& && &&&Next j
& && &&&If Len(Sheets(&支出分类&).Cells(i, 1)) & 0 Then
& && && && &Sheets(&支出分类&).Cells(i, 3) = &这个真没有&
& && &&&End If
& && &&&'如果编号对上了但是两个sheet里面金额栏为空,则显示“没有费用”,如果一个有,则直接显示其值;
& && &&&'如果编号对不上,则显示“没有”
& & Next i
& & Application.ScreenUpdating = True
做了微调,你看看是否满足你的需求
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师查看: 825|回复: 4
vba中如何检测一个中文字符串是否包含在另一个字符串中?
阅读权限20
在线时间 小时
& & & & & & & &
我想判断&建邺&这个字符串有没有出现在“江苏省南京市建邺区水西门大街34号”里面,应该用什么函数啊?
阅读权限20
在线时间 小时
试试FIND(find_text,within_text,start_num)
Find_text 要查找的文本。
Within_text 包含要查找文本的文本。
Start_num 指定要从其开始搜索的字符。
within_text 中的首字符是编号为 1 的字符。
注:如果省略 start_num,则假设其值为 1。
阅读权限50
在线时间 小时
COUNTIF函数
阅读权限95
在线时间 小时
sub test ()
& &aaa=&江苏省南京市建邺区水西门大街34号&
&&if&&instr(aaa,&建邺&)&& Empty then
& &&&msgbox &在里面&
& &msgbox &不在里面&
阅读权限30
在线时间 小时
& & & & & & & &
不是empty, 是=0, 表示不在, 如果是数字的话,表示存在第几个字符
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师

我要回帖

更多关于 vba 是否包含字符串 的文章

 

随机推荐