合并具有不同日期值的行

合并具有不同日期值的行

我的列表有大约 1000 个用户,其中有多个条目具有不同的值,例如第 2-10 行。我想将每个用户的值合并到一行上,如下例中的第 13-17 行。

例子

CSV:

Name;Date 1;Date 2;Date 3 ;Date 4
Robin;01.02.2021;;;
Olaf;03.03.2021;;;
Olaf;;05.03.2021;;
Kim;;;;
Kim;;06.07.2020;08.08.2020;
Niko;03.04.2021;;;
Niko;;05.06.2020;;
Niko;;;08.04.2021;
Niko;;;;09.06.2021
;;;;
;;;;
Name;Date 1;Date 2;Date 3 ;Date 4
Robin;01.02.2021;;;
Olaf;03.03.2021;05.03.2021;;
Kim;;06.07.2020;08.08.2020;
Niko;03.04.2021;05.06.2020;08.04.2021;09.06.2021

答案1

在此处输入图片描述

您可以使用以下公式获取姓名列表:

=UNIQUE(A2:A10)

日期的公式是每个单元格的,并假设每个人在每个日期列中只有一个值(从您的数据来看是这种情况)。

=LET(x,B$2:B$10,IFERROR(FILTER(x,($A$2:$A$10=$G2)*(x<>"")),""))

此公式表示“让 x 为 B 列中第 2 行至第 10 行的数据。仅筛选出 A 列中的名称与此行 G 列中的名称相同且 x 不为空的行”。最终结果是您返回零(对于日期 1 的 Kim 而言)或每个名称 1 个值。如果返回零值,FILTER 将返回错误。IFERROR 调用表示如果有错误,则显示空白。然后,将此公式向下拖动并跨越 H:K 中的四个日期列。

如果此公式不起作用,则您可能无法访问 LET 函数。在这种情况下,请使用以下命令:

=IFERROR(FILTER(B$2:B$10,($A$2:$A$10=$G2)*(B$2:B$10<>"")),"")

相关内容