小夥伴們好啊,今天咱們一起學習一下countif函式的高階應用,來看看如何使用這個函式完成不重複個數的統計。
模式化的公式為:
這個公式中包含了乙個數學邏輯:
任意乙個資料重複出現n次,n個1/n的和值為1。
公式中「countif(a1:a10,a1:a10)」部分是陣列計算,運算過程相當於:
=countif(a1:a10,a2)
=countif(a1:a10,a3)
=countif(a2:a10,a10)
countif函式分別統計a2:a10單元格區域中每個元素出現的次數。返回記憶體陣列結果為:
再使用1除以返回的記憶體陣列,得到以下結果:
用1除,即相當於計算countif函式所返回記憶體陣列的倒數。為便於理解,把這一步的結果中的小數部分使用分數代替,結果為:
如果單元格的值在區域中是唯一值,這一步的結果是1。
如果重複出現兩次,這一步的結果就有兩個1/2。
如果單元格的值在區域中重複出現3次,結果就有3個1/3…
即每個元素對應的倒數合計起來結果仍是1。
最後用sumproduct函式求和,得出了不重複的個數。
好了,今天的內容就是這些啦,你能看懂了嗎?
如果暫時看不懂,也不要著急,循序漸進,一起加油哈。
輸出陣列中不重複,或者輸出特定次數的陣列
隨機生成1000個1 100之內的整數,統計出不重複的數值和其重複的次數 random rand newrandom int arr newint 1000 int unique newint 100 int count newint 100 int k 0 unique k rand.nextin...
hadoop 任務失敗重複次數的處理方法
hadoop任務分為map task和reduce task,當map task執行失敗後會重試,超過重試次數 mapred.map.max.attempts指定,預設為4 整個job會失敗,這是我們不想看到的。解決辦法 hadoop提供配置引數 mapred.max.map.failures.pe...
求陣列中重複次數最多的元素
例如 陣列a 元素2 3 7 8各出現1次,1出現兩次,5出現4次,則重複次數最多的元素為5.定義乙個陣列int cnt max 將其元素全部初始化為0。然後遍歷陣列a,執行cnt a i 操作。最後在cnt陣列中找最大的數,對應的數即為重複次數最多的數。示例如下 以空間換時間,索引法 int ma...