Board logo

標題: [發問] 可否用countif? 若是如何? [打印本頁]

作者: sunnyso    時間: 2014-4-26 11:17     標題: 可否用countif? 若是如何?

假如A欄有下面的資料, 如何統計出僅有一個A的有多少? 有兩個A的有多少個? 有三個A的有多少個? 沒有A的有多少?

可以用countif 嗎? 請大大指教.
  1. AAA
  2. AAB
  3. AAC
  4. AAD
  5. ABA
  6. ABB
  7. ABC
  8. ABD
  9. ACA
  10. ACB
  11. ACC
  12. ACD
  13. ADA
  14. ADB
  15. ADC
  16. ADD
  17. BAA
  18. BAB
  19. BAC
  20. BAD
  21. BBA
  22. BBB
  23. BBC
  24. BBD
  25. BCA
  26. BCB
  27. BCC
  28. BCD
  29. BDA
  30. BDB
  31. BDC
  32. BDD
  33. CAA
  34. CAB
  35. CAC
  36. CAD
  37. CBA
  38. CBB
  39. CBC
  40. CBD
  41. CCA
  42. CCB
  43. CCC
  44. CCD
  45. CDA
  46. CDB
  47. CDC
  48. CDD
  49. DAA
  50. DAB
  51. DAC
  52. DAD
  53. DBA
  54. DBB
  55. DBC
  56. DBD
  57. DCA
  58. DCB
  59. DCC
  60. DCD
  61. DDA
  62. DDB
  63. DDC
  64. DDD
複製代碼

作者: renfu    時間: 2014-4-26 12:20

目前想到的方法是用Like 去做判斷,
我也是新手,希望回答對你會有幫助 ^^
作者: softsadwind    時間: 2014-4-26 14:09

回復 1# sunnyso


    三個A =SUMPRODUCT((LEN(SUBSTITUTE(A1:A64,"A",""))=0)*1)
    兩個A=SUMPRODUCT((LEN(SUBSTITUTE(A1:A64,"A",""))=1)*1)
    一個A=SUMPRODUCT((LEN(SUBSTITUTE(A1:A64,"A",""))=2)*1)
    不含A=SUMPRODUCT((LEN(SUBSTITUTE(A1:A64,"A",""))=3)*1)

     如果要用countif 就是要多一欄輔助列
     B1=LEN(A1)-LEN(SUBSTITUTE(A1,"A","")) 下拉,去算有幾個A ,或者用被取代數來反推幾個A
作者: sunnyso    時間: 2014-4-26 21:36

感謝.......
作者: softsadwind    時間: 2014-4-28 12:08

回復 4# sunnyso


    硬是要用countif

1個A =COUNTIF(A$1:A$100,"*A*")-COUNTIF(A$1:A$100,"AA*")-COUNTIF(A$1:A$100,"A*A")-COUNTIF(A$1:A$100,"*AA")+2*COUNTIF(A$1:A$100,"AAA")
2個A =COUNTIF(A$1:A$100,"AA*")+COUNTIF(A$1:A$100,"A*A")+COUNTIF(A$1:A$100,"*AA")-3*COUNTIF(A$1:A$100,"AAA")

三個A=COUNTIF(A$1:A$100,"AAA")
沒有A =COUNTA(A$1:A$100)-COUNTIF(A$1:A$100,"*A*")
作者: sunnyso    時間: 2014-4-28 15:45

強人👍......
作者: ML089    時間: 2014-4-28 20:47

回復 1# sunnyso

這算趣味題

=SUM(COUNTIF(A:A,"*"&REPT("A",ROW(A1)+{-1,0})&"*")*{1,-1})
下拉
為4個公式(如下)統計值
0A
1A
2A
3A
作者: p212    時間: 2014-4-29 08:40

本帖最後由 p212 於 2014-4-29 08:45 編輯

回復 7# ML089
請教ML089版主:
1、對於REPT("A",ROW(A1)+{-1,0}),為何不直接用REPT("A",ROW(A1)-1)?
2、又COUNTIF結果*{1,-1},其*{1,-1}用意何在?在製造什麼樣的陣列結果供SUM運算?
謝謝!
作者: ML089    時間: 2014-4-29 09:22

回復 8# p212
1、對於REPT("A",ROW(A1)+{-1,0}),為何不直接用REPT("A",ROW(A1)-1)?
2、又COUNTIF結果*{1,-1},其*{1,-1}用意何在?在製造什麼樣的陣列結果供SUM運算?

回覆1
REPT("A",ROW(A1)+{-1,0}) ==> 當A1時 REPT("A", {0,1}) = {"", "A"} 可得兩個陣列值
REPT("A",ROW(A1)-1) ==> 當A1時 REPT("A", {0}) = {""} 可得一個陣列值

回覆2
=SUM(COUNTIF(A:A,"*"&REPT("A",ROW(A1)+{-1,0})&"*")*{1,-1})
=SUM(COUNTIF(A:A,{"**","*A*"})*{1,-1})
=SUM({64,37}*{1,-1})
=SUM({64,-37})
=27
   
COUNTIF(A:A,"**") 可得全部的數量
COUNTIF(A:A,"*A*") 可得*A*的數量
兩者相減就是不含A的數量

備註
** 包含 全部
*A*  包含 *A*、*AA*、*AAA*
*AA* 包含 *AA*、*AAA*
作者: p212    時間: 2014-4-29 10:15

回復 9# ML089
瞭解!
非常感謝ML089版主詳細的解說
作者: softsadwind    時間: 2014-4-29 12:04

回復 9# ML089


    感謝ML089版主 指導...
    稍微修改一下你的公式=SUM(COUNTIF(A:A,"*"&REPT("*A",ROW(A1)+{-1,0})&"*")*{1,-1})
    rept內的A 變成*A
作者: 准提部林    時間: 2014-4-29 14:43

參考看看:
C1=0
C2=1
C3=2
C4=3
公式:
=SUMPRODUCT(N(MMULT(LEN(SUBSTITUTE(A$1:A$60,"A",{1,11})),{-1;1})=C1))
 
附檔:內有以上樓層各公式的驗證比較
http://www.funp.net/182953
作者: ML089    時間: 2014-4-30 09:21

回復 12# 准提部林

好式子

貴式(12樓)解的是有幾個A

我(7樓)解的是 A、AA、AAA有幾個

剛好都可以參考
作者: ML089    時間: 2014-5-1 22:21

回復 11# softsadwind

>>   稍微修改一下你的公式=SUM(COUNTIF(A:A,"*"&REPT("*A",ROW(A1)+{-1,0})&"*")*{1,-1})
>>   rept內的A 變成*A

你修改的式子與我原式計算的意義不同,與12樓相同,請詳13樓說明

計算 *A*A*A* 型公式如下(任意排列3個A)
=SUM(COUNTIF(A:A,"*"&REPT("A*",ROW(A1)+{-1,0}))*{1,-1})
   

計算 *AAA* 型公式如下(連續排列3個A)
=SUM(COUNTIF(A:A,"*"&REPT("A",ROW(A1)+{-1,0})&"*")*{1,-1})
作者: softsadwind    時間: 2014-5-2 11:29

回復 14# ML089


    不好意思,先入為主,沒看清楚。
    謝謝版大的指導。
作者: covernlp    時間: 2014-5-12 17:03

原來一個函式有這麼大的學問
受教ㄌ




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)