寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

哈嘍,大家好!我是愛踢汪。今天給大家分享了統計不重複資料的套路,這個套路中所用到的思路和方法確是在很多高階公式中經常用到的。學會了它們,有助於提升你運用公式的能力。 資料來源照舊,如下圖所示,要求統計出不重複的客戶數:

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

在昨天我們掌握了破解公式的方法後,今天我們再來看看計算不重複資料個數的第二個公式套路。

COUNT和MATCH的組合

這個公式的難度就稍微有點大了,一起看看操作過程。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

這個公式是陣列公式,完成輸入後記得按CTRL+SHIFT+回車鍵,公式兩邊會自動出現大括號。公式

=COUNT(1/(MATCH(B2:B23,B2:B23,0)=ROW(1:22)))用到了三個函式,COUNT、MATCH和ROW,不管操作還是原理,這個公式都要難於第一個公式。 那麼為什麼還要介紹這個公式呢? 這是因為在這個公式中,用到的一些思路和方法,會在很多強大的公式中反覆遇到的,因此理解第二個套路,有助於提升公式運用的能力。 言歸正傳,還是用公式求值來破解這個公式的原理吧。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

從圖中可以看出,首先計算的是MATCH這部分,簡單來說MATCH有三個引數,查詢值、查詢區域和查詢方式,公式得到的是查詢值在查詢區域內首次出現的位置,點一下求值就能看到結果。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

還是看客戶42337,一共出現了五次,MATCH函式得到的結果都是1,說明這個客戶首次出現的位置是1。 要強調一下,這個1是查詢範圍中的位置,我們的查詢範圍是從第二行開始的。 對於MATCH得到的這一組資料,一定要理解其含義。繼續點求值可以得到ROW這部分的結果。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

ROW可以得到引數對應的行號,例如ROW(A1),結果就是1,而ROW(1:22),得到的就是前22行的行號,也就是1到22這一組數字。 注意公式MATCH(B2:B23,B2:B23,0)=ROW(1:22)中的範圍是不同的,MATCH是2到23行,實際是22行資料,而ROW的範圍是以實際資料的行數為依據的。 繼續點求值,公式會判斷MATCH得到的這一組資料與ROW得到的這一組資料是否一致,結果是一組邏輯值。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

從結果可以發現,每個客戶首次出現的位置,公式結果就是TRUE。 這裡有必要普及一下邏輯值的知識了。 在Excel中有六個比較的符號,=(等於)、>(大於)、<(小於)、>=(大於或等於)、<=(小於或等於)、<>(不等於),本例中用的是等於。 比較的結果就是邏輯值,邏輯值有兩個,分別是TRUE和FALSE,TRUE表示結果正確,FALSE表示結果不正確。 例如1>2,這個比較的結果就是FALSE。 邏輯值在和數字進行加減乘除等運算時,TRUE相當於1,FALSE相當於0。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

在這一步計算中,就是用數字1和這一組邏輯值進行計算,當分母為TRUE時,1/1得到1;當分母為FALSE時,1/0會得到錯誤值,分母為零。 點求值就能看到這個結果。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

如果理解了以上原理,最後的結果就很好理解。 因為COUNT只做一件事,統計有幾個數字。在這一組結果中,只有五個1是數字,因此最終的結果就是5。

寫出3000條Excel公式後,我發現80%的高階公式都離不開它們仨

很多時候,1/都用0/代替了,也許這是高手們的一種習慣吧。 當你真正的懂得了公式原理之後,1/和0/將不會再是造成你困擾的原因。 對第二個公式的原理就分析到這了,在這個公式中,用到了很多高階公式常用的技能,例如使用ROW得到一個數組,使用各種比較運算得到一組邏輯值,進而透過對邏輯值的計算得到一些錯誤值(錯誤值並不是一點用都沒有哦)。而使用0/還是1/,除了一部分特殊情況之外,大多數情況是沒有區別的。 好了,對於統計不重複資料個數的兩個公式分析就告一段落,如果你還遇到什麼無法破解的公式,可以留言告訴本汪,咱們一起來搞明白。今天的分享就到這裡了。我是愛踢汪,您的關注是我堅持到現在的唯一動力,有了您的支援與鼓勵,我才有信心一直堅持下去,繼續奉上更多內容。衷心期待您能點一下上面紅色關注按鈕,關注我一下。萬分感謝!