寻找第一个非空细胞的公式

我有一个电子表格,包含2列数据,列A和B以及列C,我正在寻找公式。

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

正如你所看到的,一行或者包含一个值。 在C列,我正在计算之间的差异

a)如果B的值是a,则列B中的值和列A的第一个非空单元正上方的值 (例如,在行5,我计算B5和A1之间的差值56 – 50 = 6)号码和

b)列A中的值和列B的第一个非空单元正上方的值(行8,56-46 = 10)

如果A列和B列都不是空的,就什么也不放。

我一直在努力与“第一个非空细胞”写一个R1C1公式。 请注意,我知道我可以在VBA中做到这一点,但我正在寻找R1C1公式。

谢谢你的帮助。

这里是一个数组公式(你需要用Ctrl + Shift + Enter进行validation),你可以把它放到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

也许在C2下试试这个公式吧

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