2016-05-12 66 views
1

我需要在Excel中創建一個計算以前6個單元格值的公式。複雜的部分是,如果只有空值,則總數應該是連字符:「 - 」。我得到這個工作,但後來意識到有兩個可能的空值:連字符和空白。這裏是我爲連字符創建的公式作爲空值。它的工作方式我想要的。但隨後幾個單元格出現了「0」,因爲它們將兩種類型的空值相加。當有兩種類型的空值時,Excel的邏輯公式總數爲

=IF(OR(K3 ="-",L3 ="-", M3 ="-", N3 ="-",O3 ="-", P3 ="-"), "-", SUM(K3:P3)) 

當我意識到有兩個空值,我嘗試添加一個AND和另一個OR,但都沒有得到預期的結果。

=IF(AND(OR(K3 ="-",L3 ="-", M3 ="-", N3 ="-",O3 ="-", P3 ="-"), K3 ="",L3 ="", M3 ="0", N3 ="",O3 ="", P3 =""), "-", SUM(K3:P3)) 

關於如何在那裏獲得「空白」值的任何想法?謝謝!

+0

不錯的工作順便提出問題,並顯示你的嘗試。 –

回答

1

試試這個:

=IF(SUMPRODUCT((K3:P3="-")+(K3:P3=""))=COLUMNS(K3:P3)*ROWS(K3:P3),"-",SUM(K3:P3)) 

這是有效計數任何細胞數目。如果它是0,換句話說,如果不存在數字,則返回-,否則返回這些值的總和。


或者這更簡潔的公式:

=IF(SUMPRODUCT(1*(ISNUMBER(K3:P3)))>0,SUM(K3:P3),"-") 
+0

我想我沒有解釋得很好。如果有任何數字,我想計算總和。如果所有的值都是「 - 」或「」,我想要「 - 」。 – abmiller8

+0

查看編輯@ abmiller8 –

+0

不知何故,這不適合我。我有一行,其中四個單元格是「 - 」,一個單元格是空白的,一個單元格是一個數字。此公式在返回該單元格中的數字時返回「 - 」。 – abmiller8

1

去,現在過於冗長的公式:

=IF(AND(OR(K3="-",K3=""),OR(L3="-",L3=""),OR(M3="-",M3=""),OR(N3="-",N3=""),OR(O3="-",O3=""),OR(P3="-",P3="")),"-",SUM(K3:P3)) 

這將是修正原來的思維過程。

現在,如果你想成爲真正安全的地方,並尋找出開頭和結尾的空格,或充滿了僅僅空格細胞,然後試試這個:

=IF(AND(OR(TRIM(K3)="-",TRIM(K3)=""),OR(TRIM(L3)="-",TRIM(L3)=""),OR(TRIM(M3)="-",TRIM(M3)=""),OR(TRIM(N3)="-",TRIM(N3)=""),OR(TRIM(O3)="-",TRIM(O3)=""),OR(TRIM(P3)="-",TRIM(P3)="")),"-",SUM(K3:P3)) 

如果我錯過了在那裏道歉支架。

請參閱史考特回答一個更好的更濃縮的公式。如果列數發生變化,他更容易擴大(或收縮)。

+0

SUM()自動跳過空值和字符串以僅對數字進行求和。沒有理由使用SUMPRODUCT()。當任何單元格有任何文本時,這也會引發錯誤。你不能乘以一個文本值。 –

+1

是的,我只是測試它,看到了錯誤。無論如何,它會被刪除,因爲它與您的編輯太相似了。 –

+0

該死的它不會讓我失望投我自己的答案8) –