精华内容
下载资源
问答
  • excel模糊搜索
    千次阅读
    2020-12-31 09:25:51

    Excel在录入时可以匹配现有的内容,但有时还是满足不了我们的要求,以下是用Excel VBA实现的渐进式模糊搜索

    作者:Excel小子-Office中国

    实现的效果:

    Excel 模糊 渐进式搜索操作动画教程

    Excel VBA实现渐进式模糊搜索的主要代码:

    先放置 一个 TextBox1 文本框 及列表框 ListBox1

    然后在工作表代码中

    Dim d

    Dim arr, brr(0)

    Dim ar

    Private Sub ListBox1_Click()

    End Sub

    Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

    ActiveCell = Me.ListBox1.Value

    Me.ListBox1.Visible = False

    Me.TextBox1.Visible = False

    ActiveCell.Select

    End Sub

    Private Sub ListBox1_GotFocus()

    End Sub

    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    If KeyCode = 13 Then

    ActiveCell = ListBox1.Value

    Me.ListBox1.Visible = False

    Me.TextBox1.Visible = False

    ActiveCell.Select

    End If

    End Sub

    Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    If WorksheetFunction.CountA(ActiveSheet.UsedRange) > 0 Then

    If WorksheetFunction.CountA(ActiveSheet.UsedRange) = 1 Then

    brr(0) = ActiveSheet.UsedRange

    arr = brr

    Else

    arr = ActiveSheet.UsedRange

    End If

    Dim ct

    Set d = CreateObject("scripting.dictionary")

    If KeyCode = vbKeyDown Then

    'Stop

    ct = ListBox1.ListIndex + 1

    If ct < ListBox1.ListCount Then ListBox1.ListIndex = ct Else ListBox1.ListIndex = 0

    ElseIf KeyCode = vbKeyUp Then

    ct = ListBox1.ListIndex - 1

    If ct > -1 Then ListBox1.ListIndex = ct Else ListBox1.ListIndex = ListBox1.ListCount - 1

    End If

    If KeyCode <> 37 And KeyCode <> 39 And KeyCode <> 13 Then

    For Each ar In arr

    If Len(ar) > 0 Then

    If InStr(ar, TextBox1.Value) = 1 Then

    d(ar) = ""

    End If

    End If

    Next ar

    End If

    If d.Count > 0 And Len(Me.TextBox1.Value) > 0 Then

    With Me.ListBox1

    .Visible = True

    .Left = ActiveCell.Left + ActiveCell.Width

    .Top = ActiveCell.Top

    .Height = ActiveCell.Height * 5

    .Width = ActiveCell.Width * 2

    .List = d.keys

    End With

    Else

    Me.ListBox1.Visible = False

    End If

    End If

    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    On Error Resume Next

    If Target.Count = 1 Then

    Me.ListBox1.Visible = False

    With Me.TextBox1

    .Value = ""

    .Visible = True

    .Activate

    .Left = Target.Left

    .Top = Target.Top

    .Width = Target.Width

    .Height = Target.Height

    End With

    End If

    End Sub

    更多相关内容
  • 比如有如下图所示的数据(可能有几百上千行),我想通过输入客户名/产品型号/价格来进行一个模糊查找(比如我输入腾或者P就可以找到腾讯和PDD)。 由于本次制作示例,就以客户为例来做。 0.选中数据,ctrl+T进行快速...

    比如有如下图所示的数据(可能有几百上千行),我想通过输入客户名/产品型号/价格来进行一个模糊查找(比如我输入腾或者P就可以找到腾讯和PDD)。

    由于本次制作示例,就以客户为例来做。

    0.选中数据,ctrl+T进行快速表格创建。

    1.在D2输入=search(寻找数,数据库),由于寻找数就一个数,所以需要加绝对引用($B$1这样)。

    然后向下填充即可。比如sheet5的B1这次是"淘",所以D2是在本表格A2里面去找"淘",

    显然D2找不到就会返回#value(一般是公式中的错误参数所致);

    3行&7行&11行由于有“淘”字,所以能返回淘所在的位置,本次是1(第一个字符);

    如果搜索的是"宝",那么search返回的就是2(第二个字符

     2.OK,那么只要D列有数,就说明search函数找到了。

    可以把D列函数改成真假判定。

    =search(寻找数,数据库)>0

    3.选中数据,点表设计,然后点“通过数据透视表汇总”,进行数据透视表的做成。

    然后把那几个选项拉到行里面去就OK。最后按照下面的图进行调整。

    4.最终大概得到下图这样的。

    然后C列的筛选选中true。

     

     5.然后字改了以后,会发现数据透视表并没有刷新,为了避免手动刷新。

    需要用VBA完成,当输入項变化后,进行刷新。

     在输入項的这一个sheet的VBE里面输入以下代码。

    其中B1是输入的项目。

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then
    ActiveWorkbook.RefreshAll
    
    End If
    End Sub

     以上,模糊查找功能完成。

    展开全文
  • Excel搜索工具(宏)

    2021-04-05 04:39:51
    这是一个简单的宏脚本,用于搜索和检索Excel文档中的单个单元格。
  • PHP实例开发源码——PHP+excel 通用图书信息模糊检索系统 PC网页版.zip
  • Excel中实现模糊查询-LOOKUP+FIND函数

    千次阅读 2022-05-20 11:35:12
    Excel中实现模糊查询-LOOKUP+FIND函数

    LOOKUP函数

    函数简介

      LOOKUP函数是Excel中的一种运算函数,实质是返回向量或数组中的数值,要求数值必须按升序排序。

    ------粘百度百科

    函数使用方法

    (1)向量形式:公式为

    =LOOKUP(lookup_value,lookup_vector,result_vector)

    式中 lookup_value—函数LOOKUP在第一个向量中所要查找的数值,它可以为数字、文本、逻辑值或包含数值的名称或引用;
    lookup_vector—只包含一行或一列的区域,其可以是文本、数字或逻辑值;
    result_vector—只包含一行或一列的区域,其大小必须与 lookup_vector 相同。
    (2)数组形式:公式为

    = LOOKUP(lookup_value,array)

    式中 array—包含文本、数字或逻辑值的单元格区域或数组它的值用于与 lookup_value 进行比较。
    例如:LOOKUP(5.2,{4.2,5,7,9,10})=5。
     
    注意:
      array和lookup_vector的数据必须按升序排列,否则函数LOOKUP不能返回正确的结果。文本不区分大小写。

    • 如果函数LOOKUP找不到lookup_value,则查找array和 lookup_vector中小于lookup_value的最大数值。
    • 如果lookup_value小于array和 lookup_vector中的最小值,函数LOOKUP返回错误值#N/A。
    • 另外还要注意:函数LOOKUP在查找字符方面是不支持通配符的,但可以使用FIND函数的形式来代替。

    ------粘百度百科

     

    FIND函数

    函数简介

      Find函数用来对原始数据中某个字符串进行定位,以确定其位置。Find函数进行定位时,总是从指定位置开始,返回找到的第一个匹配字符串的位置,而不管其后是否还有相匹配的字符串。

    ------粘百度百科

    函数语法

    该函数的语法规则如下:

    =FIND(find_text,within_text,start_num)

    Find_text 是要查找的字符串。
    Within_text 是包含要查找关键字的单元格。就是说要在这个单元格内查找关键字。
    Start_num 指定开始进行查找的字符数。比如Start_num为1,则从单元格内第一个字符开始查找关键字。如果忽略 start_num,则假设其为 1。
     
    注意:
      使用find函数可从文本字符串中查找特定的文本,并返回查找文本的起始位置。查找时,要区分大小写。全角和半角字符。查找结果的字符位置不分全角和半角,作为一个字符来计算。可以单独使用find函数,例如。按照查找字符的起始位置分开文本字符串,或替换部分文本字符串等,也多用于处理其他信息。计数单位如果不是字符而是字节时,请使用findb函数。find函数和findb函数具有相同的功能,但它们的计数单位不同。 [2]
      使用 start_num 可跳过指定数目的字符。例如,假定使用文本字符串“AYF0093.YoungMensApparel”,如果要查找文本字符串中说明部分的第一个“Y”的编号,则可将 start_num 设置为 8,这样就不会查找文本的序列号部分。FIND 将从第 8 个字符开始查找,而在下一个字符处即可找到 find_text,于是返回编号 9。FIND 总是从 within_text 的起始处返回字符编号,如果 start_num 大于 1,也会对跳过的字符进行计数。 [3]

    • 如果 find_text 是空文本 (),则 FIND 则会返回数值1。
    • Find_text 中不能包含通配符。
    • 如果within_text 中没有 find_text,则 FIND返回错误值 #VALUE!。
    • 如果 start_num 不大于 0,则FIND返回错误值 #VALUE!。
    • 如果 start_num 大于 within_text 的长度,则 FIND 返回错误值#VALUE!。

    ------粘百度百科

    示例

    表格字段信息展示如下:

    姓名手机型号精准匹配模糊匹配
    张1三星Galaxy S21 Ultra#N/A
    张2华为 MATE 9华为 MATE 9
    张3华为 MATE Xs#N/A
    张4华为 MATE 30 PRO华为 MATE 30 PRO
    张5三星Note8#N/A
    张6华为 MATE 30 PRO华为 MATE 30 PRO
    张7iPhone 13 PRO Max#N/A
    张8华为 P40华为 P40
    张9华为 MATE 30 PRO华为 MATE 30 PRO
    张10iPhone 7 Plus#N/A
    张11华为 NOVA 2 Plus华为 NOVA 2 Plus
    张12华为 NOVA 2s华为 NOVA 2s
    张13华为 NOVA 4e华为 NOVA 4e
    张14华为 P10 Plus华为 P10 Plus

      其中精准匹配的语句在上篇文章有详细讲解,这里用的数据也是上篇文章表格信息。

      现在要查看sheet1子表中B列手机型号与sheet3子表中A列手机型号模糊匹配结果:

    • 匹配的话,在sheet1子表中C列返回模糊匹配上的手机型号;
    • 不匹配的话,在sheet1子表中C列返回#N/A。

      这便使用到了LOOKUP函数和FIND函数,在D2单元格中写==LOOKUP(1,0/FIND(Sheet3!A$1:A$15,B2),Sheet3!A$1:A$15)并按下回车键,对应文本便自动匹配,匹配后信息展示如下所示:

    =LOOKUP(1,0/FIND(Sheet3!A$1:A$15,B2),Sheet3!A$1:A$15)
    //其中Sheet3!A$1:A$15是对应要匹配查找的字符串,该字符串要升序排序
    //其中B2是当前sheet1子表中要查找关键字的单元格

    姓名手机型号精准匹配模糊匹配
    张1三星Galaxy S21 Ultra#N/A#N/A
    张2华为 MATE 9华为 MATE 9华为 MATE 9
    张3华为 MATE Xs#N/A#N/A
    张4华为 MATE 30 PRO华为 MATE 30 PRO华为 MATE 30 PRO
    张5三星Note8#N/A#N/A
    张6华为 MATE 30 PRO华为 MATE 30 PRO华为 MATE 30 PRO
    张7iPhone 13 PRO Max#N/A#N/A
    张8华为 P40华为 P40华为 P40
    张9华为 MATE 30 PRO华为 MATE 30 PRO华为 MATE 30 PRO
    张10iPhone 7 Plus#N/A#N/A
    张11华为 NOVA 2 Plus华为 NOVA 2 Plus华为 NOVA 2
    张12华为 NOVA 2s华为 NOVA 2s华为 NOVA 2
    张13华为 NOVA 4e华为 NOVA 4e华为 NOVA 4
    张14华为 P10 Plus华为 P10 Plus华为 P10

      由“精准匹配”和“模糊匹配”两列对比可以看出,模糊查询对比是返回大于自身值的上一个单元格中的字符串。
    模糊查询举例:
      sheet3子表中部分展示顺序如下图所示:
    在这里插入图片描述
      当前姓名为“张11”对应的手机型号为“华为 NOVA 2 Plus”。
    1、“华为 NOVA 2 Plus”先与“华为 NOVA 2”比对,“华为 NOVA 2 Plus”比“华为 NOVA 2”大,继续往下顺序对比;
    2、“华为 NOVA 2 Plus”和“华为 NOVA 2 PLUS”对比,“华为 NOVA 2 Plus”比“华为 NOVA 2 PLUS”小;
    3、所以返回的是比自身值“华为 NOVA 2 Plus”大的“华为 NOVA 2 PLUS”上一个单元格中的字符串“华为 NOVA 2”。

    sheet1和sheet3子表具体如下图所示:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 我们前面刚讲到利用数据有效性制作三级下拉菜单,很多读者学完后马上应用到工作中了 但是如果需要同时录入多个选项的怎么办?例如在一个单元格内需要录入多个采购物品,这样就无法用...Excel小白蜕变大神全程精品课

    我们前面刚讲到利用数据有效性制作三级下拉菜单,很多读者学完后马上应用到工作中了

    但是如果需要同时录入多个选项的怎么办?例如在一个单元格内需要录入多个采购物品,这样就无法用数据有效性。

    但是excel中却有一个好用的功能完美解决了这个问题,看下图演示。

    558课!办公必备!Excel小白蜕变大神全程精品课 | 知识兔

    (动图演示)

    其实这么好用的功能是过儿用VBA制作的,其实很简单,只要会复制粘贴你也能添加该功能。

    558课!办公必备!Excel小白蜕变大神全程精品课 | 知识兔

    01

    将选项罗列在表格中

    在需要录入数据的表格旁边新建一张表格取名【数据源】,然后将菜单内容依次罗列在该表格的A列,如下图所示。

    ▍录入提示:菜单选项所在列号一定要等于录入区域列号减1。本案例中录入区域是在第2列,如果录入区域在第3列,那么菜单选项要写在数据源表的第2列,依次类推。

    02

    插入控件

    依次单击【开发工具】→【插入】→在ActiveX控件的下面选择列表框控件也就是第4个控件。选择后在表格中通过拖动鼠标的方式放置控件。558课!办公必备!Excel小白蜕变大神全程精品课 | 知识兔

    (动图演示)

    ▍注:如果你使用的是Office Excel但是却找不到开发工具选项的话请参照下图设置,设置完成即可有开发工具选项。

    ▲点击查看大图

    03

    复制粘贴代码

    到这里我们的准备工作就全部完成了,下方是代码,大家将下方代码直接全部复制粘贴到VBA编辑器中。558课!办公必备!Excel小白蜕变大神全程精品课 | 知识兔

    向上滑动Private Sub ListBox1_Change()

        contentSeleted = ""    For i = 0 To ListBox1.ListCount - 1        If ListBox1.Selected(i) = True Then            contentSeleted = contentSeleted & "," & ListBox1.List(i)        End If    Next    ActiveCell = Mid(contentSeleted, 2)End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)    On Error Resume Next    If Target.Column >= 2 And Sheets("数据源").Cells(2, Target.Column - 1) <> "" And Target.Row > 1 Then        c = Target.Column - 1        a = Mid(Sheets("数据源").Cells(2, c).Address, 2, 1)        ListBox1.ListFillRange = "数据源!" & a & "2:" & a & Sheets("数据源").Cells(1, c).End(xlDown).Row                With ListBox1            n = .ListCount            r = Target.Row            c = Target.Column + 1            .Top = Cells(r, c).Top + Cells(r, c).Height            .Left = Cells(r, c).Left            .Width = Target.Width            .Height = Cells(r, c).Height * n            .Visible = True        End With        Set d = CreateObject("scripting.dictionary")        Arr = Split(Target.Value, ",")        For i = 0 To UBound(Arr)            d(Arr(i)) = ""        Next        For i = 0 To ListBox1.ListCount - 1            If d.exists(ListBox1.List(i)) Then                ListBox1.Selected(i) = True            Else                ListBox1.Selected(i) = False            End If        Next        Else        ListBox1.Visible = False    End IfEnd Sub

    558课!办公必备!Excel小白蜕变大神全程精品课 | 知识兔

    先复制代码,然后在录入表标签上右键→查看代码,将代码粘贴到右边空白处即可。

    (动图演示)

    粘贴好代码后就可以任意录入了。

    为了让设置好的表格后续可以一直使用该功能,记得将表格另存为xlsm启用宏格式。。558课!办公必备!Excel小白蜕变大神全程精品课 | 知识兔

    完工,效果如本文开始动图所示。

    展开全文
  • EXCEL 模糊查询源代码

    2018-12-16 11:34:09
    EXCEL 模糊查询源代码,三种查询方式:数组,字典,AOD。
  • PHP模糊搜索功能

    2021-09-14 20:52:34
    PHP如何通过一个输入框模糊搜索任意字段中满足其一种即返回结果 如上图,需要通过一个输入框来模拟搜索下方的3个字段。做法还是通过SQL SELECT语句用来从表中获取数据,废话不多说上代码: <?php $sql=...
  • PHP搜索excel表格数据

    2022-01-20 17:50:24
    PHP搜索excel表格数据结果
  • Excel实现模糊查找的下拉选择列表 使用Excel或WPS的原生功能,创建一个支持关键字模糊查找的下拉选择列表。示例: https://www.aliyundrive.com/s/J9xYWJDxhon 在处理电子表格时,重复填写的文字,做成选择题,...
  • Excel模糊查找中使用的算法 - python

    千次阅读 2020-12-04 04:58:43
    我正在匹配两个公司的公司名称。...我有一种方法可以查看excel模糊查找的编码方式,并在python中使用相同的实现。参考方案据我了解,模糊查找使用Jaccard相似性。查看其文档。在我周围玩耍时,您也可以尝试Sequ...
  • 在给一个单元格设置怎样的函数去调用一个隐藏sheet的一行数据实现模糊查询
  • Excel中SQL模糊查找

    2013-05-29 10:38:31
    SQL模糊查找
  • Excel大神指点迷津。如何批量模糊查找和替换。例如,A1:A100,每个单元格有一段文字。B1:B200,每个单元格有一个关键词。我的目的是在A1:A100中查找包含B1的单元格,找到后把这个单元格内容换成B1的内容。然后查找...
  • 将该项目导入到Eclipse或MyEclipse中运行,在界面中输入附件内容进行检索
  • 使用方法:双击软件弹出文件夹拾取框拾取文件夹,弹出对话框输入关键字确定开始复制文件到新建文件夹,重复文件则自动后面加序号,新建文件夹与软件同路径
  • 实现模糊搜索算法的思路:输入的关键词即为一个字符数组(字符串),本文将以”abcdef”这个字符串为例。要想完成对片段的查询,不能仅仅从前往后比对,也不能仅仅从后往前比对,而是要将所有的片段都进
  • Excel筛选下,可以在每个项目前勾选选择项,如果勾选项有上万上千个,难道要从上万上千种一个个挑出来筛选吗? 当然不必,学会通配符,按照自己 筛选要求 输入 查找某个具体值 在数字前添加双引号""(英文...
  • VBA模糊查询示例(使用单元格区域数据).xls
  • excel制作可模糊匹配的下拉框

    千次阅读 2019-11-13 13:56:15
    1.整体效果: 2.设置数据有效性 在来源中输入公式:=OFFSET(国籍地区!$A$1,MATCH(船舶基本资料!$F2&"*",国籍地区!$A$2:$A$246,0),,COUNTIF(国籍地区!$A$2:$A$246,船舶基本资料...而船舶基本资料为下拉...
  • 模糊查询是利用“_”表示单个字符和“%”表示任意个字符进行匹配的。一些常见的格式如下:Select * from 表名 where 列名 like '%'; //查询出全部Select * from 表名 where 列名 like 'x'; //完全匹配查询Select * ...
  • 办公过程中的Excel实现模糊检索问题,非常实用。虽然简单但是不经常用的话实用时候会忘记。
  • PHP+Csv(Excel)通用成绩查询系统【无需后台】继承原来(asp/php+txt/excel windows/Linux等五大系列超过12个不同版本)的通用易用优点,同样通用于几乎所有工资等查询,成绩查询,物业查询,... 只需Excel二维表导出为逗
  • ------------------ data = pd.read_excel(filename,sheet_name='B比A多',engine='openpyxl') find= pd.read_excel(filename,sheet_name='B比A多',engine='openpyxl') data_split_word = data.CONT_NAME.apply(jieba...
  • excel模糊查找公式 Excel查找公式挑战20171026 (Excel Lookup Formula Challenge 20171026)Here's an Excel Lookup Formula challenge to get your brain fired up. Can you solve it without doing a Google search...
  • 今日帮朋友做了一个案例,其中一个知识点,就是模糊查找自动匹配下拉菜单在这个朋友人美、心善、开朗、乐观,在此祝福她永远年轻漂亮现在讲这个功能,做了一份详细的教程,希望能帮到大家,让她也学会效果:如果不...
  • PHP+excel 通用图书信息模糊检索系统 PC网页版这是本作者发布的首款php模糊查询系统。性能说明:这是个专为农村农家书屋图书在线检索而设计,信息化时代,简单的检索功能可以放你工作效率事半功倍哦。1. 代码极为简单...
  • image大家有没有遇到过这种情况,要在一张数据很多的sheet中进行查找匹配一个数据或多个数据(部分匹配),并对查找到的单元格内容进行汇总。这个时候如果对多个数据一个个在目标sheet中ctrl f进行查找实在太过没有...
  • 根据文件内容搜索文件两种方式: 1、直接在服务器搜索,拼接Linux命令实现 2、把文件从服务器下载到本地,通过读取文件并匹配内容的方式实现,缺点是文件过多时时效很慢,过大时可能会搜索不准确 暂时只实现第二种...
  • 文本框Enter、列表框双击或者Enter、按钮点击皆可搜索,模糊搜索后可上下键选择列表框中某一项,提供汉字、拼音、拼音首字母的模糊查询(匹配左侧)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,580
精华内容 2,232
关键字:

excel模糊搜索