寻找第一个非空细胞的公式
我有一个电子表格,包含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))