Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 部分字符串匹配转换表_Excel_Excel Formula_Vba - Fatal编程技术网

Excel 部分字符串匹配转换表

Excel 部分字符串匹配转换表,excel,excel-formula,vba,Excel,Excel Formula,Vba,列A中有一个长字符串。我需要找出B列中的50个单词(每行1个单词)是否在A列中的每一行中。之后,无论哪个单词与B列匹配,我都需要C列中相应的数字 我尝试过不同的VLookups、Match和Index公式,但运气不佳。如果我需要澄清问题,请让我知道 编辑:以下是一个示例: 您可以尝试制作自定义公式。将此模块添加到excel文件: Public Function match_关键字(CellVar作为范围) '插入空白列 “添加excel函数”=匹配_关键字(A1)” '在其中,您将看到一个表示第

列A中有一个长字符串。我需要找出B列中的50个单词(每行1个单词)是否在A列中的每一行中。之后,无论哪个单词与B列匹配,我都需要C列中相应的数字

我尝试过不同的VLookups、Match和Index公式,但运气不佳。如果我需要澄清问题,请让我知道

编辑:以下是一个示例:


您可以尝试制作自定义公式。将此模块添加到excel文件:

Public Function match_关键字(CellVar作为范围)
'插入空白列
“添加excel函数”=匹配_关键字(A1)”
'在其中,您将看到一个表示第一个匹配关键字的数字
如果InStr(CellVar.Value,“蓝色”)>0,则
匹配_关键字=1
ElseIf InStr(CellVar.Value,“绿色”)>0然后
匹配_关键字=2
ElseIf InStr(CellVar.Value,“红色”)>0然后
匹配_关键字=3
其他的
“没有找到匹配项
匹配\u关键字=0
如果结束
端函数

修改代码以包含所有关键字及其对应的数字。

相同的概念,但使用数组

公共函数匹配\u关键字2(CellVar作为范围)
'初始化为零
匹配关键字2=0
Dim关键字_数组(1到3)作为字符串
关键词_数组(1)=“蓝色”
关键词_数组(2)=“绿色”
关键词_数组(3)=“红色”
对于i=LBound(关键字数组)到UBound(关键字数组)
如果InStr(CellVar.Value,关键字_数组(i))>0,则
匹配关键字2=i
退出
如果结束
接下来我
端函数

…然后修改代码以包含关键字列表。

请尝试以下操作:

将此公式添加到
F2
中并向下拖动:

=查找(2^50,搜索($C$2:$C$5,A2),$D$2:$D$5)


这不是数组公式。

您可以尝试以下公式:

=索引(D$2:D$5,如果(和(搜索(C$2:C$5,A2),0))>0,匹配(最大值(搜索(C$2:C$5,A2),0)),如果(搜索(C$2:C$5,A2),0),NA())

按Ctrl+Shift+Enter在F2中输入数组公式。

结果:

您应该添加一些您要查找的输出示例。只需链接一个示例。您可以使用VBA或数组公式。你尝过这些吗?如果有多个匹配呢?我在看数组公式,但从未使用过,有没有好的例子?此外,不会有多个匹配项。这与我开始时所做的非常相似,但我想知道是否有比创建50个if语句更简单的方法。也许不是更简单的方法,但更优雅的解决方案是使用数组。我发布了一个例子作为一个新的答案。所以问题是我的关键字列表将不断增长,可能会超过几百个。除非给它一个关键字列表,否则宏不会帮助你。然而,一旦发现编辑不可管理,您可能需要考虑从工作簿中的单独选项卡读取关键字。+ 1漂亮的一个。这让我更加感激
查找