2012-01-23 67 views
4

我有一個電子表格,其中包含2列數據,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列值和列A的第一個非空的單元中的值直接高於(例如,在第5行,我計算如果B的值是一個數字,則B5和A1的差值爲56-50 = 6)b)列A中的值和列B的第一個非空單元格中的值直接在上面(第8,56行 - 46 = 10)

並且如果列A和B都不爲空,則不做任何設置。

我一直在努力用「第一個非空單元」來編寫R1C1公式。請注意,我知道我可以在VBA中做到這一點,但我正在尋找R1C1公式。

感謝您的幫助。

回答

4

這裏是一個數組公式(即你需要按Ctrl + + 輸入驗證),你可以把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 in french

3

也許嘗試這個公式在C2複製下來

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

相關問題