我有一个简单的重复的两列表格,其结构如下(此处的列以逗号分隔,但在我的文件中,它们以制表符分隔:
唯一标识符_1、
数据类型A、数据_A1
、
数据类型B、数据_B1、数据类型C、数据_C1
唯一标识符_2、数据
类型A、数据_A2、
数据类型B、数据_B2、
数据类型C、数据_C2
我想将该表的内容编译成一个具有以下更简洁格式的新表:
、唯一标识符_1、唯一标识符_2
数据类型A、数据_A1、数据_A2
数据类型B、数据_B1、数据_B2
数据类型C、数据_C1、数据_C2
非常感谢任何建议。提前谢谢您!
答案1
我最终使用了 Excel 命令“OFFSET”:
=OFFSET($A$1,(ROW()-2)*8+INT((COLUMN()-4)),0)
这会将从 A1 开始的表中的数据打印到新表中,如下所示:
“ROW()-2”表示从 A1 向下偏移两行,即第 3 行。
“*8”表示原始表有8行,因此每8行要重复一次此操作。
“+INT((COLUMN()-4)”表示从 A1 列(即 D 列)向右偏移四列。
“,0”表示原表只有一列,因此不重复该动作。
然后我将这个公式复制到右边的8列,然后向下复制,直到所有数据都打印到新表中。
这是我目前对这个 excel 函数的理解和解决方案。我抽查了一个巨大的表格,所有数据都在它们应该在的地方。随着我更多地使用这个函数,我希望能够更好地理解它的实用性。
感谢那些花时间阅读我的问题的人。我确信使用 grep、sed、awk 或 list 会有更好的解决方案,但我还不知道怎么做。我希望很快能摆脱 Excel。我搜索了非 Excel 解决方案,但我没有足够的经验来提出足够的 Google 搜索词。