我有一个来自数据透视表的简单数据表,格式如下:
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,John Smith在第5行而不是1。
A B C D
Names Horse Cat Dog
John Dow ?
Jane Smith
Jane Dow
John Smith
在这些情况下使用的最佳公式是什么,我认为Vlookup / hlookup不会起作用,因为它依赖于水平和垂直变量。
答案 0 :(得分:3)
答案 1 :(得分:2)
答案 2 :(得分: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))