编辑:显示数据不仅仅是数字
如果可以的话,我将非常感激您的帮助!我在 LibreOffice 电子表格中有一些数据,其结构如下:
+----+---------+-------+--+ | ID | 质量 | 值 | | +----+---------+-------+--+ | 1 | 高度 | 123 | | | 1 | 重量 | 456 | | | 1 | 姓名 | 乔恩 | | +----+---------+-------+--+
但我需要转置数据以显示如下内容:
+----+--------+--------+-------+ | 身份证 | 身高 | 体重 | 名字 | +----+--------+--------+-------+ | 1 | 123 | 456 | 乔恩| +----+--------+--------+-------+
这是一个很长的文件 - 85,000 行,否则我只能手动操作!我可以使用 LibreOffice、awk、sed 和任何其他 Linux 工具。如果真的需要,我可以找到使用 Excel 的方法。
有什么想法吗?转置是正确的词吗?
提前谢谢了!
答案1
这可以通过使用数据透视表轻松实现。
步骤 1:选择数据步骤 2:转到数据 > 数据透视表 > 创建步骤 3:创建数据透视表后,将 ID 拖到“行字段”,将值拖到“数据字段”,将质量拖到“列字段”。然后单击“确定”
答案2
我将写出 Excel 版本的公式,您必须尝试一下,并在需要时将其转换为 LibreOffice:
Formula 1
=IFERROR(INDEX([Initial Tab]!$C$2:$C$85000,MATCH(A2&$B$1,[initial Tab]!$A$2:$A$85000&[Initial Tab]!$B$2:$B$85000,0),1),"")
在高度列 B 下第 2 行
[Initial Tab]!$C$2:$C$85000
的值列
[initial Tab]!$A$2:$A$85000
ID 列
[Initial Tab]!$B$2:$B$85000
质量列
A2 新选项卡中的 ID 号
B1 新选项卡中的高度列标题
Formula 2
=IFERROR(INDEX([Initial Tab]!$C$2:$C$85000,MATCH(A2&$C$1,[initial Tab]!$A$2:$A$85000&[Initial Tab]!$B$2:$B$85000,0),1),"")
Formula 3
=IFERROR(INDEX([Initial Tab]!$C$2:$C$85000,MATCH(A2&$D$1,[initial Tab]!$A$2:$A$85000&[Initial Tab]!$B$2:$B$85000,0),1),"")
所有公式都是数组公式,同时按下Ctrl
+ Shift
+而不是针对每个公式,然后将其拖到同一列中, 对于每个公式,只需将 $B$1 替换为新选项卡中质量标题的引用, 如果相应 ID 没有质量,公式将返回“”空, 只需将 ID 列复制到新选项卡并从中删除重复项 Enter
Enter
Quality
新标签
Column A Column B Column C Column D
Row 1 ID Height Weight Name
Row 2 1 Formula 1 Formula 2 Formula 3
答案3
如果您想将电子表格下载到以逗号分隔的文件中,然后将awk
其转置到另一个文件,然后上传,这可能适合您。
awk -F, 'BEGIN { s = "," } {
if ( NR == 1 || NR == 2 || NR == 3 || NR == 4 ) {
if ( NR == 1 ) h[1] = $1
if ( NR == 2 ) { id = $1; h[2] = s $2; v[1] = $3 }
if ( NR == 3 ) { h[3] = s $2; v[2] = $3 }
if ( NR == 4 ) { print h[1] h[2] h[3] s $2; v[3] = $3 }
}
else {
if ($1 != id ) {
print id s v[1] s v[2] s v[3]
id = $1; v[1] = $3; ix = 2
}
else v[ix++] = $3
}
}
END { print id s v[1] s v[2] s v[3]
}' file1 > file2
File1 File2
ID,Quality,Value ID,Height,Weight,Name
1,Height,123 1,123,456,Jon
1,Weight,456 2,114,115,Cat
1,Name,Jon 3,224,225,Dog
2,Height,114
2,Weight,115
2,Name,Cat
3,Height,224
3,Weight,225
3,Name,Dog