Excel (Google Sheets) 公式仅在当前行之前查找范围内的值
Excel (Googel Sheets) formula to find value within range prior to current row only
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
下面的公式,将查找当前行的供应商,查看具有相同供应商的所有先前行,具有相同供应商的最低行(当前行之前),然后 return余额(E 列中的值)
在此示例中,公式将位于数据的第 6 行,或计算 table headers 后电子表格的第 7 行。
这也是一个数组公式,这意味着您必须将其粘贴到单元格中,然后点击 ctrl+shift+enter
提交公式。
=INDEX($E:E6,MAX(IF(A7=$A:A6,ROW($A:A6)-1,0)))
然后您可以将该单元格复制并粘贴到 table。
幸运的是,我已经使用 INDIRECT() 解决了我的问题。我使用的公式是 {=ArrayFormula(IFERROR(LOOKUP(2,1/(INDIRECT("A2:A"&ROW()-1)=A7),INDIRECT("E2:E"&ROW()-1)) ,0))}
此处 INDIRECT() 用于强制条件范围达到当前单元格的上一行。
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
下面的公式,将查找当前行的供应商,查看具有相同供应商的所有先前行,具有相同供应商的最低行(当前行之前),然后 return余额(E 列中的值)
在此示例中,公式将位于数据的第 6 行,或计算 table headers 后电子表格的第 7 行。
这也是一个数组公式,这意味着您必须将其粘贴到单元格中,然后点击 ctrl+shift+enter
提交公式。
=INDEX($E:E6,MAX(IF(A7=$A:A6,ROW($A:A6)-1,0)))
然后您可以将该单元格复制并粘贴到 table。
幸运的是,我已经使用 INDIRECT() 解决了我的问题。我使用的公式是 {=ArrayFormula(IFERROR(LOOKUP(2,1/(INDIRECT("A2:A"&ROW()-1)=A7),INDIRECT("E2:E"&ROW()-1)) ,0))}
此处 INDIRECT() 用于强制条件范围达到当前单元格的上一行。