如何根据单元格的值在另一个工作表中查找特定的单元格?

我试图读取一个名为操作的表,看起来像这样

"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 

也许Lookup()函数对你更好。 http://www.techonthenet.com/excel/formulas/lookup.php

你应该看看DGET(数据库,字段,标准)函数, 在这里参考。

或者你可以使用这个工作表函数:

 VLOOKUP(cellWithID, Sheet2!A1:B13, 2, FALSE) 

其中cellWithID是您要使用的ID值的单元格。

基于此:“我真正想要做的就是查找操作的名称,而不必每次运行sql查询,或者在每个单元格中都有一个丑陋的if语句。

我想这里的困惑是为什么你不只是使用连接。 无论你的sql语句是什么,你总是可以join这个表来查找。

 select operations.name, tableA.* from tableA 

在operations.id = tableA.operationid上留下外部联接操作

如果你想,你可以把这个function化。 不build议。 子查询通常是坏消息。 然而,

 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 

再一次,请记住,您的join示例是更高性能的。 你也可以创build一个有连接的视图,并用视图来代替表格….各种各样的东西。