網友根據這篇文章:
Excel-在幣別+金額的清單中計算各種幣別的小計(SUMPRODUCT,LEFT,MID)
想要詢問他人做法,儲存格F2:
=SUMPRODUCT(COUNTIF(E2,LEFT($A$2:$A$9)&"*")*MID($A$2:$A$9,4,10))
其中 COUNTIF(E2,LEFT($A$2:$A$9)&"*") 的意義為何?
【公式解析】
此公式使用 SUMPRODUCT 函數,可以執行『陣列』的運算。
1. COUNTIF(E2,LEFT($A$2:$A$9)&"*")
公式相當於:=COUNTIF(E2,LEFT($A$2:$A$9,1)&"*"),其中參數1被省略了。
結果:=COUNTIF("NT$",{"N*","H*","N*","H*","N*","N*","H*","N*"})
結果:=COUNTIF({1,0,1,0,1,1,0,1})(第一個字是 N 者傳回 1,是 H 者傳回 0。)
2. MID($A$2:$A$9,4,10))
結果:=MID({"1247","647","1040","1514","397","926","1516","258"})
3. SUMPRODUCT(COUNTIF(E2,LEFT($A$2:$A$9)&"*")*MID($A$2:$A$9,4,10))
公式相當於:=SUMPRODUCT(COUNTIF({1,0,1,0,1,1,0,1})*MID({"1247","647",
"1040","1514","397","926","1516","258"})
結果:=SUMPRODUCT(1247,0,1040,0,397,926,0,258)
結果:=3868
文章標籤
全站熱搜

http://isvincent.pixnet.net/blog/post/46303861-excel-countif%E5%87%BD%E6%95%B8%E7%B7%B4%E7%BF%92 老師,您好.對於COUNTIF的語法,從您上面的公式得知,第一個要定義的是"搜尋範圍",再來是"條件"; 但此頁所運用的第一個定義是"條件=NT$",第二個是"搜尋範圍A2:A9第一個字元"; 請問是當要傳回陣列結果時,才會如此反過來使用嗎?
您的解讀有些落差,第一個參數是範圍(本例是以儲存格E2當範圍),第二個參數是條件(本例是以LEFT($A$2:$A$9)&"*"來當做多個條件),也就是多個條件來比對是否和儲存格E2相同。 順便提醒您,原來您給我的公式寫的不精確,此公式結果只能比對N開頭或H開頭的幣別,也就是這不是對NT$和HK$做精確運算,所以實用性要視用途而定。 另,您給的公式當做公式練習就好,不是很懂也沒關係,這公式只是某人的運算思維,你只要用你的運算思維解題即可。
瞭解了.謝謝老師的費心解釋