Excel 在4000000行CSV文件中编辑一列中的值
我有一个CSV文件,我正在尝试编辑,以添加一个数字ID类型列,其中包含从1到大约4000000的唯一整数。有些字段已经有了ID值,所以我希望我可以对它们进行排序,然后从最大值+1开始填充。但是,由于该文件的大小,我无法在Excel中打开该文件进行编辑(我只能看到最大1048000行或任何行)。有没有一个简单的方法可以做到这一点?我不熟悉编码,所以我希望有一种方法可以手动完成,类似于Excel的fill series功能 谢谢 -此外,我知道有线程如何编辑一个大的CSV文件,但我希望得到帮助,如何编辑这个特定的功能。谢谢 -我希望基本上根据idnumber对行进行排序,然后向没有该ID值的行添加唯一IDExcel 在4000000行CSV文件中编辑一列中的值,excel,csv,Excel,Csv,我有一个CSV文件,我正在尝试编辑,以添加一个数字ID类型列,其中包含从1到大约4000000的唯一整数。有些字段已经有了ID值,所以我希望我可以对它们进行排序,然后从最大值+1开始填充。但是,由于该文件的大小,我无法在Excel中打开该文件进行编辑(我只能看到最大1048000行或任何行)。有没有一个简单的方法可以做到这一点?我不熟悉编码,所以我希望有一种方法可以手动完成,类似于Excel的fill series功能 谢谢 -此外,我知道有线程如何编辑一个大的CSV文件,但我希望得到帮助,如何
单向,使用记事本++和名为:
a,b,c
1,2,3
4,5,6
7,8,9
SQL Plugin 1.0.1025
Query : select a+1,b,c from data
Sourcefile : abc.csv
Delimiter : ,
Number of hits: 3
===================================================================================
Query result:
2,2,3
5,5,6
8,8,9
之后的结果如下所示:
a,b,c
1,2,3
4,5,6
7,8,9
SQL Plugin 1.0.1025
Query : select a+1,b,c from data
Sourcefile : abc.csv
Delimiter : ,
Number of hits: 3
===================================================================================
Query result:
2,2,3
5,5,6
8,8,9
或者,换句话说,第一列增加1
第二个解决方案,使用,下载自:
(g) awk id一种逐行读取文件的工具。然后可通过$0
访问该行,并使用分隔符通过$1、$2、$3、
访问该行中的零件
在我的示例中(FS=OFS=\”,\”;
)的BEGIN
部分设置了此分隔符,每个输入文件只执行一次。不要被\“
弄糊涂。这是因为脚本位于双引号之间,并且变量(如OFS
)也使用双引号设置,因此需要像\”
一样转义
getline;打印$0时,请注意CSV中通常包含列名的第一行
然后,对于每一行,这段代码print$1+1、$2、$3
将增加第一列,并打印第二列和第三列
要扩展第二个示例,请执行以下操作:
gawk "BEGIN{ FS=OFS=\",\"; getline; print $0 }{ print ($1<5?$1+1:$1),$2,$3 }" abc.csv
a=42
为需要更新的列值设置初始值(您需要将其更改为正确的值)
- 当第四列等于0时,
if($4+0==0){a++}
将增加a
的值($4+0
用于将像“
这样的空值转换为数值0)
您能否展示您的CSV样本(3行或4行),并将其添加到问题中?(然后我可能会在awk
中想出一个解决方案,正如@Luuk所说,如果你能显示一两行你的CSV文件,这将是非常有用的。主要是因为CSV不是固定格式。分隔符、引号和行尾之间有很多变体。如果你不能,在awk部分中有几个有用的答案。嘿!I u更新了该文件的屏幕截图。谢谢!请看我的答案,我创建了一个简单的CSV示例,以演示如何完成…谢谢你的答案。有没有一种方法可以在不更改现有ID的ID值的情况下完成此操作?添加了一段有条件地更新列的代码。我知道这将是对(g)的一个深入学习awk,但此链接可以帮助您: