2016-07-29 53 views
0

我正在使用LibreOffice 4.2.8,並在使用CountIf時注意到一些不一致的行爲。我想知道我是否錯過了一些東西。當我可以選擇使用正則表達式(工具 - >選項 - > LibreCalc->計算 - >在公式中啓用正則表達式)時,在包含某些控制字符的行的行上使用countif時,正則表達式。在下面的表格中將是A1,B1,C1。然而,這些相同的人物本身似乎工作得很好。在下面的表格中,A,B,C。當我轉換公式中的正則表達式時,這些差異會消失,但我注意到「=」失敗。這是一個錯誤還是我錯過了一些微妙的東西,就像在bash上逃避規則一樣?Libreoffice Calc Count如果行爲不一致

使用正則表達式開啓

A  |B |C (formula in B) 
------|----|---------------   
One |1 |=COUNTIF(A$3:A3,A3)  
Two |1 |=COUNTIF(A$3:A4,A4)  
( |1 |=COUNTIF(A$3:A5,A5)  <<<<<<<<<<<<< A 
]  |1 |=COUNTIF(A$3:A6,A6)  
[  |1 |=COUNTIF(A$3:A7,A7)  <<<<<<<<<<<<< B 
One |2 |=COUNTIF(A$3:A8,A8)  
Two |2 |=COUNTIF(A$3:A9,A9)  
One (|0 |=COUNTIF(A$3:A10,A10) <<<<<<<<<<<<< A1 
Two [ |0 |=COUNTIF(A$3:A11,A11) <<<<<<<<<<<<< B1 
One ] |1 |=COUNTIF(A$3:A12,A12)  
Two) |0 |=COUNTIF(A$3:A13,A13)  
|  |1 |=COUNTIF(A$3:A14,A14) <<<<<<<<<<<<< C 
One | |0 |=COUNTIF(A$3:A15,A15) <<<<<<<<<<<<< C1 
=  |0 |=COUNTIF(A$3:A16,A16)  
One = |1 |=COUNTIF(A$3:A17,A17)  
+  |1 |=COUNTIF(A$3:A18,A18)  
Two + |0 |=COUNTIF(A$3:A19,A19)  
^  |1 |=COUNTIF(A$3:A20,A20)  
&  |1 |=COUNTIF(A$3:A21,A21)  
*  |1 |=COUNTIF(A$3:A22,A22)  
One^|0 |=COUNTIF(A$3:A23,A23)  
Two & |1 |=COUNTIF(A$3:A24,A24)  
One * |2 |=COUNTIF(A$3:A25,A25)  

使用正則表達式關閉

A  |B  |C (formula in B) 
------|------|---------- 
One |1 |=COUNTIF(A$1:A1,A1) 
Two |1 |=COUNTIF(A$1:A2,A2) 
( |1 |=COUNTIF(A$1:A3,A3) 
]  |1 |=COUNTIF(A$1:A4,A4) 
[  |1 |=COUNTIF(A$1:A5,A5) 
One |2 |=COUNTIF(A$1:A6,A6) 
Two |2 |=COUNTIF(A$1:A7,A7) 
One (|1 |=COUNTIF(A$1:A8,A8) 
Two [ |1 |=COUNTIF(A$1:A9,A9) 
One ] |1 |=COUNTIF(A$1:A10,A10) 
Two) |1 |=COUNTIF(A$1:A11,A11) 
|  |1 |=COUNTIF(A$1:A12,A12) 
One | |1 |=COUNTIF(A$1:A13,A13) 
=  |0 |=COUNTIF(A$1:A14,A14)  <<<<<<<< 
One = |1 |=COUNTIF(A$1:A15,A15) 
+  |1 |=COUNTIF(A$1:A16,A16) 
Two + |1 |=COUNTIF(A$1:A17,A17) 
^  |1 |=COUNTIF(A$1:A18,A18) 
&  |1 |=COUNTIF(A$1:A19,A19) 
*  |1 |=COUNTIF(A$1:A20,A20) 
One^|1 |=COUNTIF(A$1:A21,A21) 
Two & |1 |=COUNTIF(A$1:A22,A22) 
One * |1 |=COUNTIF(A$1:A23,A23) 

回答

0

對於使用「=」你可以簡單地拼接的問題「=」作爲標準,第一個字符的COUNTIF。這意味着只尋求平等:

=COUNTIF(A$3:A3,"="&A3) 

這樣你也可以計數空單元格。這COUNTIF通常不會。

對於正則表達式的問題我知道的唯一方法是SUBSTITUTE所有可能的危險字符與轉義字符。

=COUNTIF(A$3:A3,"="&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3,"+","\+"),"|","\|"),"(","\("),")","\)"),"[","\[")) 

上面的公式並不完全是當然的。如果完成,那將會很長。

相關問題