Excel 統計符合條件不重複的個數

2021-08-10 14:10:14 字數 1714 閱讀 9767

iamlaosong文

要求從貨運明細中統計各省某日發貨點數量,公式如下:

=sumproduct((sheet1!$l$2:$l$1747=b6) * (sheet1!$m$2:$m1747=$a$1) / countif(sheet1!$u$2:$u$1747,sheet1!$u$2:$u$1747))

sheet1是貨運明細,其中l列是發貨省,b6是要統計的省份;m列是發貨日期,a1是要統計的日期,u列是發貨點。

需要注意的是最大行數1747必須是有效行數,如果為了通用,把行數放大,比如2000,由於1747行後面沒有資料,導致countif函式的統計結果為0,就會產生被零除的錯誤。

這種方法給客戶後,客戶說函式的運算量大,很卡。換個方法吧,先對明細建立乙個查詢,本想用sql語句一次完成,可是,用於excel的sql語句既不支援where中直接引用單元格的值,也不支援count(distinct 欄位名)這種寫法,所以,最後採用先建立乙個去重複的查詢,再用sumifs求和。

1、建立查詢的方法

資料選項卡—現有連線—瀏覽更多 或者 按快捷鍵alt+d+d+d

選擇要查詢的excel檔案和檔案中的的工作表,就可以將相應工作表的資料取過來。表現形式選擇表。

查詢結果表放在w6開始的區域,如目前的結果是w6:y61。

2、修改查詢

select 日期,始發省份,count(*) as 網點數量 from (select distinct 日期,始發省份,攬收機構 from [sheet1$]) group by 日期,始發省份

select 月份,始發省份,count(*) as 網點數量 from (select distinct 月份,始發省份,攬收機構 from [sheet1$]) group by 月份,始發省份

結果如下:

日期始發省份

網點數量

月份始發省份

網點數量

10月01日

雲南省1

10月浙江省

110月02日

雲南省1

10月安徽省

4710月05日

雲南省1

10月雲南省

210月09日

雲南省1

10月河南省

110月10日

雲南省1

11月湖北省

410月11日

雲南省1

11月浙江省

110月12日

安徽省1

11月安徽省

1610月12日

雲南省1

11月雲南省

210月13日

雲南省1

10月14日

雲南省2

10月15日

雲南省1

10月16日

安徽省2

10月16日

雲南省1

10月17日

安徽省3

10月17日

雲南省1

10月18日

安徽省6

3、統計某日網點數

公式如下:

=sumifs($y$6:$y$1000,$w$6:$w$1000,text($a$1,"m月d日"),$x$6:$x$1000,b6)

其中1000是預留的查詢結果行數,可以大於實際行數,不影響統計結果,這樣明細增加的時候就沒問題了。

4、excel使用distinct關鍵字時似乎很苛刻,除了上面提到的,對字段做處理後取不重複也不行,比如distinct left(日期,3)就不行。

不特定列的不重複次數 公式解讀 統計不重複個數

小夥伴們好啊,今天咱們一起學習一下countif函式的高階應用,來看看如何使用這個函式完成不重複個數的統計。模式化的公式為 這個公式中包含了乙個數學邏輯 任意乙個資料重複出現n次,n個1 n的和值為1。公式中 countif a1 a10,a1 a10 部分是陣列計算,運算過程相當於 countif...

Excel從其他表中匯入符合條件的資料

例子 表一中有編號 名稱列,表二中有名稱 責任人列,現在需要把錶二中與表一中名稱相對應的責任人匯入到表一中。1 開啟表一,建立新的工作表,名字叫import,將表二中的資料拷貝到import工作表中。表一如下 表二如下 2 在表一中新建一列,名叫責任人。3 選中表一的責任人列第一行,輸入函式 mat...

EXCEL雜記 統計重複列的個數

假設你的資料在a2 a21,1 統計資料個數 重複資料只計算1次 sumproduct 1 countif a2 a21,a2 a21 2 統計資料個數 重複資料不統計 sumproduct countif a2 a21,a2 a21 1 3 列出資料 重複資料只列1次 在b2輸入 if row i...