=LET(
科目名称, B2:B70,
发生额, C2:C70,
部门名称, UNIQUE(MID(FILTER(科目名称, LEFT(科目名称,1)="["), 5, 100)),
金额合计, SUMIF(科目名称, "*" & 部门名称, 发生额),
合并, HSTACK(部门名称, 金额合计),
VSTACK({"部门", "总金额"}, 合并)
)
也可以对A列的科目编码来判断,如果A列是空值,B列就是部门。不过要注意,这种判断会产生有空值的数组,需要在公式中进行处理。参考公式如下:
=LET(
科目编码, A2:A70,
科目名称, B2:B70,
发生额, C2:C70,
部门名称, DROP(UNIQUE(IF(科目编码="", MID(科目名称,5,100),"")),1),
金额合计, SUMIF(科目名称,"*" & 部门名称, 发生额),
合并, HSTACK(部门名称, 金额合计),
VSTACK( {"部门","总金额"}, 合并)
)
=IF(A2="",MID(B2,5,100),"")
=IF(A2:A70="",MID(B2:B70,5,100),"")

