Excel中判断一个单元格是否有完全包含另外一列值中的一个值,并返回完全包含的那个值

如上图:B1求得值是,根据A1的值,查找C列中对应的单元格值,并返回相应的值
B1=五金配件
B2=塑胶板材
B3=电子表
......
谢谢!

第1个回答  2016-06-17
我觉得还是用VBA快一些,用数组函数太费资源

Sub aaa()
Dim x!, y!, i!
x = [a1].End(xlDown).Row
For y = 1 To x
For i = 1 To x
If Cells(y, 1).Value Like "*" & Cells(i, 3).Value & "*" Then
Cells(y, 2) = Cells(i, 3).Value
Exit For
Else
Cells(y, 2) = ""
End If
Next i
Next y

End Sub
若是不知道如何添加该过程,请追问我追问

谢谢!但是vba一点都不会用,从哪输入都不知道!

追答

你用的是哪个版本的office?

你可以用快捷键打开VBA编辑窗口:Alt+F11

点击菜单栏“插入”》模块

在新出现的对话框内将上面的代码复制进去

点击运行按钮》就是

或者按F5键


你也可以在excel工作表中插入一个控件(其实可以用“绘图”工具插入一个图片、文字之类的),然后右键点击这个控件,“指定宏”,选中aaa这个模块名,确定

这样只要你点击这个控件就可以实现相应的功能了


值得注意的是:你在运行模块或是插入控件时,插入到你需要进行查找运算的工作表中(即激活这个工作表)

第2个回答  2016-06-17
数组公式,按CTRL SHIFT ENTER 三键结束。

=OFFSET(C$1,MIN(IFERROR((FIND($C$1:$C$99,A1)>0)*ROW($A$1:$A$99),99))-1,0)追问

谢谢!但是前面那个C$1是什么意思?我套用到其他表格就行不通了~

追答

就是引用C1单元格,引用方式是行锁定。也就是说,公式下拉时,行号不会变

相似回答