find vba 模糊_Excel模糊条件查询各种方案小结

本文总结了如何使用VBA进行模糊条件查询,针对Excel中的数据源,结合F列的查询条件,展示在G列计算得分的多种方法,包括函数和代码实现,特别提到了适合多条件数组式查询的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

a6cfd552952ca0d8906fe5d6c615828f.png每天一篇Excel技术图文微信公众号:Excel星球NO.91-模糊条件查询作者:看见星光 微博:EXCELers / 知识星球:Excel

HI~我是星光。本期咱们来聊一下前两天布置的第23道作业题的各种解法。

【作业NO.023】问:模糊条件数据查询

题目内容概述如下。

C:D是数据源,F列是查询条件,在G列计算相关人员的得分。

解题方法无限。

aef4b61f1272db9307546c67d3181a17.png

分享多种解法,包含了函数、PowerQuery、VBA、SQL、PowerPivot等。不过,打个响指,如果你还没有尝试解这道题,还是建议先思考再继续向下看。

01 | 函数

6353dfaa32c42e0d77247ac342c132aa.png

by:很多学员方法1->
查找值在查找范围首列..▼
=VLOOKUP("*"&D2&"*",A:B,2,0)

方法2->
查找值不在查找范围首列..▼
=INDEX(B:B,MATCH("*"&D2&"*",A:A,0))


方法3->
适合多条件数组式查询..▼

=LOOKUP(1,0/FIND(D2,$A$1:$A$12),$B$1:$B$12)
02 | VBA


by:很多姐妹代码解析见注释
代码如看不全,可以左右拖动..▼

Sub ByVBA()    Dim aRes, aData, i As Long, j As Long    With Worksheets("数据表")        aData = .Range("a1:b" & .Cells(Rows.Count, 1).End(xlUp).Row) '数据源        aRes = .Range("d1:e" & .Cells(Rows.Count, "e").End(xlUp).Row) '查询区域    End With    For i = 2 To UBound(aRes) '遍历查询        For j = 1 To UBound(aData) '遍历数据源            If InStr(1, aData(j, 1), aRes(i, 1), vbTextCompare) Then            '不区分大小写,判断关键字是否在指定字符串中出现                aRes(i, 2) = aData(j, 2)                Exit For '找到结果即退出循环            Else                aRes(i, 2) = "" '查无结果返回假空            End If        Next    Next    Worksheets("VBA").Select    Cells.ClearContents    Range("a1").Resize(UBound(aRes), UBound(aRes, 2)) = aResEnd Sub
03 | PowerQuery
by:很多兄弟代码如看不全,可以左右拖动..▼
let    数据源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],//数据源    查询表 = Excel.CurrentWorkbook(){[Name="表3"]}[Content],//查询表    结果 = Table.AddColumn(查询表,"得分",(a)=>Table.SelectRows(数据源,each Text.Contains([姓名],a[简称]))[得分]{0})in    结果
04 | SQL
by:很多……大叔大婶代码如看不全,可以左右拖动..▼
SELECT b.简称, a.得分 FROM [数据表$A:B]a,[数据表$D:D]b WHERE a.姓名 like '%'& b.简称 &'%' AND b.简称 IS NOT NULL
05 | PowerPivot创建度量▼代码如看不全,可以左右拖动..▼
结果:=VAR A =    TOPN ( 1, VALUES ( '查询'[简称] ) )RETURN    CALCULATE ( MAX ( '数据源'[得分] ), FILTER ( '数据源', SEARCH ( A, '数据源'[姓名], 1, 0 ) ) )
……文件下载百度网盘..▼https://pan.baidu.com/s/1vZAEjiAaGcCw-YbHRg8ZXA
提取码: b6hr▎系统学习Excel
推荐加入我的Excel社群 ▎点击图片可获取相关推文..▼0d985fb9215b0fbca908a413c101687d.png扩展阅读0f56eaeb7cd1aed4d4012f03bc15a793.pngc63d7275a4119701b15d8c842a8ceec8.pngf957ff7271b4037f523ae55e12bddca9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值