引用两个Excel文档 – 使用多列input确定值
我正在试图简化这个。 比方说,我有下面的Excel表(都是单独的文件)。
表1(CSV的参考列 – 文件不是CSV格式,虽然)
X52519, description1, vendor, Blue, Hard, Square X73849, Description2, vendorTwo, Red, Soft, Round X63825, Description3, vendorThree, Red, Hard, Fruit X49582, Description4, vendorFive, Blue, Hard, Fruit
表2(列的参考的csv样式)
Blue, Hard, Square, Lego Blue, Hard, Round, Hula-Hoop Red, Soft, Round, ball Red, Hard, Fruit, apple Orange, Soft, Fruit, Orange Green, soft, small, Pea
我想要表1在其末尾有一个公式列,并根据结果显示表2的值。 在现实生活中,表1和表2有许多不同的栏目,而且比较复杂,但应该参考。 表2是一个主人,拥有更多的信息,如描述,数字,这些是不相关的这个职位。 我只是想解释,所以这不是一个明显的解决scheme,只是将其添加到第一个电子表格。 这两份文件必须保持分开。
我希望表1的最终结果如下所示:表1(6列)
X52519, description1, vendor, Blue, Hard, Square, Lego X73849, Description2, vendorTwo, Red, Soft, Round, Ball X63825, Description3, vendorThree, Red, Hard, Fruit, Apple X49582, Description4, vendorFive, Blue, Hard, Fruit, Does Not Exist
如果一个解决scheme在这里不是很容易描述的话,也许是一些指导。 理想情况下,我希望表1的第四列自动填充而不用做任何事情,但是VBmacros一定是可行的。 我应该导入到Microsoft Access并使用它? 只要寻求一些指导和解决scheme,如果有人有任何想法。 我被告知VLOOKUP会非常复杂。
**编辑当我读这篇文章的时候,我发现了更多的误解(我敢肯定,因为我是社区的新手,表2中的“(如果…)”部分是为了引用不是数据的一部分,我想说的是,如果组合是表1的D列,那么表1中的D列应该显示苹果,因为另一个电子表格文件说等于等于苹果,这是否澄清?为任何困惑道歉。我修改了这个问题,希望能更好地澄清这个问题。
假设您的表1位于名为Sheet1
的工作表上,并且您的表2位于名为Sheet2
表上,并且两个表都在其各自的工作表的单元格A1中启动,则工作表Sheet1
单元格D1中的公式将生成要查找的值可能:
=TRIM(LEFT(INDEX(Sheet2!$A$1:$A$3,(MATCH($A1&", "&$B1&", "&$C1&")",MID(Sheet2!$A$1:$A$3,FIND("(If ",Sheet2!$A$1:$A$3)+4,999),0))),FIND(" ",INDEX(Sheet2!$A$1:$A$3,(MATCH($A1&", "&$B1&", "&$C1&")",MID(Sheet2!$A$1:$A$3,FIND("(If ",Sheet2!$A$1:$A$3)+4,999),0))))-1))
该公式将需要作为CSE公式input(即按Ctrl-Shift-Enter以“input”公式),然后将其复制到单元格D2和D3。
很显然,对表单的引用可以更改为引用您正在使用的任何工作簿中的表单,也可以调整单元格引用以适应表单中数据的位置。
我强烈build议你不要使用公式(我只是创build它来certificate我可以,因为我不经常使用INDEX
, MATCH
,尤其是CSE公式),而是考虑重新格式化数据(if可能的),这样它的格式就更容易计算了。
好的,如果你的Table1看起来像这样:
然后你的Table2看起来像这样:
在表1中的G2
中,可以使用这个数组公式(用CTRL + SHIFT + ENTERinput)
=INDEX(Table2!$D$1:$D$6,MATCH(Table1!D1&Table1!E1&Table1!F1,Table2!$A$1:$A$6&Table2!$B$1:$B$6&Table2!$C$1:$C$6,0))
并向下拖动。
#N/A
错误意味着你没有这个组合。 你可以在Index/Match
周围包装IfError()
来返回… say =IfError([formula above],"No such combination")
。