我做了很长时间的搜索,无法找到我要找的东西。也许有人在那里可以帮忙吗?
我在Google电子表格中有这个公式(我将在下面解释它的作用):
=Join(" ",FILTER(Sheet1!B:B;Sheet1!A:A=A1))
在表1中是一个表:列A是名字(例如'詹姆斯'),列B是一些评论(例如'头痛')。詹姆斯(或任何其他人)可能有多行,每行都有不同的评论(例如詹姆斯有2行,一行说'头痛',另一行说'膝盖疼痛'。)
在表2的A列中,我有一个出现在Sheet1中的名称列表(使用'= UNIQUE'公式)。 A1说'詹姆斯'。在单元格B1中,我输入上面的公式。
结果几乎就是我想要的。它将詹姆斯的所有评论加入到一个单元格中,每个评论之间都有一个“空格”。因此,细胞B1的结果是:'头痛膝盖疼痛'。
但是,我必须将此公式拖到下面的所有单元格中。有没有人知道我怎么能像过去使用的所有其他ArrayFormulas一样,公式自动填充下面的所有单元格?我试过把它变成一个数组公式,但没有成功。
我也一直在玩这个配方,给我同样的结果'头痛膝盖疼痛',但配方仍然不会复制到下面的细胞中。
=SUBSTITUTE(Arrayformula(concatenate(FILTER(Sheet1!B:B;Sheet1!A:A=A1)&" "; "|"));" |";"")
如果有人知道如何实现这一目标,我将非常感激 - 非常感谢您的宝贵帮助。
感谢您的期待!
答案 0 :(得分:2)
逐行应用聚合函数(如CONCATENATE)通常有点复杂。
=ArrayFormula(TRIM(TRANSPOSE(SPLIT(CONCATENATE(REPT(TRANSPOSE(Sheet1!B:B&" ");A:A=TRANSPOSE(Sheet1!A:A))&REPT(" "&CHAR(9);TRANSPOSE(ROW(Sheet1!A:A))=ROWS(Sheet1!A:A)));CHAR(9)))))
(编辑:道歉我没有机会测试错误/拼写错误,如果你确认它有效,会删除这一行)
答案 1 :(得分:1)
我知道这个问题太旧了,但是要在删除行时解决问题需要将@Injectable()
export class PouchSeed {
constructor() { }
normalizeDoc(doc, id) {
var output = this.normalize(doc); // <-- note how you call your normalize method
output._id = id || doc._id;
output._rev = doc._rev;
return output;
}
normalize(doc) {
doc = angular.copy(doc);
Object.keys(doc).forEach(function (prop) {
var type = typeof doc[prop];
if (type === 'object') {
doc[prop] = normalize(doc[prop]);
} else if (type === 'function') {
doc[prop] = doc[prop].toString();
}
});
return doc;
}
....
}
更改为A:A
,所以,
filter(A:A,A:A<>"")
变为:
=ArrayFormula(TRIM(TRANSPOSE(SPLIT(CONCATENATE(REPT(TRANSPOSE(Sheet1!B:B&" ");A:A=TRANSPOSE(Sheet1!A:A))&REPT(" "&CHAR(9);TRANSPOSE(ROW(Sheet1!A:A))=ROWS(Sheet1!A:A)));CHAR(9)))))