首页 > 解决方案 > Excel(Googel Sheets)公式仅在当前行之前的范围内查找值

问题描述

  A|B|C|D|E  
------------------------------------  
#|Splr|Payment|Total|Bill|Balance  
------------------------------------  
1|S1|10,000|10,000| 8,000|2,000  
2|S1|12,000|14,000|15,000|-1,000  
3|S2|10,000|10,000| 9,500|500  
4|S1| 9,000| 8,000| 7,500|500  
5|S2| 8,000| 8,500| 6,500|2,000  

B       Current Payment     
C       B + E (of same supplier (last record in previous rows if any))  
D       Current Bill        
E       Total Bill  

我正在寻找一个公式(C 列中公式的 E 部分)来查找当前供应商到当前行的最后余额


编辑:在实施您提供的公式(稍作修改)后,我面临每个新供应商的#Ref 问题。我在第 2 行(即第一个数据行)上使用的公式是 "=ArrayFormula(IF(ISNUMBER(INDEX($F1:F$2,MAX(IF(A2=$A1:A$2,ROW($A1:A $2)-1,0)))),$F1,0))" 而在第二行及以后是 "=ArrayFormula(IF(ISNUMBER(INDEX($F$2:F2,MAX(IF(A3=$A) $2:A2,ROW($A$2:A2)-1,0)))),$F2,0))" 其中 $F1 替换为 $F$Row# 并且 $A1 替换为 $A$RowNo


在此处输入图像描述

标签: google-sheetsexcel-formulaconditionalvlookup

解决方案


下面的公式,将查找当前行的供应商,查看之前所有具有相同供应商的行,最低行(当前行的前一行)具有相同的供应商,然后返回余额(来自 E 列的值)

在此示例中,公式将放在第 6 行数据中,或者在考虑表格标题后的电子表格中的第 7 行。

这也是一个数组公式,这意味着你必须将它粘贴到单元格中,然后点击ctrl+shift+enter提交公式。

=INDEX($E$2:E6,MAX(IF(A7=$A$2:A6,ROW($A$2:A6)-1,0)))

然后,您可以将该单元格复制并粘贴到您的表格中。


推荐阅读