Excel Vlookup公式需要从pivoted数据

我有一个简单的数据透视表中的数据表格,格式如下:

ABCD Names Dog Cat Horse John Smith 1 1 0 Jane Smith 0 0 0 Jane Dow 0 1 0 John Dow 1 1 1 

我想用一个公式来填充另一个使用上面的表格。 第二个表有不同的顺序。 例如,马在B列而不是D,John Smith在第5行而不是1。

  ABCD Names Horse Cat Dog John Dow ? Jane Smith Jane Dow John Smith 

考虑到这些情况,使用最好的公式是什么,我不认为一个Vlookup / hlookup会起作用,因为它依赖于水平和垂直variables。

一个更强大的解决scheme是使用GETPIVOTDATA函数……它正是你问你的问题,用户可以从根本上改变数据透视表的布局,而不用公式中断。 在这里输入图像说明

试试这个公式在G2单元格(VLOOKUP with MATCH)

 =VLOOKUP($F2,$A:$D,MATCH(TRIM(G$1),$A$1:$D$1,0),0) 

在这里输入图像说明

正如@pnuts所提到的,这看起来像是一个毫无意义的练习,因为您可以在数据透视表本身中操作数据。

尽pipe如此,问,你会收到…

对于这个任务,您将要使用INDEX()公式。 通过给它一个相对于起始位置的行号和列号(无论它是哪里,它将假定第一个单元是第一行,第一列),从数据读取数据。

这使我们可以使用其他公式来确定我们正在寻找的行号和列号。

 =INDEX($E$5:$G$8, 'The area our results are that we are looking through MATCH($I4,$D$5:$D$8,0), 'Match the name to the name column, return a number of it's position counting from 1 as the first cell MATCH(J$3,$E$4:$G$4,0)) 'Same as above but matching the animal name 

现在看一下这个例子,在E5:G8的网格中,我们正在寻找由INDEX()返回的第4行第3列。

这是因为John Dow是在第一个MATCH()中find的第四个名字,Horse是在第二个MATCH()中find的第三个动物名称。

这将分别返回结果中右下angular的单元格。

=INDEX($E$5:$G$8,MATCH($I4,$D$5:$D$8,0),MATCH(J$3,$E$4:$G$4,0))

在这里输入图像说明