将多行转置为列

Transpose multiple rows into columns

我遇到了这个任务,但我遇到了很多困难。我试过数据透视表,但它没有给我想要的结果。唯一可行的是手动转置,但记录数为 5k 奇数。

我在这里想要实现的是将公司行中的数据转换为列,以便在稍后阶段能够计算每家公司的票数和平均票数。

数据透视表可以胜任这项工作。您只需要一个使用 COUNTIFS 的辅助列。注意单元格 D2 中的公式。

数据透视表看起来像这样(设置为表格布局)

这里要注意的是,当记录数量增长到大约 10k 或更多时,COUNTIFS 会变得非常慢(或者只是我的慢电脑 :/)。发生这种情况时,解决方法是:首先对数据进行排序,然后仅对有限数量的单元格使用 COUNTIFS。例如,在单元格 D2 中,公式将为 =COUNTIFS(A2:A102,A2,B2:B102,B2),因此在您填写公式时只计算 100 条记录而不是整组记录。

如果你想要的是每家公司的票数和平均票数,那可以通过多种方式实现。

使用枢轴Table,将公司拖到行区域;将评级拖到值区域两次。然后将其中一个评级的值字段设置更改为计数;另一方面平均。

添加一些格式和各种选项可为您提供:

或者,如果您有一个组织(公司名称)列表,比方说,G3:Gn,并且您的数据 table 在列 A:C 中,您可以使用公式:

Count:    H3: =COUNTIF($B:$B00,G3)
Average:  I3: =AVERAGEIF($B:$B00,G3,C1:$C00)

并根据需要填写。

既然你提到一个PT不适合,假设RATING在F2,请尝试在G3复制下来适应:

=IF(AND(COLUMN()-7<COUNTIF($E:$E,$E3),$E2<>$E3),OFFSET($F3,COLUMN()-7,0),"")  

然后将所有公式向右拖动,直到整列显示为空白。请注意,这需要对 TARGET ATTENDEE ORGANIZATION 列进行排序。