vlookup
函数可以直接搞定\x0d\x0a语法:VLOOKUP(查找值,区域,列序号,逻辑值) \x0d\x0a“查找值”:为需要在数组第一列中查找的
数值,它可以是数值、引用或文字符串。 \x0d\x0a“区域”:数组所在的区域,如“B2:E10”,也可以使用对区域或区域名称的引用,例如数据库或数据清单。 \x0d\x0a“列序号”:即希望区域(数组)中待返回的匹配值的列序号,为1时,返回第一列中的数值,为2时,返回第二列中的数值,以此类推;若列序号小于1,函数VLOOKUP 返回错误值 #VALUE!;
如果大于区域的列数,函数VLOOKUP返回错误值 #REF!。 \x0d\x0a“逻辑值”:为TRUE或FALSE。它指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于“查找值”的最大数值;如果“逻辑值”为FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。如果“查找值”为文本时,“逻辑值”一般应为 FALSE 。\x0d\x0a \x0d\x0a另外: ·\x0d\x0a如果“查找值”小于“区域”第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。 ·\x0d\x0a如果函数 VLOOKUP 找不到“查找值” 且“逻辑值”为 FALSE,函数 VLOOKUP 返回错误值 #N/A。 \x0d\x0a \x0d\x0a下面举例说明VLOOKUP函数的使用方法。 \x0d\x0a \x0d\x0a假设在Sheet1中存放小麦、水稻、玉米、花生等若干农产品的销售单价:\x0d\x0aAB \x0d\x0a1 农产品名称 单价 \x0d\x0a2 小麦 0.56 \x0d\x0a3 水稻 0.48 \x0d\x0a4 玉米 0.39 \x0d\x0a5 花生 0.51 \x0d\x0a????????????? \x0d\x0a100 大豆 0.45 \x0d\x0a \x0d\x0aSheet2为销售清单,每次填写的清单内容不尽相同:要求在Sheet2中输入农产品名称、数量后,根据Sheet1的数据,自动生成单价和销售额。设下表为Sheet2: \x0d\x0a A B CD \x0d\x0a1 农产品名称 数量 单价 金额 \x0d\x0a2 水稻1000 0.48 480 \x0d\x0a3 玉米 20000.39 780 \x0d\x0a??????????????????? \x0d\x0a \x0d\x0a在D2单元格里输入公式: =C2*B2 ; \x0d\x0a在C2单元格里输入公式: =VLOOKUP(A2,Sheet1!A2:B100,2,FALSE) 。 \x0d\x0a如用语言来表述,就是:在Sheet1表A2:B100区域的第一列查找Sheet2表单元格A2的值,查到后,返回这一行第2列的值。 这样,当Sheet2表A2单元格里输入的名称改变后,C2里的单价就会自动跟着变化。当然,如Sheet1中的单价值发生变化,Sheet2中相应的数值也会跟着变化。 其他单元格的公式,可采用填充的办法写入。select
*
from
表名
where
[col1]
like
convert(nvarchar,'%'+(select
col2
from
dbo.userinfo
where
条件)+'%')
//注意
因为
like
'%%这里面的模糊查询数量唯一
所以
(select
col2
from
dbo.userinfo
where
条件)
必须唯一
这里就不能再有几个条件了
追问:
如果数据是在两张表呢?即表a
col1
大连市中山区
表b
col2
中山
怎样能查处col1包含col2的数据呢?
回答:
select
*
from
表名1
where
[col1]
like
convert(nvarchar,'%'+(select
col2
from
表名2
where
条件)+'%')
这里有2个
%
如果你想要
中山%就去掉前面一个
具体点就是
如果
要
%中山
就去掉后面一个比如你要选择
col1
的数据要和某个酒店所在的地方
比如
表b
col3
中存的是酒店名称
酒店是
万达酒店
对应的
col2是
中山
select
*
from
表名1
where
[col1]
like
convert(nvarchar,'%'+(select
col2
from
表名2
where
col3
='万达酒店')+'%')
这样就筛选出了
所有和万达酒店所在地方名字类似的地区了
评论列表(0条)