求Google Sheets ArrayFormula:生成每日交易的两个汇总报表
基于Google Sheets的交易汇总&明细表ArrayFormula解决方案
一、每日交易汇总表(对应目标区域I23:L35范围)
1. 标题行(I23)
生成带交易日期和总金额的标题,公式取数据中最新交易日期(若需固定当日则替换MAX(A2:A)为TODAY()):
=TEXT(MAX(A2:A),"MM/DD/YYYY dddd")&" DAILY ACH BATCH SUMMARY TOTAL $"&TEXT(SUM(E2:E),"#,##0.00")
2. 汇总数据行(I24起始)
通过ARRAYFORMULA结合分组计算函数,自动生成供应商维度的汇总数据,直接在I24输入:
=ARRAYFORMULA( IFERROR( HSTACK( // 提取非空的唯一供应商列表 UNIQUE(FILTER(B2:B, B2:B<>"")), // 计算每个供应商的交易总金额 BYROW(UNIQUE(FILTER(B2:B, B2:B<>"")), LAMBDA(v, SUMIFS(E2:E, B2:B=v))), // 统计每个供应商的交易次数 BYROW(UNIQUE(FILTER(B2:B, B2:B<>"")), LAMBDA(v, COUNTIFS(B2:B=v))), // 合并每个供应商的所有非空备注(用*分隔) BYROW(UNIQUE(FILTER(B2:B, B2:B<>"")), LAMBDA(v, TEXTJOIN("*", TRUE, FILTER(D2:D, B2:B=v, D2:D<>"")))) ) ) )
之后手动在标题行下方添加列标题:VENDOR、AMOUNT、AP COUNT、REMITTANCE MEMO。
二、每日交易明细表(对应目标区域I38:L53范围)
1. 标题行(I38)
生成带交易日期和总金额的明细标题:
=TEXT(MAX(A2:A),"MM/DD/YYYY dddd")&" DAILY ACH BATCH DETAIL REPORT TOTAL $"&TEXT(SUM(E2:E),"#,##0.00")
2. 明细数据行(I39起始)
提取原始数据中有效交易的对应字段,自动过滤空行:
=ARRAYFORMULA( IFERROR( FILTER( HSTACK(A2:A, B2:B, D2:D, E2:E), // 过滤无交易类型的空行 A2:A<>"" ) ) )
手动在标题行下方添加列标题:TYPE、VENDOR、REMITTANCE MEMO、AMOUNT。
注意事项
- 需确保原始数据列对应关系:A列为交易类型(WIRE/ACH)、B列为供应商、D列为备注、E列为交易金额,若列位置不同,需调整公式中的列引用。
- 可手动将金额列设置为货币格式,优化显示效果。
- 若需仅汇总当日交易,可在
FILTER中添加日期条件,例如A2:A=TODAY()(需根据实际日期列调整)。
内容的提问来源于stack exchange,提问作者AK.
相关产品推荐
相关产品推荐

