如何根据特定列中出现的次数重命名现有单元格名称?

如何根据特定列中出现的次数重命名现有单元格名称?

我的 Excel 中有一列如下:

REF
---------
BV1013_1
BV1013_1
BV1013_2
BV1013_2
BV1026
BV1040
BV1040
BV1041
BV1041
BV1042
BV1042

期望输出:一些单元格值/名称在几个地方是相同的。我想根据单元格出现的次数将其重命名为以下名称。

REF             Desire
-----------------------
BV1013_1    BV1013_1_1  
BV1013_1    BV1013_1_2
BV1013_2    BV1013_2_1  
BV1013_2    BV1013_2_2
BV1026      BV1026_1
BV1040      BV1040_1
BV1040      BV1040_2
BV1041      BV1041_1
BV1041      BV1041_2
BV1042      BV1042_1
BV1042      BV1042_2

我想在 excel 中或使用 bash 脚本来解决这个问题。任何帮助对我来说都很有价值。

答案1

使用 Miller (https://github.com/johnkerl/miller) 从...开始

REF
BV1013_1
BV1013_1
BV1013_2
BV1013_2
BV1026
BV1040
BV1040
BV1041
BV1041
BV1042
BV1042

并运行

mlr --csv step -a counter -f REF -g REF then put '$Desire=$REF."_".$REF_counter' then cut -x -f REF_counter input.csv

你将会拥有

REF,Desire
BV1013_1,BV1013_1_1
BV1013_1,BV1013_1_2
BV1013_2,BV1013_2_1
BV1013_2,BV1013_2_2
BV1026,BV1026_1
BV1040,BV1040_1
BV1040,BV1040_2
BV1041,BV1041_1
BV1041,BV1041_2
BV1042,BV1042_1
BV1042,BV1042_2

相关内容