Excel中数据透视表中的文本和数值

时间:2019-02-14 22:15:46

标签: excel pivot

我在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”是列,“答案”是值。但是需要对值进行汇总,因此我需要使用数字而不是“答案”中的文本或数字。我不清楚如何仅显示值,而不显示值的某些处理版本。

任何帮助将不胜感激!

1 个答案:

答案 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 = AQuestion =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)进入的地方;修复行偏移量。它应该指向标题行中的一个单元格。

这看起来容易得多...