2017-07-03 87 views
1

我以下面的格式具有一个简单的数据表从枢轴表所需的Excel VLOOKUP公式:从枢转数据

A       B   C   D 
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和约翰·史密斯是在第5行,而不是1

A       B   C   D 
Names      Horse  Cat   Dog 
John Dow     ?    
Jane Smith     
Jane Dow     
John Smith 

什么是使用鉴于这种情况的最佳配方,我不认为一个VLOOKUP/HLOOKUP将工作,因为它依赖于水平和垂直变量。

+0

你一定要明白在数据透视表的行和列的顺序可以随意改变? – pnuts

+0

我知道你可以更改订单。但我需要在这两个表中固定的订单。 – Dinks123

+0

而你确实意识到数据透视表可以被复制? – pnuts

回答

2

一个更强大的解决方案是使用GETPIVOTDATA函数...它你问你的问题到底是什么,用户可以从根本上改变了数据透视表的布局,而不公式打破。 enter image description here

1

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

话虽如此,虽然,我们询问,并接受...

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

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

=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,我们是()寻找第4行,第3列由INDEX返回。

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

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

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

enter image description here

+1

谢谢你的作品。 – Dinks123

3

试试这个公式中G2细胞(VLOOKUP with MATCH)

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

enter image description here

+0

欣赏展示一种使用〜VLOOKUP〜服务OP需求的方法。 – skkakkar