標題:
[發問]
可否用countif? 若是如何?
[打印本頁]
作者:
sunnyso
時間:
2014-4-26 11:17
標題:
可否用countif? 若是如何?
假如A欄有下面的資料, 如何統計出僅有一個A的有多少? 有兩個A的有多少個? 有三個A的有多少個? 沒有A的有多少?
可以用countif 嗎? 請大大指教.
AAA
AAB
AAC
AAD
ABA
ABB
ABC
ABD
ACA
ACB
ACC
ACD
ADA
ADB
ADC
ADD
BAA
BAB
BAC
BAD
BBA
BBB
BBC
BBD
BCA
BCB
BCC
BCD
BDA
BDB
BDC
BDD
CAA
CAB
CAC
CAD
CBA
CBB
CBC
CBD
CCA
CCB
CCC
CCD
CDA
CDB
CDC
CDD
DAA
DAB
DAC
DAD
DBA
DBB
DBC
DBD
DCA
DCB
DCC
DCD
DDA
DDB
DDC
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/)