【例】如下图所示,左侧是贷款明细表。我们需要根据日期生成每天的贷款行+金额表格,结果如右图所示。
分析:对于这种需要查找一对多结果并用逗号连接的情况,Vlookup显然不合适。即使使用filter、Textjoin等函数,也需要先提取所有不重复的日期(E列)。
而解决此类问题的一个简单方法是使用Groupby公式。
=GROUPBY(C1:C17,A1:A17&B1:B17,ARRAYTOTEXT,3,0)
公式说明:
ARRAYTOTEXT函数可以用逗号合并数组
3表示显示标题行
0是不显示汇总行。
如果希望按银行合并,可以使用以下公式:
=GROUPBY(A1:A14,TEXT(C1:C14,"M月D日")&B1:B14,ARRAYTOTEXT,3,0,,A1:A14<>"")
公式说明:因为日期连接文本后会被转换为数字,所以需要用text格式化成文本。
如果还想显示汇总,可以使用以下公式:
=GROUPBY(C1:C17,HSTACK(A1:A17&B1:B17,B1:B17),HSTACK(ARRAYTOTEXT,SUM),3,0)
公式说明:HSTACK可以将两个表格横向合并成新的多列数组。