Google Sheets:基于指定字符串自动计算列值百分比变化
自动计算关联字符串的数值百分比变化(以姓名对应薪资为例)
需求说明
每次新增记录时,自动计算当前记录与同字符串(如姓名)上一次记录的数值(如薪资)的百分比变化,要求无需手动下拉公式,通过ArrayFormula、BYROW等函数实现自动填充。
现有可运行的下拉公式
K2单元格公式
=IFERROR((INDEX(QUERY(INDIRECT("A2:J"&ROW(A2)),"select J,H,A where J contains '"&J2&"' order by A desc"),1,2)-INDEX(QUERY(INDIRECT("A2:J"&ROW(A2)),"select J,H,A where J contains '"&J2&"' order by A desc"),2,2))/INDEX(QUERY(INDIRECT("A2:J"&ROW(A2)),"select J,H,A where J contains '"&J2&"' order by A desc"),2,2))
N2单元格公式
=IFERROR((INDEX(SORT(FILTER({INDIRECT("J2:J"&ROW(A2:A)),INDIRECT("H2:H"&ROW(A2:A)),INDIRECT("A2:A"&ROW(A2:A))},INDIRECT("J2:J"&ROW(A2:A))=J2),3,FALSE),1,2)-INDEX(SORT(FILTER({INDIRECT("J2:J"&ROW(A2:A)),INDIRECT("H2:H"&ROW(A2:A)),INDIRECT("A2:A"&ROW(A2:A))},INDIRECT("J2:J"&ROW(A2:A))=J2),3,FALSE),2,2))/INDEX(SORT(FILTER({INDIRECT("J2:J"&ROW(A2:A)),INDIRECT("H2:H"&ROW(A2:A)),INDIRECT("A2:A"&ROW(A2:A))},INDIRECT("J2:J"&ROW(A2:A))=J2),3,FALSE),2,2))
尝试未成功的公式(M2单元格)
无法将查询范围限制至当前行,公式如下:
=ArrayFormula(IF(J2:J="",,BYROW(J2:J,LAMBDA(name,INDEX(QUERY(FILTER({$J$2:$J,$H$2:$H,$A$2:$A},$J$2:$J=name),"order by Col3",0),1,2)))))
寻求解决方案
希望得到更简洁的替代方案,比如使用LOOKUP、INDEX/MATCH等函数,实现自动填充的百分比变化计算,替代现有冗长的下拉公式。
内容的提问来源于stack exchange,提问作者eirever
相关产品推荐
相关产品推荐

