如何在Microsoft Excel中获得没有额外列的vlookup值数组?
我有一个列表和查找表。 该列表将在列A中,并且查找表将在列C和D中。列C中的每个单元格都包含文本并且是唯一的。 列D对于列C的每个元素具有对应的值。列A包含未分类的列表,其具有来自列C的文本的重复但没有列C以外的任何内容。下面示出一个简单的例子
我最终想要的是一个数组,其中包含从表中查找所有列A对应的值。所以在这个例子中,我想
{1,2,1,2,2,2,1,1,2}
我知道这可以通过使用
=vlookup(B9,$C$1:$D$2,2,FALSE)
在列B的每个单元格中,并以数组{$ B $ 1:$ B $ 9}的forms获取列。 但是,我需要跳过中间的人,并省略了另一列中的任何东西,因为这需要在各种查找表上同时执行,但没有连接,即不是多次查找,我只需要看一下不同的同一个列表A一组相应的值D.
我完全失败了,看起来很简单,但我一直在努力工作数小时, 我记得读到,你不能输出vlookup到一个数组,我没有太多的运气,试图使用匹配。
如果你想继续使用VLOOKUP:
VLOOKUP(T(IF(1,+A1:A9)),C1:D2,2,0)
这里使用了T,因为A1:A9中的值是文本,而不是数字(否则我们将使用N – 包含混合数据types的范围需要不同的方法)。
http://excelxor.com/2014/09/05/index-returning-an-array-of-values/
问候
你可以用下面的数组forms使用INDEX函数来实现你的数组。 由于查找表的方向与A1:A9中的值相同,因此必须使用TRANSPOSE A1:A9来实现循环数组处理。
作为一个数组公式1,
=INDEX((TRANSPOSE(A1:A9)=C1:C2)*(D1:D2), , )
这可以在单个单元格中通过将数组结果包装在一个SUM函数中进行certificate,该函数将总和该数组的元素。
=SUM(INDEX((TRANSPOSE(A1:A9)=C1:C2)*(D1:D2), , ))
…返回14 。
数组中的INDEX函数
¹ 数组公式需要使用Ctrl + Shift + Enter 键来完成。 一旦正确input第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。 尝试和减less您的全列引用范围更接近代表实际数据的范围。 数组公式将计算周期对数化,所以最好将参考范围缩小到最小。 有关更多信息,请参阅数组公式的示例 。