我有一个列与下面类似的工作表
name | id | contact | category | week 1 | week 2 | week 3 | ... |week 52我需要做的是将“week”列转换为行,因此我最终得到了:
name | id | contact | category | week将每周的条目作为s/工作表中的一行,从而在行上生成一个长列表,其中包含每周的列数据。
示例当前格式:
琼斯- ..........150
所需格式
琼斯- 12345 -西蒙-电子公司
琼斯- 12345 -西蒙-电子公司
琼斯- 12345 -西蒙-电子公司
琼斯- 12345 -西蒙-电子公司
..。
琼斯- 12345 -西蒙-电子公司- 150
我已经尝试过通常的excel transpose (通过粘贴),但无法使前几个列保持静态,同时转移周列。
理想情况下,我希望在excel中实现这一点,但我可以将数据导入mysql数据库并使用它,如果这样的解决方案更容易的话。
希望这是有意义的
增加的例子
发布于 2014-09-29 15:27:23
我将在第二个工作表上完成这项工作,该工作表使用INDIRECT函数为您进行查找:
首先,在新的工作表上设置一些索引--我们将使用这些索引间接地查找原始工作表并将数据拉过。
我将一次又一次地在A列中数到52,从A2中的1开始,并使用下面的公式:
=if(A2=52,1,A2+1)这将是我对每个人每周的计数。
在B栏中,我将计算我的人,从B2中的1开始,并使用以下公式:
=if(A3=1,B2+1,B2)这为我提供了在INDIRECT函数中使用的行和列偏移量,以便从原始工作表中获取数据。
现在,有趣的部分-匹配这些行和列偏移量的实际数据。
让我们假设您的原始数据在一个称为“原始”的工作表中。这就是我们需要查找数据的地方。
我们将把原来的A列映射到新页的C列中,这样C2就可以保持这个公式:
=indirect("original!R"&($B2+1)&"C1",false)您在那里所做的是查看在B列(上面的公式)中计算的行,并查看该行的第一列(即A列)--这是存储名称的地方。
同样,使用修改公式将"id“、”联系人“和”类别“列映射到新的表列D、E、F:
=indirect("original!R"&($B2+1)&"C2",false)=indirect("original!R"&($B2+1)&"C3",false)=indirect("original!R"&($B2+1)&"C4",false)在这些更新中,只更改列偏移量。
为了跨越每周数据,我们使用了一个类似的公式;不同的是,现在我们使用了新计算的列A,在那里我们从1到52一次又一次地计数。
因此,G2变成:
=indirect("original!R"&($B2+1)&"C"&(4+$A2),false)把所有这些都复制到你需要的地方,隐藏A和B列。
https://stackoverflow.com/questions/26103036
复制相似问题