excel大量的逐条数据如何转化成交叉表数据

你好,我看了你之前回答别人的“excel大量的逐条数据如何转化成交叉表数据”的回答,觉得很适用,第一列数据变成行标题,第二列数据变成列标题,第三列数据成为交叉表中的数据。这个公式太复杂了,能把源数据放在sheet1表格,在第二张sheet表格里面B2位置,设置一个吗?就可以直接复制来用了,谢谢!

如何将批量的逐行数据(也叫数据库记录数据)转换成二维交叉表数据,分关键列情况而定,本人举例如下,第一种关键列(关键字段)只有一个的情况:

1、在原表前加一个辅助列 用户ID, 其值来自原用户+序列号(注公式的写法),A2=B2&COUNTIF($B$2:$B2,B2)  下拉;
2、将B列的用户值,复制到 F列(新表),数据---数据工具:删除重复项---得到唯一的用户名(一个用户只出现一次);
3、对于新表的其他列(G1、H1、I1...),名称必须命名为后带序号的列名,如手机号1、手机号2....
4、用Vlookup( )函数来查找并匹配值 G2=VLOOKUP($F2&COLUMN( )-6,$A$2:$C$18,3,0),解释:COLUMN()-6就是当前列号7减去6等于1,目的匹配上面对应列的序号 1,且产生出vlookup函数的关键字“查找值”要唯一,将 G2公式竖拉、横拉,当出现 #N/A 值时表示值匹配完毕。

5、根据列字段或行关键值记录的多少,可以做成横向表
G11=VLOOKUP(G$10&ROW()-10,$A$2:$C$18,3,0),  G11公式横拉、竖拉,当出现 #N/A 值时表示值匹配完毕。


第二种情况,当关键字段值是由多个列值的组成,请等待几天,本人后续。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-27
在Sheet2的B2单元格输入以下数组公式,按Ctrl+Shift+Enter组合键结束,然后向右向下填充公式
=INDEX(Sheet1!$C:$C,MATCH($A2&B$1,Sheet1!$A:$A&Sheet1!$B:$B,0))

如果Sheet1的C列是数值,且Sheet1的A列和B列数据不重复,可以通过SUMPRODUCT或SUMIFS多条件求和的方式得到结果,在Sheet2的B2单元格输入以下公式,然后向右向下填充公式
=SUMPRODUCT((Sheet1!$A$2:$A$1000=$A2)*(Sheet1!$B$2:$B$1000=B$1)*Sheet2!$C$2:$C$1000)
=SUMIFS(Sheet1!$C:$C,Sheet1!$A:$A,$A2,Sheet1!$B:$B,B$1)本回答被提问者和网友采纳
第2个回答  2015-12-02
发个说明你问题的样表+说明
[email protected]来自:求助得到的回答
第2个回答  2015-12-02
你好请上数据源,有表更快测试
相似回答