去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!
生活随笔
收集整理的這篇文章主要介紹了
去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊上方藍字關注星標★不迷路
本文作者:拉登 Dony來源:拉小登(ID:ladengchupin)本文編輯:小叮、竺蘭前段時間遇到這樣一個問題,讓我很頭疼。頭疼的原因有 3 點:? 問題描述不清晰,理解起來困難;? 去重復計算數量,函數公式實現難度大;? 提問的是個男生。我嘗試著把問題精簡了一下,是這樣的,你就湊活著看吧。一列「用戶 ID」,一列「活動日期」,現在想統計,每個用戶參加活動的天數。因為用戶可能在 1 天中參加多次活動,所以要根據「用戶 ID」對「活動日期」去除重復,然后再計數。明白了嗎?明白了,咱們就開始干!方法一關于去除重復計數,也就是統計唯一值,Excel 中有一個經典的用法。使用 SUMRODUCT 和 COUNTIF/COUNTIFS 函數完成。=?SUMPRODUCT(1/COUNTIF(統計區域,統計區域))
現在看不懂沒關系,我們通過這個案例,一起走一遍這個過程。? COUNTIFS 統計數量。首先是統計數量,因為這里有「用戶 ID」「活動日期」兩列數據,所以我們用 COUNTIFS 函數。完成公式如下:=COUNTIFS(C2:C16,C2:C16,B2:B16,H2)計算結果:= {0;0;0;0;0;0;0;0;0;0;0;1;1;1;1}注意:這里有一個數組的用法,在判斷條件的參數中使用數組,那么計算的結果,也是對應數量的數組。? 數量求倒數。接下來,用 1 除以計數結果,獲取對應的倒數。完成公式如下:=1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2)計算結果:={#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;1;1;1;1}▲左右滑動查看因為「1/0」會出現「#DIV/0!」的錯誤,所以公式外面,再加一個 IFERROR 容錯:=IFERROR(1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2),0)計算結果:={0;0;0;0;0;0;0;0;0;0;0;1;1;1;1}這一步是非重復計數的關鍵操作,結合下一步倒數求和,會更容易理解。? SUMPRODUCT 倒數求和。因為 SUM 函數不支持數組操作,所以這里使用 SUMPROUDCT 進行求和。完成公式如下:=SUMPRODUCT(IFERROR(1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2),0))計算結果:= 4到這一步,你可能就明白求倒數的意義了。如果相同數據出現了 2 次,那么計數過程就是「1/2 + 1/2 =2」;如果出現了 3 次,就是 3 個「1/3」相加「=3」;其他次數以此類推,即實現了非重復計數。? 增加「用戶 ID」判斷。但是上一步計算結果,顯然是錯的,QY1 的去重計數,應該是 1 才對啊。這是因為計數的過程,沒有對用戶進行限制。因為 QY1 有「10/4」的記錄,所有的「10/4」都被統計到 QY1 用戶上了。所以需要再增加一個用戶條件的判斷,這里使用 EXACT 函數實現。完整公式如下:=EXACT(B2:B16,H2)計算結果:={FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE}▲左右滑動查看EXACT 的作用,是判斷兩個數值是否相等。因為 EXACT 中也是引用了區域,所以計算結果是一個 TRUE 和 FALSE 的數組。接下來,是把 EXACT 的計算結果,作為條件添加到前面的公式中。方法很簡單,和第 1 步的計數過程相乘就可以了。完成公式如下:=SUMPRODUCT(IFERROR(1/COUNTIFS(C2:C16,C2:C16,B2:B16,H2)*EXACT(B2:B16,H2),0))▲左右滑動查看計算結果:=1這樣就把非當前用戶的統計給去掉了,也就得到了最終的結果。方法二方法 1 是傳統的方法,經過一番折騰,最終算是圓滿完成了需求。但是正如你所感受到的,傳統函數公式的思路太古怪,一般人很難想到用 1/次數的方法,來做去重計數。這也是函數公式難學的主要原因。正常用戶的思路,不應該是這樣的嘛?? 篩選用戶 ID
? 去除重復值
? 統計數量
這個正常的思路,用傳統公式是很難實現的。但是 Office 365 中新增的 FILTER 和 UNIQUE 函數,讓這個過程變的簡單,變的正常了。? 篩選用戶 ID。使用新增的 FILTER 函數,可以輕松的根據「用戶 ID」篩選對應的記錄。完整公式如下:=FILTER($C$2:$C$16,$B$2:$B$16=H4)計算結果:={43739;43739;43739;43740;43741;43742}FILTER 的作用就是篩選符合條件的記錄。(日期返回的是數字格式,所以變成了 43739 的樣子。)? 去除重復值。Office 365 中新增的 UNIQUE 函數,就是用來去除重復值的。完整公式如下:=UNIQUE(FILTER($C$2:$C$16,$B$2:$B$16=H4))計算結果:={43739;43740;43741;43742}注意到了嗎?FILTER 篩選出來的重復值,被 UNIQUE 函數一下子去除掉了。? 統計數量。有了去重后的篩選結果,統計數量太簡單,就是普通的 COUNTA 函數嘛。完整公式如下:=COUNTA(UNIQUE(FILTER($C$2:$C$16,$B$2:$B$16=H4)))計算結果:= 4簡單的 3 個步驟,符合常規思路,你肯定一下子就學會了,不是嗎?總結溫馨提示:FILTER 和 UNIQUE 函數,目前只有 Office 365 的版本才有,而且需要參加「預覽版體驗計劃」。之前我也專門寫過 FILTER 和 UNIQUE 的教程,點擊下面的文章,就可以進入學習。UNIQUE 函數FILTER 函數今天的非重復計數學會了吧,別忘了點「在看」,簽到打卡!如果你工作中經常用到 Excel,想全面快速提升?Excel 技能,小 E 推薦你學習《和秋葉一起學 Excel》網課!課程不限時間次數,手機電腦,隨時隨地都能學習!還有專屬學員群、在線答疑服務……今天小 E?特地為你們申請了30?元優惠,到手價僅需?139 元~優惠券僅限今天前 50 名,數量有限,先到先得!↑↑↑現在掃碼,還可免費試看!
簽到打卡在這里 ! 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的去除div最后一个逗号_去除重复值、统计数量,这个公式可以直接套用!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 查找算法_七大查找算法(P
- 下一篇: pythonwhile循环love_in