csv 当某些值重复时,是否自动在表中添加引用字段?

tpxzln5u  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(64)

我有一个CSV文件,我可以通过Excel/LibreOffice和/或SQLite3处理。只有在更新CSV时才必须执行此任务,这种情况很少发生,因此我可以在需要时手动运行它。
假设有一个这样的表,包含大约10 k行和更多的列。SAME_COLOR列为空。
这是开始的CSV/表:
| ID|产品|颜色|同色|
| --|--|--|--|
| 1 |tshirt|黑色||
| 2 |鞋|白色||
| 3 |裤子|黄色||
| 4 |袜子|黑色||
| 5 |帽衫|粉红色||
| 6 |袋|红色||
| 7 |手套|蓝色||
| 8 |手镯|红色||
如果表中有一行与COLOR列中的另一行具有相同的值(这种情况在表中只会发生两次,或者永远不会发生),我想在SAME_COLOR列中添加具有相同值的另一行的ID。
这将是输出表:
| ID|产品|颜色|同色|
| --|--|--|--|
| 1 |tshirt|黑色| 4 |
| 2 |鞋|白色||
| 3 |裤子|黄色||
| 4 |袜子|黑色| 1 |
| 5 |帽衫|粉红色||
| 6 |袋|红色| 8 |
| 7 |手套|蓝色||
| 8 |手镯|红色| 6 |
ID 1和ID 4具有相同的颜色,因此:

  • 在行1中,在列SAME_COLOR中插入值4
  • 在行4中,在列SAME_COLOR中插入值1

ID 6和ID 8具有相同的颜色,因此:

  • 在行6中,在列SAME_COLOR中插入值8
  • 在行8中,在列SAME_COLOR中插入值6

这是上面输出表的CSV示例:

ID,product,COLOR,SAME_COLOR
1,tshirt,black,4
2,shoes,white,
3,pants,yellow,
4,socks,black,1
5,hoodies,pink,
6,bags,red,8
7,gloves,blue,
8,bracelets,red,6

如何快速/自动完成此操作?

krugob8w

krugob8w1#

鉴于您的描述,只有两种颜色或一种颜色,在Excel 365中,您可以使用以下公式:

  • 请注意,我使用的是带有结构化引用,但如果您愿意,可以将其更改为常规寻址 *
  • 使用表格,您只需在D2中输入公式,它将自动根据需要填写 *
  • 该公式使用了UNIQUE函数的最后一个可选参数,因为将当前ID与两个ID组合将导致只有一个返回值,或者没有返回值=> error。
=IFERROR(
    LET(
        f, FILTER([ID], [color] = [@color]),
        UNIQUE(VSTACK(f, [@ID]), , TRUE)
    ),
    ""
)

相关问题