我需要在Excel中创建一个公式,它将前6个单元格的值相加。复杂的部分是,如果只有空值,则总数应为连字符:“ - ”。我得到了这个工作,但后来意识到有两个可能的空值:连字符和空白。这是我为连字符创建的公式为空值。它按我想要的方式工作。但随后几个单元格出现了“0”,因为它们将两种类型的空值相加。
=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),"-")
答案 1 :(得分: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))
如果我错过了一个括号,请道歉。
请参阅Scotts的答案,了解更精简的配方。如果列数发生变化,他就更容易扩展(或收缩)。