返回列表 上一主題 發帖

[發問] 可否用countif? 若是如何?

[發問] 可否用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
複製代碼
ss

目前想到的方法是用Like 去做判斷,
我也是新手,希望回答對你會有幫助 ^^

TOP

回復 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
50 字節以內
不支持自定義 Discuz! 代碼

TOP

感謝.......
ss

TOP

回復 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*")
50 字節以內
不支持自定義 Discuz! 代碼

TOP

強人👍......
ss

TOP

回復 1# sunnyso

這算趣味題

=SUM(COUNTIF(A:A,"*"&REPT("A",ROW(A1)+{-1,0})&"*")*{1,-1})
下拉
為4個公式(如下)統計值
0A
1A
2A
3A
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

本帖最後由 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運算?
謝謝!

TOP

回復 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*
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 9# ML089
瞭解!
非常感謝ML089版主詳細的解說

TOP

        靜思自在 : 自己害自己,莫過於亂發脾氣。
返回列表 上一主題