寻找第一个非空单元格的公式

4

我有一个包含两列数据的电子表格,分别为A和B列,我需要在C列中使用公式。

row    A      B       C
 1     50
 2   
 3   
 4   
 5            56      6
 6   
 7   
 8     46            10
 9   
 10   
 11           64     18

正如您所见,一行要么包含一个值,要么不包含。在C列中,我想计算以下差异:

a)如果B的值是数字,则为B列中的值和A列直接上方的第一个非空单元格中的值之间的差(因此例如,在第5行,我计算B5和A1之间的差异56 - 50 = 6)

b)A列和B列直接上方的第一个非空单元格中的值之间的差异(第8行,56 - 46 = 10)

如果A列和B列均为空,则不输出任何内容。

我一直在努力编写“第一个非空单元格”的R1C1公式。请注意,我知道可以使用VBA来完成此操作,但我正在寻找R1C1公式。

感谢您的帮助。

2个回答

4

以下是一个数组公式(需要使用 Ctrl + Shift + Enter 进行验证)可以放置在 C1 中并拖放到数据的结尾:

=IF(OR(A1<>"",B1<>""),INDEX($B$1:B1,MAX(IF($B$1:B1="",0,ROW($B$1:B1))))-INDEX($A$1:A1,MAX(IF($A$1:A1="",0,ROW($A$1:A1)))),"")

或者,在法语版的Excel中:

=SI(OU(A1<>"";B1<>"");INDEX($B$1:B1;MAX(SI($B$1:B1="";0;LIGNE($B$1:B1))))-INDEX($A$1:A1;MAX(SI($A$1:A1="";0;LIGNE($A$1:A1))));"")

请注意,如果您感兴趣,可以加入法语Stackoverflow社区

3

或许可以尝试将这个公式复制到C2单元格并向下拖动

=IF(B2="",IF(A2="","",LOOKUP(9.99E+307,B$1:B1)-A2),B2-LOOKUP(9.99E+307,A$1:A1))


注:本公式为IT技术相关内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接