我有一张excel表,其数据类似于以下
Reg_id Name Product_Owned Product_model
----------------------------------------------------
34 Tom Laptop Dell Studio15
34 Tom Mobile HTC Sense
34 Tom Camera Canon xyz
67 Steven Laptop Apple Mac Book
67 Steven Phone Apple iPhone4
88 Sunny Mobile Samsung i9000
88 Sunny Camera Sony xyz
我在Product_Owned
列中只有三个值 - Laptop, Camera & Mobile.
我希望他们的信息作为单独的列存储在同一个人的单行中。
我想以这种格式制作:
Reg_id Name Laptop Mobile Camera
--------------------------------------------------------------
34 Tom Dell Studio15 HTC Sense Canon xyz
67 Steven Apple Mac Book Apple iPhone4
88 Sunny Samsung i9000 Sony xyz
无法手动执行,因为有大约50000行。请提出一些建议..
答案 0 :(得分:3)
在相邻表格中创建Reg_ID
和Name
的唯一列表,类似于您在第二个表格中设置的列表。
为Laptop
,Mobile
和Camera
创建标题,然后在下面,在H2中输入以下公式作为数组公式,假设第一个表位于单元格中A1:D8和F1中新创建的:J4:
=INDEX($D$2:$D$8,MATCH($F2,$A$2:$A$8,0)+MATCH(H$1,OFFSET($C$2,MATCH($F2,$A$2:$A$8,0)-1,0,COUNTIF($A$2:$A$8,$F2)),0)-1)
这将返回相应Reg_ID
和Product_Owned
的值,以及Product_Owned
不存在时的'#NA'。如果您想要返回空白而不是'#NA',则可以添加ISNA()
公式:
=IF(ISNA(INDEX($D$2:$D$8,MATCH($F2,$A$2:$A$8,0)+MATCH(H$1,OFFSET($C$2,MATCH($F2,$A$2:$A$8,0)-1,0,COUNTIF($A$2:$A$8,$F2)),0)-1)),"",INDEX($D$2:$D$8,MATCH($F2,$A$2:$A$8,0)+MATCH(H$1,OFFSET($C$2,MATCH($F2,$A$2:$A$8,0)-1,0,COUNTIF($A$2:$A$8,$F2)),0)-1))