首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Excel VBA -在列中查找匹配值,并在另一列中返回值

Excel VBA是一种基于Microsoft Excel的宏语言,可以通过编写脚本来自动化和定制Excel功能。在列中查找匹配值,并在另一列中返回值是Excel VBA中经常使用的任务之一。

实现在列中查找匹配值,并在另一列中返回值,可以使用Excel VBA中的循环结构和条件判断语句。下面是一个示例代码:

代码语言:txt
复制
Sub FindAndReturn()
    Dim searchValue As Variant
    Dim searchRange As Range
    Dim resultRange As Range
    Dim cell As Range
    
    ' 设置要搜索的值
    searchValue = "要查找的值"
    
    ' 设置要搜索的范围
    Set searchRange = Sheets("Sheet1").Range("A1:A10")
    
    ' 设置返回结果的范围
    Set resultRange = Sheets("Sheet1").Range("B1:B10")
    
    ' 遍历搜索范围中的每个单元格
    For Each cell In searchRange
        ' 检查单元格的值是否匹配
        If cell.Value = searchValue Then
            ' 在结果范围中对应位置写入匹配的值
            resultRange.Cells(cell.Row, 1).Value = "返回的值"
        End If
    Next cell
End Sub

这段代码可以在Excel的VBA编辑器中编写并执行,具体步骤如下:

  1. 打开Excel,并按下ALT + F11打开VBA编辑器。
  2. 在VBA编辑器中,选择对应的工作簿,然后插入一个新的模块。
  3. 将上述代码复制粘贴到新插入的模块中。
  4. 修改代码中的searchValue为要查找的值,searchRange为要搜索的范围,resultRange为返回结果的范围。
  5. 按下F5或点击工具栏上的运行按钮来执行代码。

执行后,代码会在指定的搜索范围内遍历每个单元格,找到匹配的值并在对应位置的结果范围中写入返回的值。

推荐的腾讯云相关产品: 腾讯云提供了云计算相关的产品和服务,其中与Excel VBA相关的可以使用腾讯云的服务器产品和VPC(Virtual Private Cloud)产品来搭建基础设施环境。具体的产品和服务请参考腾讯云官方文档。

腾讯云产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Excel公式技巧71:查找中有多少个出现在另一

学习Excel技术,关注微信公众号: excelperfect 有时候,我们想要知道某中有多少个同时又出现在另一,例如下图1所示,B中有一系列D中有一系列,哪些既出现有B又出现在...因为数据较少,不难看出,B仅有2个出现在D,即“完美Excel”和“Office”。 ?...MATCH(B3:B13,B3:B13,0) 查找单元格区域B3:B13每个单元格的该区域首次出现的位置,得到数组: {1;2;3;1;5;6;2;3;5;1;2} 公式: ROW(B3:B13...";"Office";"Excel";"";"excelperfect";"Word";"";"";"";"";""},D3:D16,0) 查找上述不重复组成的数组单元格区域D3:D16出现的位置...传递给COUNT函数统计数组数字的个数: COUNT({1;5;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A;#N/A}) 得到结果: 2 即B中有两个D中出现

3.1K20

问与答112:如何查找的内容是否另一并将找到的字符添加颜色?

Q:我D的单元格存放着一些数据,每个单元格的多个数据使用换行分开,E是对D数据的相应描述,我需要在E的单元格查找是否存在D的数据,并将找到的数据标上颜色,如下图1所示。 ?...图1 如何使用VBA代码实现?...A:实现上图1所示效果的VBA代码如下: Sub ColorText() Dim ws As Worksheet Dim rDiseases As Range Dim rCell...,然后遍历该数组,E对应的单元格中使用InStr函数来查找是否出现了该数组,如果出现则对该添加颜色。...Bug:通常是交替添加红色和绿色,但是当句子存在多个匹配或者局部匹配时,颜色会打乱。

7.2K30
  • 使用VBA查找并在列表框显示找到的所有匹配

    标签:VBA,用户窗体,列表框 有时候,我们想从数据表搜索指定的内容,但匹配项往往不只一项,而我们想要将匹配项全部显示出来,如下图1所示。...图1 Excel,有很多方法可以实现,这里使用用户窗体和VBA代码来完成。 示例数据如下图2所示。 图2 单击“查找”按钮,弹出我们所设计的用户窗体如下图3所示。...,即如果某人正在搜索位置,则仅在位置搜索 With Range("Table1[" &SearchColumn & "]") ' 查找第一个匹配项 Set RecordRange...FirstAddress = RecordRange.Address RowCount = 0 Do ' 设置匹配的第一个单元格...If RecordRange Is Nothing Then Exit Sub End If ' 找到唯一匹配项时继续查找

    13.1K30

    Excel应用实践19:根据工作表某另一工作簿获取数据

    图1 在下图2所示的工作簿GetData.xlsm,根据C的数据,在上图1的工作簿Data.xlsx的E查找是否存在相应数据的单元格。 ?...图2 然后,将Data.xlsx对应行的I至K单元格的数据复制到GetData.xlsm相应的单元格,如下图3所示。 ?...图3 工作簿GetData.xlsm,输入代码: Sub CopyData() '关闭屏幕刷新 Application.ScreenUpdating = False '声明变量...rngFound As Range '赋值为存储数据的工作表 Set wksData =Workbooks("Data.xlsx").Sheets("Sheet1") '判断所选单元格是否...Exit Sub Else '遍历所选的单元格 For Each rng In Selection '在数据工作表查找相应的所在的单元格

    18.8K30

    Excel公式练习38: 求一的数字剔除掉另一的数字后剩下的数字

    本次的练习是:如下图1所示,单元格区域A2:A12和B2:B12给定两数字,要在C从单元格C2开始生成一数字。规则如下: 1. B的数字的数量要小于等于A数字的数量。 2....B的任意数字都可以A中找到。 3. A或B已存放数字的单元格之间不能有任何空单元格。 4. C的数字是从A的数字移除B的数字A第一次出现的数字后剩下的数字。 5....换句话说,B和C的数字合起来就是A的数字。 ? 图1 单元格D1的数字等于A的数字数量减去B的数字数量后的,也就是C数字的数量。...公式的思路就是构造一个数组,能够实现在List1和List2之间执行MATCH函数查找时,C的数值就是找不到的,返回FALSE。 然而,实现起来并不是想像的那么简单。...公式IF子句的第一部分: IF(ROWS($1:1)>$D$1,"" 非常直观,如果公式向下拖放后ROWS函数的大于7,则返回空。 重点在IF子句的第二部分,即其判断条件为FALSE的部分。

    3.3K20

    用过Excel,就会获取pandas数据框架、行和

    Excel,我们可以看到行、和单元格,可以使用“=”号或在公式引用这些。...Python,数据存储计算机内存(即,用户不能直接看到),幸运的是pandas库提供了获取值、行和的简单方法。 先准备一个数据框架,这样我们就有一些要处理的东西了。...df.columns 提供(标题)名称的列表。 df.shape 显示数据框架的维度,本例为4行5。 图3 使用pandas获取 有几种方法可以pandas获取。...pandas,这类似于如何索引/切片Python列表。 要获取前三行,可以执行以下操作: 图8 使用pandas获取单元格 要获取单个单元格,我们需要使用行和的交集。...记住这种表示法的一个更简单的方法是:df[列名]提供一,然后添加另一个[行索引]将提供该的特定项。 假设我们想获取第2行Mary Jane所在的城市。

    19.1K60

    Excel公式技巧93:查找某行第一个非零所在的标题

    有时候,一行数据前面的数据都是0,从某开始就是大于0的数值,我们需要知道首先出现大于0的数值所在的单元格。...例如下图1所示,每行数据中非零出现的位置不同,我们想知道非零出现的单元格对应的标题,即第3行的数据。 ?...图1 可以单元格N4输入下面的数组公式: =INDIRECT(ADDRESS(3,MATCH(TRUE,B4:M40,0)+1)) 然后向下拖拉复制至单元格N6,结果如下图2所示。 ?...图2 公式, MATCH(TRUE,B4:M40,0) 通过B4:M4与0比较,得到一个TRUE/FALSE的数组,其中第一个出现的TRUE就是对应的非零,MATCH函数返回其相对应的位置...MATCH函数的查找结果再加上1,是因为我们查找的单元格区域不是从A开始,而是从B开始的。

    9.2K30

    如何使用Excel将某几列有的标题显示到新

    如果我们有好几列有内容,而我们希望中将有内容的的标题显示出来,那么我们怎么做呢? Excel - TEXTJOIN function 1....Stackoverflow - Finding a specific value and returning column headers in Excel EXAMPLE: Indexing Year...- - - - 4 - - - 开始,我们曾经使用INDEX + MATCH的方式,但是没有成功,一直是N/A https://superuser.com/questions/1300246/if-cell-contains-value-then-column-header...所以我们后来改为TEXTJOIN函数,他可以显示,也可以显示的标题,还可以多个列有的时候同时显示。...则: =TEXTJOIN(", ",TRUE,IF(ISNUMBER(B2:I2),B2:I2,"")) 其中,ISNUMBER(B2:I2)是判断是不是数字,可以根据情况改成是不是空白ISBLANK

    11.3K40

    Excel公式技巧17: 使用VLOOKUP函数多个工作表查找匹配(2)

    我们给出了基于多个工作表给定匹配单个条件来返回值的解决方案。本文使用与之相同的示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助另一个不使用辅助。 下面是3个示例工作表: ?...图3:工作表Sheet3 示例要求从这3个工作表从左至右查找,返回Colour为“Red”且“Year”列为“2012”对应的Amount,如下图4所示的第7行和第11行。 ?...图4:主工作表Master 解决方案1:使用辅助 可以适当修改上篇文章给出的公式,使其可以处理这里的情形。首先在每个工作表数据区域的左侧插入一个辅助,该的数据为连接要查找的两个数据。...16:使用VLOOKUP函数多个工作表查找匹配(1)》。...解决方案2:不使用辅助 首先定义两个名称。注意,定义名称时,将活动单元格放置工作表Master的第11行。

    13.9K10

    Excel公式技巧16: 使用VLOOKUP函数多个工作表查找匹配(1)

    某个工作表单元格区域中查找时,我们通常都会使用VLOOKUP函数。但是,如果在多个工作表查找并返回第一个相匹配时,可以使用VLOOKUP函数吗?本文将讲解这个技术。...最简单的解决方案是每个相关的工作表中使用辅助,即首先将相关的单元格连接并放置辅助。然而,有时候我们可能不能在工作表中使用辅助,特别是要求在被查找的表左侧插入列时。...图3:工作表Sheet3 示例要求从这3个工作表从左至右查找,返回Colour为“Red”对应的Amount,如下图4所示。 ?...B:B"}),$A3) INDIRECT函数指令Excel将这个文本字符串数组的元素转换为单元格引用,然后传递给COUNTIF函数,同时单元格A3作为其条件参数,这样上述公式转换成: {0,1,3...} 分别代表工作表Sheet1、Sheet2、Sheet3的B“Red”的数量。

    24K21

    Excel公式技巧54: 多个工作表查找最大最小

    学习Excel技术,关注微信公众号: excelperfect 要在Excel工作表获取最大或最小,我们马上就会想到使用MAX/MIN函数。...图1 然而,当遇到要在多个工作表查找最大或最小时,该怎么做呢?例如,示例工作簿中有3个工作表:Sheet1、Sheet2和Sheet3,其数据如下图2至图4所示。 ? 图2 ? 图3 ?...图4 很显然,这些数据中最小是工作表Sheet2的1,最大是工作表Sheet3的150。 可以使用下面的公式来获取多个工作表的最小: =MIN(Sheet1:Sheet3!...A1:D4) 使用下面的公式来获取多个工作表的最大: =MAX(Sheet1:Sheet3!A1:D4) 结果如下图5所示。 ?...完美Excel社群2020.9.14动态 #Excel实战技巧# 显示过期事项、即将到期事项提醒 #Exce示例工作簿# 示例2:实战技巧——显示过期事项、即将到期事项提醒

    10.4K10

    Excel公式技巧21: 统计至少满足条件的行数

    在这篇文章,探讨一种计算在至少一满足规定条件的行数的解决方案,示例工作表如下图1所示,其中详细列出了各个国家不同年份废镍的出口水平。 ?...转换成Excel公式为: =COUNTIFS(B2:B14,">=1000",C2:C14,">=1000")+COUNTIFS(B2:B14,">=1000",C2:C14,"<1000")+COUNTIFS...然而,公式显得太笨拙了,如果考虑的数不是9而是30,那会怎样! 幸运的是,由于示例区域是连续的,因此可以单个表达式查询整个区域(B2:J14),随后适当地操纵这个结果数组。...: B2:J14>1000 结果是包含以下布尔的数组: {TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE,TRUE;FALSE,FALSE,TRUE,TRUE,TRUE...并且,由于上述数组(一个13行乘9的数组)包含9,因此我们用来形成乘积的矩阵的行数必须等于该数组的数。

    3.9K10

    Excel应用实践16:搜索工作表指定范围的数据并将其复制到另一个工作表

    学习Excel技术,关注微信公众号: excelperfect 这里的应用场景如下: “工作表Sheet1存储着数据,现在想要在该工作表的第O至第T搜索指定的数据,如果发现,则将该数据所在行复制到工作表...用户一个对话框输入要搜索的数据,然后自动将满足前面条件的所有行复制到工作表Sheet2。” 首先,使用用户窗体设计输入对话框,如下图1所示。 ?...图1 该用户窗体模块编写代码: Private Sub cmdOK_Click() Dim wks As Worksheet Dim lngRow As Long Dim...("O2:T"& lngRow) '查找的数据文本 '由用户文本框输入 FindWhat = "*" &Me.txtSearch.Text & "*..." '调用FindAll函数查找数据 '存储满足条件的所有单元格 Set rngFoundCells =FindAll(SearchRange:=rngSearch

    6K20

    Excel公式练习35: 拆分连字符分隔的数字并放置同一

    本次的练习是:单元格区域A1:A6,有一些数据,有的是单独的数字,有的是由连字符分隔的一组数字,例如13-16表示13、14、15、16,现在需要将这些数据拆分并依次放置D,如下图1所示。...因为这两个相加的数组正交,一个6行1的数组加上一个1行4的数组,结果是一个6行4的数组,有24个。...其实,之所以生成4数组,是为了确保能够添加足够数量的整数,因为A1:A6最大的间隔范围就是4个整数。...例如对于上面数组的第4行{10,11,12,13},last数组对应的是11,因此剔除12和13,只保留10和11。...;9,10,11,12;10,11,12,13;13,14,15,16;21,22,23,24}>{2;6;9;11;16;21},"" Excel对公式中生成的两个数组相同行中进行比较,例如,左边数组第

    3.7K10

    Excel VBA解读(146): 使用隐式交集处理整列

    图1 单元格B6输入公式: =A:A 并不会返回整列A,而是返回第6行与A相交的单元格f。...图3 如果在多个单元格输入上述数组公式,则会获取多个,如下图4所示,单元格区域C5:C9输入上面的数组公式,会得到A的前5个数据。 ? 图4 那么,对于函数Excel又是怎么处理的呢?...例如,公式: =VLOOKUP(A4,$A:$C,3,false) A至C组成的区域中精确查找单元格A4的内容,并返回C相应的。...VBA用户自定义函数(UDF)运用隐式交集技术 有2种方式可以让隐式交集技术UDF自动工作: 1.函数参数前面放置+号 2.使用VBA来处理隐式交集 例如,下面的简单UDF: Function...Excel将其视为一个表达式,并在将其传递给UDF前评估该表达式,也就是说Excel会传递给该表达式的结果给UDF。 下面是一个通用的VBA函数,可以从VBA UDF内部调用,从而执行隐式交集。

    4.9K30

    Excel VBA解读(134): 使用Excel函数提高自定义函数的效率

    本文将介绍自定义函数中最有效的方式是使用Excel内置函数。 线性插是一种常用技术,用来查找缺失或者计算两个之间的。例如下表: ?...Lookup_value是单元格区域Table_Array的第1要找的,Col_Num是要进行插的数据的号索引(本例为2)。...仔细分析这个自定义函数代码,实际的计算仅使用2行数据,但要获得这2行数据必须将所有数据导入到数组并在第1执行线性查找。...因此,让我们试着自定义函数代码通过Application.WorksheetFunction.MATCH来使用Excel的MATCH函数。由于数据已排序,所以可以使用近似匹配查找MATCH。...因此,需要添加错误处理和达到数据边界的情况处理: 使用On Error来捕捉非数字数据 检查要查找是否数据范围之外 检查要查找是否是表中最后一个 代码如下: Function VINTERPOLATEC

    3.1K30

    VBA实现Excel函数01:VLOOKUP

    很多学习VBA的应该都是使用了一段时间的Excel之后,想弥补一些Excel本身的不足、或者是实现一些自动化操作。...函数是Excel里非常重要的一个功能,所以,我们结合Excel的函数,用VBA去实现一些常用的函数功能。...VBA里的参数修饰符Optional,和这个是同样的意思,可以省略的参数,如果省略了,就是用默认的我们的定义里,默认等于0. 返回值:Variant,可以返回任意数据类型的。...要实现这个功能,最简单的自然是用lookup_value与table_array里的第一一个一个的比对,找到了相同的就返回col_index_num,那显然这里需要用到For循环,循环需要1个范围...Vlookup返回值", ret End Sub 输出: MyVlookup返回值 72848 Excel Vlookup返回值 72848 一切正常,其中我们还调用了

    7.2K31
    领券