将多行转换为列

我遇到了这个任务,我被困在一个很大的时间。 我试过了一个数据透视表,但没有给我想要的结果。 唯一可行的是手动转置,但是logging的数量是5k个奇数。

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

SO33969916问题的例子

数据透视表可以完成这项工作。 所有你需要的是使用COUNTIFS的帮助栏。 注意单元格D2中的公式。

在这里输入图像说明

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

在这里输入图像说明

在这里输入图像说明

这里需要注意的是当logging数量增长到10k或更多(或者只是我的缓慢的pc:/)时, COUNTIFS可以变得非常慢。 发生这种情况时,解决方法是:首先对数据进行sorting,然后COUNTIFS有限数量的单元使用COUNTIFS 。 例如,在单元格D2处,公式将为=COUNTIFS(A2:A102,A2,B2:B102,B2) ,因此只计算100条logging,而不是填写公式时的整个logging​​。

如果你想要的是每个公司的票数和平均数,可以用各种方法来完成。

使用数据透视表,将公司拖到行区域; 将评分拖到值区域两次。 然后将其中一个评分的值字段设置更改为计数; 另一个是平均水平。

添加一些格式和各种选项给你:

在这里输入图像说明

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

 Count: H3: =COUNTIF($B$1:$B$1000,G3) Average: I3: =AVERAGEIF($B$1:$B$1000,G3,C1:$C$1000) 

并根据需要填写。

在这里输入图像说明

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

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

然后将所有公式拖到右侧,直到整列出现空白。 请注意,这需要对TARGET ATTENDEE ORGANIZATION列进行sorting。