在Google表格中将多行数据合并为一行

时间:2020-09-21 07:56:37

标签: join google-sheets

我在Google表格中有一个表格,其中的列如下所示:

名称; ID;地址;电话号码。;日期;

我在名称和ID列中有重复项,然后在以下单元格中有一些数据,但其余数据在单独的行中,例如:

  1. 詹姆斯; 01;一种;空值; NULL;
  2. 詹姆斯; 01;空值; +36907851236; 2019/09/12。;
  3. 标记; 02; b;空值; NULL;
  4. 标记; 02;空值; +36402584796; 04.03.2019。;

基本上,我想证明的是同一个人有几行,一行中有一些数据,另一行中有一些数据。我想做的是在没有行的情况下合并/合并这些行

  • 丢失任何数据
  • 因为有几百行,所以必须手动进行

根据上面的“表格”,我想要什么:

  1. 詹姆斯; 01;一种; +36907851236; 2019/09/12。;
  2. 标记; 02; b; +36402584796; 04.03.2019。;

我基本上对脚本编辑器一无所知,因此,如果没有这样做的话,那将是最好的选择。如果没有,请尽量简化。

非常感谢您!

1 个答案:

答案 0 :(得分:1)

我重新排列了ID和Name列,因为这样更有意义。现在我们有了列:

ID  Name    Address Phone   Date

您可以为每一列使用公式:

  • ID,名称:=UNIQUE(A2:B)
  • 名称:
=ArrayFormula(REGEXREPLACE(
    ""&TRANSPOSE(
        SPLIT(
            REGEXREPLACE(
                TEXTJOIN(
                    ",",
                    ,
                    UNIQUE(
                        TRANSPOSE(
                            IF(
                                TRANSPOSE(FILTER($A2:$A,LEN($A2:$A)))=FILTER($A2:$A,LEN($A2:$A)),
                                FILTER(C2:C,LEN(C2:C)),
                                ";"
                            )
                        )
                    )
                ),
                ",(;,)+",
                ";"
            ),
            ";"
        )
    ),
    ",?NULL,?",
))

UNIQUE中使用时,TRANSPOSE + ArrayFormula位会进行某种组联接/连接。

  • 电话:将名称公式拖到上方
  • 日期:我不确定这是否是语言环境设置。 (我的语言环境使用斜杠定界日期。)如果对您来说相同,并且您计划使用字符串,则只需将公式再次拖动即可。否则,您需要执行额外的步骤,将TEXT(FILTER(E2:E,LEN(E2:E)),"MM.DD.YYYY")添加到日期中,然后再将其拖动到字符串上即可。