2012-01-17 77 views
0

我有2个Excel表,我需要一个公式来根据类型和模型列的值从表2中获取列*的值。Excel公式使用2张

Sheet1     Sheet2    

     *???   |    modelA modelB modelC 
typeA 100 modelA |  typeA 100  1  1 
typeB 50 modelB |  typeB 1  50  1 
...      |  ...   
typeY 20 modelA |  typeY 20  1  1 

在此先感谢您的任何建议

回答

1

让我们试着将其分解成更小的问题。

  1. 你有“类型”和“模式”的信息,并希望在片2搜索匹配
  2. 当你找到比赛,你想用它们来参考值表2
  3. ...然后你想指的是价值,使之表1.

我的做法是沿着这些路线:

  1. 我们可以使用MATCH函数来查找一条信息,然后返回它在一个范围内的位置。所以=MATCH("typeA", A4:A6)应该给我们答案'1'。如果我们使用MATCH来查找表2的类型和型号电池的位置,那么我们就可以用这些作为坐标,使地址...

  2. 给出的坐标,例如“1,1”,我们想要写一个地址。 ADDRESS函数将为我们做到这一点!例如,=ADDRESS(1,1) will give $A$1

  3. 然后,我们可以使用INDIRECT函数查看(并返回)此地址的内容。在表1中,=INDIRECT("$A$1")将返回'Sheet1'。

试图凑齐一起,我想出了这个:

=INDIRECT("sheet2!"&ADDRESS(MATCH(A1, Sheet2!$A$1:$A$5), MATCH(C1, Sheet2!$A$1:$D$1))) 

看来工作!

这对你来说如何?我需要更好地解释哪些部分?

问候, AZ

+0

看起来不错在公式中。只是好奇心:是否有任何方式使用这2个不同的文件(fileX中的工作表1和fileY中的工作表2)?谢谢;) – thedev 2012-01-18 07:39:17

+0

INDIRECT可以做到*如果*两张都打开。使用'= INDIRECT(“[C:\ path \ excelfile.xls] Sheet1!”&ADDRESS(... etc))'。如果您所指的表单已关闭,那么它将不起作用 - 您可能想要使用VBA或第三方功能:[关于INDIRECT的ozgrid讨论](http://www.ozgrid.com/forum/showthread .php?t = 44975)(我没有经验使用它们)。有关链接的更多信息,此页面非常好:[关于链接的MS帮助](http://office.microsoft.com/)。COM/EN-US/Excel的帮助/关于联到另一个工作簿或 - 程序HP005198424.aspx) – GnomeDePlume 2012-01-18 08:34:05

0

如果工作表在同一工作簿中的选项卡可以按名称 = SUM引用它们(工作表Sheet1!A1 + Sheet2的!A1)

,如果他们从不同的工作簿来了,那么你必须引用式中的路径和名称

= SUM(Sheet 1中A1 + 'C:[Book2.xlsx] Sheet 1中'!A1)

+0

,谢谢,我也很感兴趣,让我比较型号和类型 – thedev 2012-01-17 15:12:50