0

如何根据某个 ID 字段合并行?

Original Table                   New Table

ID   | Field1 | Field2       ID     | Field1 | Field2
-----|------- |--------      -------|--------|-------
A        5                    A         5        10
A                10           B         1        3
B        1                    C         4        150
B                3
C        4
C                150

我想根据某个 ID 字段标识的组中的值填充给定的单元格值。

也就是说,我想聚合表并在每列中使用非空值作为聚合函数。

4

5 回答 5

1

在 ID 列中使用菜单选项: Edit Cells -> Blank down 这应该会给您留下一个看起来像这样的表格:

ID   | Field1 | Field2 
-----|------- |--------
A        5             
                 10    
B        1             
                 3
C        4
                 150

确保您处于“记录”模式(此选项位于数据网格的左上角)。您应该看到每个 ID 的行都分组在一起。

现在使用 Edit Cells -> Join multi-valued cells on each other columns - 一旦你为所有列完成此操作,这应该让你每条记录只有一行

于 2019-11-03T11:03:31.733 回答
1

我认为更简单的解决方案是使用:

1° ID 列上的“编辑单元格/空白”功能,以获得如下内容:

在此处输入图像描述

2°然后仅在最后一列(Field2)上“编辑单元格/加入多值单元格” ,这将产生:

在此处输入图像描述

于 2019-11-03T10:56:32.643 回答
0

对于“ID”列,使用“基于此列添加列”:

filter(
  cell.cross("ProjectName", "ID").cells["Field1"].value,
  v,
  isNonBlank(v)
)[0]

这将为每行标识的 ID 设置一个值。

Original Table      New Table

ID   | Field1 | Field2 | Field1_ | Field2_
-----|------- |--------|---------|--------
A        5                  5        10
A                10         5        10
B        1                  1        3
B                3          1        3
C        4                  4        150
C                150        4        150

删除旧列。

之后,使用“blank down + facet by blank + remove matching rows”方法删除重复项

于 2019-11-03T07:04:45.547 回答
0

使用 cross() 函数,您也可以实现此结果,但速度要快得多。

它本身基本上是一个 VLOOKUP(同一记录的所有行)——跳过带有数据的行——在过滤后删除空单元格。

filter(cross(cells.ID.value, "TEST-FillUp", "ID"), vV, vV.cells["Field1"].value != null)[0].cells.Field1.value
于 2020-03-26T08:03:59.800 回答
0

它不是 OpenRefine,但我认为它对于 OpenRefine 用户来说是一个非常好的工具。你可以运行这个 Miller ( https://github.com/johnkerl/miller ) 命令

mlr --csv reshape -r "Field" -o item,value \
then filter -x -S '$value==""' \
then reshape -s item,value input.csv

具有

ID,Field1,Field2
A,5,10
B,1,3
C,4,150

首先,我创建了一个整洁的数据版本(https://vita.had.co.nz/papers/tidy-data.pdf),然后再次将其从长格式转换为宽格式

于 2019-11-12T08:00:55.137 回答