我试图在一个名为“看起来像这样的操作”的表中读取
"id";"name";
"1";"LASER CUTTING";
"2";"DEBURR";
"3";"MACHINING";
"4";"BENDING";
"5";"PEM";
"6";"WELDING";
"7";"PAINT PREPARATION";
"8";"PAINTING";
"9";"SILKSCREEN PREPARATION";
"10";"SILKSCREEN";
"11";"ASSEMBLY - PACKAGING";
"12";"LASER PREP";
我希望在工作表中有一个列,该列根据另一个工作表中的operation_id列的值获取相应的名称。 如何根据单元格的值查找另一个工作表中的特定单元格?
实施例
userid, operation_id, operation_name
bob, 3, MACHINING
答案 0 :(得分:3)
您应该查看DGET(数据库,字段,条件)功能,参考here。
或者您可以使用此工作表功能:
VLOOKUP(cellWithID, Sheet2!A1:B13, 2, FALSE)
其中cellWithID是您要使用的ID值的单元格。
答案 1 :(得分:2)
也许Lookup()函数可以更好地为您服务。 http://www.techonthenet.com/excel/formulas/lookup.php
答案 2 :(得分:0)
基于此:“我真正想做的只是查找操作的名称,而不必每次都运行sql查询,或者在每个单元格中都有一个丑陋的巨大if语句。”
我想这里让我感到困惑的是为什么你不只是使用连接。您始终可以将该表作为查找来连接您的sql语句;
select operations.name, tableA.* from tableA
对operations.id = tableA.operationid
进行左外连接操作如果你愿意,你可以使用它;不建议。子查询通常讲坏消息。但是,
create function dbo.LookupOperationName
(
@id int
)
returns varchar(100)
as
declare @returnvalue varchar(100)
select @returnvalue = name from Operations where id = @id
return @returnValue
会做到这一点。然后你可以:
select tablea.*,LookupOperationName(operationid) from tablea
同样,请记住您的连接示例更高效。您还可以创建一个具有连接的视图,并使用视图代替表....各种各样的事情。