我在Excel中有一个像这样的表:
Name QuestionID Answer
A 1 Shoes
B 1 Coats
A 2 1983
B 2 1978
我想创建一个看起来像这样的表:
Name 1 2
A Shoes 1983
B Coats 1978
我尝试创建一个数据透视表,其中“名称”是行,“ QuestionID”是列,“答案”是值。但是需要对值进行汇总,因此我需要使用数字而不是“答案”中的文本或数字。我不清楚如何仅显示值,而不显示值的某些处理版本。
任何帮助将不胜感激!
答案 0 :(得分:0)
这就是为什么我从不使用数据透视表的原因……他们似乎从来没有做过我需要它们做的事情。
假设您可以手动或自动神奇地为“标题行和名称”列创建唯一的独特列表(请参见unique distinct list)
您可以在表中使用以下公式进行查找:
=INDEX($C$2:$C$5,SUMPRODUCT(($A$2:$A$5=$E2)*($B$2:$B$5=F$1)*ROW($C$2:$C$5))-ROW($C$1))
哪里
源表在A1:C5中
结果表-名称列为E1:E3
标题(用于问题)位于单元格F1:G1
如果您将其拆分,则只是一个INDEX
表查询
=INDEX($C$2:$C$5,SOME_ROW)
SOME_ROW
由
SUMPRODUCT(($A$2:$A$5=$E2)*($B$2:$B$5=F$1)*ROW($C$2:$C$5))
打破SUMPRODUCT
,我们只是在创建一组搜索条件为1和0(或True / False)的列表。
与Name
匹配的第一列由($A$2:$A$5=$E2)
与Question
相匹配的第二列由($B$2:$B$5=F$1)
将两个列表相乘,得到Name = A
和Question =1
(A,B,A,B) * (1,1,2,2)
(1,0,1,0) * (1,1,0,0) = (1,0,0,0)
SUMPRODUCT
中的第三个列表(我们将上面的结果与之相乘)是实际的Row;由ROW($C$2:$C$5)
确定,因此我们得到:
(1,0,0,0) * (2,3,4,5) = (2,0,0,0)
现在我们SUM
PRODUCTS
的结果:
2 + 0 + 0 + 0 = 2
所以实际结果在Row 2
中;是的!
...但是我们有问题;在INDEX
函数中,数组从第2行开始,因此如果我们为2
指定row number
,则由于起始行,我们实际上将从第3行获取值偏移量。
这是-ROW($C$1)
进入的地方;修复行偏移量。它应该指向标题行中的一个单元格。
这看起来容易得多...