我有一个数据集,它由不同的人填写表单来填充 Google Sheet 上的电子表格。数据集可能如下所示: 列出姓名、收集的评论、日期和呼叫者的数据集。
有一群呼叫者,他们给个人打电话收集信息,比如电影评论,并在表格中记录他们呼叫的人的姓名、他们的评论是什么、日期和呼叫者的姓名。我想汇总数据,以便按姓名将其组织成一个单独的表格,在一个单元格中列出该人给出的所有评论,并注明收集评论的呼叫者的姓名和收集日期。这就是我想要的结果表的样子。
我尝试了两种不同的选项。首先是 XLOOKUP,该函数如下所示:
=CONCATENATE(XLOOKUP(I2, $A$2:$A, $B$2:$B), " (",XLOOKUP(I2, $A$2:$A, $D$2:$D), ", ", TEXT(XLOOKUP(I2, $A$2:$A, $C$2:C),"mm/dd/yyyy"), ")")
这给了我正确的格式,但如果同一个人给出了多条评论,XLOOKUP 只会给我第一个结果。我想收集他们所有的评论。使用 XLOOKUP 生成的表,其中不包含第二组评论的单元格以红色突出显示。
然后我尝试使用 FILTER:
=TEXTJOIN(CHAR(10),TRUE,FILTER($B$2:B, $A$2:A=L2),FILTER($D$2:D,A$2:$A=L2), FILTER($C$2:C,A$2:$A=L2))
这给了我所有数据,但格式不正确。现在,如果有多条评论,则按顺序列出,然后列出呼叫者的姓名,然后列出日期
我如何返回所有匹配项,但将返回数据的顺序/格式自定义到 1 个单元格中?
答案1
欢迎!
你是对的——TEXTJOIN(CHAR(10)...
这会起到作用。
你也是对的——FILTER()
可以选择你想要的数据。
您只错过了一点——作为第一个参数(用于过滤的数组),您需要传递一组已经格式化的字符串:
=IFERROR(TEXTJOIN(CHAR(10),1,
ARRAYFORMULA(FILTER(
{B1:B&" (" & D1:D & ", " & TEXT(C1:C,"YYYY-MM-DD") & ")"},
A1:A=L1))),"")`