【发布时间】:2021-01-13 14:38:14
【问题描述】:
在AD 列中,我有以下值序列:
2
3
4
这些值指的是另一页上的列中的行。
在AE 列的每一行中,我使用这个公式:
=IF(AD1="","",IFERROR(SUM(FILTER(INDIRECT("'Registro Geral'!O2:O"&AD1)/100,REGEXMATCH(INDIRECT("'Registro Geral'!H2:H"&AD1),SUBSTITUTE(SUBSTITUTE(JOIN("|",$V$1:$V$4),"||",""),"|||",""))=TRUE))))
=IF(AD2="","",IFERROR(SUM(FILTER(INDIRECT("'Registro Geral'!O2:O"&AD2)/100,REGEXMATCH(INDIRECT("'Registro Geral'!H2:H"&AD2),SUBSTITUTE(SUBSTITUTE(JOIN("|",$V$1:$V$4),"||",""),"|||",""))=TRUE))))
=IF(AD3="","",IFERROR(SUM(FILTER(INDIRECT("'Registro Geral'!O2:O"&AD3)/100,REGEXMATCH(INDIRECT("'Registro Geral'!H2:H"&AD3),SUBSTITUTE(SUBSTITUTE(JOIN("|",$V$1:$V$4),"||",""),"|||",""))=TRUE))))
简而言之,此公式根据同一工作表的另一列中的相应单元格是否出现在一组值中来获取另一工作表中的值的运行总和。
当我尝试添加ARRAYFORMULA 这样我就不必在每一行上都有一个公式,只留下AE1,所有行上返回的值都是完全相同的值。
测试公式失败:
=ARRAYFORMULA(IF(AD1:AD="","",IFERROR(SUM(FILTER(INDIRECT("'Registro Geral'!O2:O"&AD1:AD)/100,REGEXMATCH(INDIRECT("'Registro Geral'!H2:H"&AD1:AD),SUBSTITUTE(SUBSTITUTE(JOIN("|",$V$1:$V$4),"||",""),"|||",""))=TRUE)))))
Spreadhseet 示例的链接:
https://docs.google.com/spreadsheets/d/1qIv6KnLv-EwJQXRrk7ucuqY-XuJhkIHOCtih9FpAg6U/edit?usp=sharing
【问题讨论】:
-
这看起来像是一个非常经典的 XY 示例......xyproblem.info
-
您的工作表中没有广告栏
标签: google-sheets google-sheets-formula array-formulas