如何让筛选列表中上一付款日期公式自动应用整列?
自动填充上一付款日期的数组公式方案
针对你需要自动为L列填充符合条件的上一付款日期的需求,可使用以下数组公式实现自动应用至整列(含新增行):
=ARRAYFORMULA(IF(ROW(A:A)<3,"",BYROW(A3:H, LAMBDA(row, LET(client, INDEX(row,1), inv_num, INDEX(row,2), curr_date, INDEX(row,8), filtered_dates, FILTER($H$3:$H, $A$3:$A=client, $B$3:$B=inv_num, $H$3:$H<curr_date), IFERROR(INDEX(filtered_dates, COUNTA(filtered_dates)), "") ) ))))
公式说明:
ARRAYFORMULA:触发数组运算,让公式自动覆盖整个L列,无需手动下拉。IF(ROW(A:A)<3,"",...):跳过前两行(假设表头位于1-2行),避免表头区域显示计算结果。BYROW(A3:H, LAMBDA(row,...)):遍历A3至H列的每一行,对每行单独执行逻辑计算,适配新增行的自动处理。LET:定义变量简化公式逻辑:client:当前行的客户名称(A列)inv_num:当前行的发票编号(B列)curr_date:当前行的付款日期(H列)
FILTER:筛选出同一客户、同一发票编号且早于当前付款日期的所有付款日期。INDEX(filtered_dates, COUNTA(filtered_dates)):从筛选结果中取最后一条记录(即最近的上一付款日期),适配同一天多次付款的场景;若无符合条件的日期,IFERROR返回空值。
使用方法:
直接将上述公式粘贴至L列的表头行下方(如L3单元格),公式会自动填充L列所有现有行,后续新增行时也会自动计算结果。
内容的提问来源于stack exchange,提问作者Dorcas Domingo
相关产品推荐
相关产品推荐

