2012-11-22 141 views
1

我無法理解IF聲明。 我所試圖做的是(在php):谷歌電子表格如果發言

if(isEmpty($cellA) && isNotEmpty($cellB){ 
     $cellA = CurrentDate; 
    } 

我在電子表格中做這樣的嘗試是:

=IF(ISBLANK($A3), IF(ISBLANK($B3),"",$A3 = NOW()) ,"") 

我得到一個錯誤error: Circular dependency detected

謝謝你在先進。

回答

4

如果將公式放入A3B3中,將會發生循環依賴關係,因爲該公式將引用包含公式的單元格,該單元格將遞歸地繼續進行。想想一個非常簡單的例子 - 公式=A1在單元格A1中。當公式被評估時,它看到它的值應該是A1(這是當前單元格)的值。然後它在工作表上找到A1並嘗試獲取其值,但正如我們剛剛看到的,公式爲=A1,因此它會再次轉到單元格A1(我們已經在那裏)並嘗試計算該值。這個過程會讓你陷入一個無限循環,當Spreadsheets發現一個單元格引用它自己時,它不會計算任何東西,而是警告你一個循環引用。

此外,由於您無法將公式中的任意單元格賦值,因此$A3 = NOW()部分僅爲布爾值,將返回TrueFalse。一般語法(它看起來像你)是IF(<condition>, <value_if_true>, <value_if_false)。您在PHP中所做的事實際上更適合於AppScript,它是內置於Google Docs中的一種JavaScript類型的編程語言。使用這個,你將能夠做你想要的 - 否則,你將不得不創建一個單獨的列並在那裏進行計算。希望有所幫助:)